diff -urN dillo-0.6.6/AUTHORS dillo2-0.6.6/AUTHORS
--- dillo-0.6.6/AUTHORS	2002-05-29 15:26:51.000000000 -0600
+++ dillo2-0.6.6/AUTHORS	2003-04-21 12:35:02.000000000 -0600
@@ -25,10 +25,10 @@
    Patches:
           * Sam Dennis 
           * Andrew McPherson 
-          * Andreas Schweitzer
           * Sean 'Shaleh' Perry
           * Marcos Ram�rez
           * Adam Sampson
+          * Andreas Schweitzer
           * Dominic Wong 
      _________________________________________________________________
    
diff -urN dillo-0.6.6/ChangeLog dillo2-0.6.6/ChangeLog
--- dillo-0.6.6/ChangeLog	2002-05-29 15:20:44.000000000 -0600
+++ dillo2-0.6.6/ChangeLog	2003-04-21 12:35:02.000000000 -0600
@@ -3,6 +3,27 @@
 =============================================================================
 
 
+dillo-0.6.7 [?, 2002]
+
+ - * Added code so that tooltips stay within the screen.
+   Patch: Pekka Lampila, Sebastian Geerken
+ - * Fixed a problem occurring when scrolling with the "b" key.
+   Patch: Livio Baldini
+ - * Fixed a memory leak in DwAlignedPage.
+   Patch: J�rgen Viksell, Sebastian Geerken
+ - * Fixed a bug in DwPage ("height" argument).
+   Patch: Pekka Lampila
+ - * Removed space around tables.
+   * Implemented the <button> tag! (BUG#276)
+   Patches: Sebastian Geerken
+ - * Added support for <input type=image...> (BUG#313)
+   Patch: Madis Janson, Sebastian Geerken, Jorge Arellano
+ - * Made a better EAGAIN handler, and enabled FreeIOVec operation in IOWrite.
+   Patch: Jorge Arellano, Livio Baldini
+ - * Avoided a file lock when cookiesrc disables cookies (BUG#358).
+   Patch: Jorge Arellano
+
+
 dillo-0.6.6 [May 30, 2002]
 
  - * Added a few canonical casts to fix some obvious 64bit issues.
diff -urN dillo-0.6.6/ChangeLog.old dillo2-0.6.6/ChangeLog.old
--- dillo-0.6.6/ChangeLog.old	2000-08-30 10:17:58.000000000 -0600
+++ dillo2-0.6.6/ChangeLog.old	1969-12-31 17:00:00.000000000 -0700
@@ -1,89 +0,0 @@
-
-This is the Changelog file that existed before Dillo began.
-
-
-===========================================================================
-Gzilla project 
-
-Wed 28 Oct 1999 Christopher Reid Palmer <chrisp@innerfireworks.com>
-  Rota Luca
-  * support for arrow keys
-  * proper tool bar
-  * cursor changing
-
-  Randy Maas
-  * documentation
-  * URL sub-tree cleanups and speed-ups
-
-  Sammy Mannaert
-  * bookmarks.c fix
-  * menu hotkeys, menu pulloffs and Location pull-off
-  * file:/ URL bugfix, for larger than 12 char names
-
-  David Press
-  * fix to cursor change
-
-Fri Jul 23 22:12:14 1999 ObiTuarY <obituary@freshmeat.net>
-
-  * *.*: Upgraded to autoconf 2.13 and automake 1.4. Reorganization
-  of the source.
-  * src/interface.{c,h}: Added pixmaps for the buttons. Removed the
-  open button. Doesn't it feel redundant with the location text entry
-  just under it ? ;-)
-  * src/pixmaps.h: New file holding the pixmaps.
-
-0.2.0 17-18 Jul 1999 Christopher Reid Palmer <chrisp@innerFireWorks.com>
-  * Restructured menus, beginning to implement functionality of new menu items.
-  * Closed hole for when ~/.gzilla exists but is not a dir.
-  * Poked at bookmarks.
-
-
-
-===========================================================================
-Raph Levien project
-
-
-Mon Dec 21 00:07:36 1998  Raph Levien  <raph@gimp.org>
-
-  * gzilladns.c: fixed a bug (adding the input handler more
-  than once) that got triggered in Gtk 1.1.x.
-  * gzillageturl.c: added an "about:" mechanism with simple
-  redirects. This is 0.1.7.
-
-Sun Dec 20 22:25:17 1998  Raph Levien  <raph@gimp.org>
-
-  * Accelerator group code so that it now compiles with both
-  Gtk 1.0.x and 1.1.x
-  * Added directory scanning support to gzilla_file (thanks to Jim
-  McBeath!)
-
-0.1.5 (2 Jan 1998 RLL)
-  * Finished moving junk out of bytesink (mostly into linkblock).
-  Now, the former abstraction is lean and mean, and the latter
-  is a junkheap :).
-  * Tried to hook up most of the abort/destroy logic, so it should
-  leak a lot less memory now.
-  * I'm moving images from gtk_preview to gzw_image as well.
-
-0.1.4 (26 Nov 1997 RLL)
-  * Pages > 32kpixels actually scroll now.
-  * Pretty significant rework of the whole abort architecture (see
-  abort.html for more details). Also separated out some of the
-  web-specific stuff in bytesink to linkblock.
-  * It seems relatively stable now, but it's nowhere near freeing
-  all of the memory it allocates.
-
-0.1.3
-  * Switched page widget from gtk to gzw.
-  * Significant enhancements in functionality and stability.
-        
-0.0.10
-  * Major change is reorganization of network code - all fetches now
-  go through gzilla_url_get.
-
-  * Aborts (i.e. the implementation of the Stop button) are now
-  handled by a new bytesink signal ("abort"). The abort logic has
-  been partially upgraded to handle multiple windows - now,
-  gzilla_bw_abort_all aborts all bytesinks in a window.
-
-
diff -urN dillo-0.6.6/Makefile dillo2-0.6.6/Makefile
--- dillo-0.6.6/Makefile	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/Makefile	2003-04-21 14:26:43.000000000 -0600
@@ -0,0 +1,435 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# Makefile.  Generated from Makefile.in by configure.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = .
+
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/dillo
+pkglibdir = $(libdir)/dillo
+pkgincludedir = $(includedir)/dillo
+top_builddir = .
+
+ACLOCAL = aclocal-1.6
+AUTOCONF = autoconf
+AUTOMAKE = automake-1.6
+AUTOHEADER = autoheader
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = s,x,x,
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+
+EXEEXT = 
+OBJEXT = o
+PATH_SEPARATOR = :
+AMTAR = tar
+AWK = gawk
+CC = gcc
+DEPDIR = .deps
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LIBJPEG_LIB = -ljpeg
+PACKAGE = dillo
+PKG_CONFIG = /usr/bin/pkg-config
+RANLIB = ranlib
+STRIP = 
+VERSION = 0.6.6
+am__include = include
+am__quote = 
+install_sh = /home/pb/dillo2/install-sh
+src = 
+SUBDIRS = doc src
+
+EXTRA_DIST = ChangeLog.old dillorc
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+	uninstall-info-recursive all-recursive install-data-recursive \
+	install-exec-recursive installdirs-recursive install-recursive \
+	uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
+	Makefile.in NEWS aclocal.m4 config.h.in configure configure.in \
+	depcomp install-sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+$(srcdir)/configure:  $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+	cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4):  configure.in 
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+	@if test ! -f $@; then \
+	  rm -f stamp-h1; \
+	  $(MAKE) stamp-h1; \
+	else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
+
+$(srcdir)/config.h.in:  $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOHEADER)
+	touch $(srcdir)/config.h.in
+
+distclean-hdr:
+	-rm -f config.h stamp-h1
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@set fnord $$MAKEFLAGS; amf=$$2; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@set fnord $$MAKEFLAGS; amf=$$2; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = .
+distdir = $(PACKAGE)-$(VERSION)
+
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+
+GZIP_ENV = --best
+distcleancheck_listfiles = find . -type f -print
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	mkdir $(distdir)
+	@list='$(DISTFILES)'; for file in $$list; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
+	    || exit 1; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$(top_distdir)" \
+	        distdir=../$(distdir)/$$subdir \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist-gzip: distdir
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	$(am__remove_distdir)
+	GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/=build
+	mkdir $(distdir)/=inst
+	chmod a-w $(distdir)
+	dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
+	  && cd $(distdir)/=build \
+	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
+	      || { echo "ERROR: files left after uninstall:" ; \
+	           find $$dc_install_base -type f -print ; \
+	           exit 1; } >&2 ) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
+	  && rm -f $(distdir).tar.gz \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	$(am__remove_distdir)
+	@echo "$(distdir).tar.gz is ready for distribution" | \
+	  sed 'h;s/./=/g;p;x;p;x'
+distcleancheck: distclean
+	if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf autom4te.cache
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-local
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+	clean-generic clean-recursive dist dist-all dist-gzip distcheck \
+	distclean distclean-generic distclean-hdr distclean-recursive \
+	distclean-tags distcleancheck distdir dvi dvi-am dvi-recursive \
+	info info-am info-recursive install install-am install-data \
+	install-data-am install-data-local install-data-recursive \
+	install-exec install-exec-am install-exec-recursive \
+	install-info install-info-am install-info-recursive install-man \
+	install-recursive install-strip installcheck installcheck-am \
+	installdirs installdirs-am installdirs-recursive \
+	maintainer-clean maintainer-clean-generic \
+	maintainer-clean-recursive mostlyclean mostlyclean-generic \
+	mostlyclean-recursive tags tags-recursive uninstall \
+	uninstall-am uninstall-info-am uninstall-info-recursive \
+	uninstall-local uninstall-recursive
+
+
+install-data-local: dillorc
+	-if [ -d $(DESTDIR)$(sysconfdir) ]; then \
+		$(INSTALL_DATA) --backup=t $(srcdir)/dillorc $(DESTDIR)$(sysconfdir)/; \
+	elif [ -d /etc/ ]; then \
+		$(INSTALL_DATA) --backup=t $(srcdir)/dillorc /etc/; \
+	fi
+
+uninstall-local:
+	-if [ -d $(DESTDIR)$(sysconfdir) ]; then \
+		rm -f $(DESTDIR)$(sysconfdir)/dillorc*; \
+	elif [ -d /etc/ ]; then \
+		rm -f /etc/dillorc*
+	fi
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -urN dillo-0.6.6/Makefile.am dillo2-0.6.6/Makefile.am
--- dillo-0.6.6/Makefile.am	2002-02-14 06:48:46.000000000 -0700
+++ dillo2-0.6.6/Makefile.am	2003-04-21 12:35:04.000000000 -0600
@@ -1,6 +1,6 @@
 SUBDIRS = doc src
   
-EXTRA_DIST = ChangeLog dillorc
+EXTRA_DIST = ChangeLog.old dillorc
 
 install-data-local: dillorc
 	-if [ -d $(DESTDIR)$(sysconfdir) ]; then \
diff -urN dillo-0.6.6/Makefile.in dillo2-0.6.6/Makefile.in
--- dillo-0.6.6/Makefile.in	2002-05-29 15:02:18.000000000 -0600
+++ dillo2-0.6.6/Makefile.in	2003-04-21 14:25:02.000000000 -0600
@@ -1,6 +1,8 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# @configure_input@
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,7 +12,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-
+@SET_MAKE@
 SHELL = @SHELL@
 
 srcdir = @srcdir@
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = .
 
 ACLOCAL = @ACLOCAL@
@@ -45,90 +43,97 @@
 AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AWK = @AWK@
 CC = @CC@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_CONFIG = @GTK_CONFIG@
-GTK_LIBS = @GTK_LIBS@
+DEPDIR = @DEPDIR@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBJPEG_LIB = @LIBJPEG_LIB@
-MAKEINFO = @MAKEINFO@
 PACKAGE = @PACKAGE@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+STRIP = @STRIP@
 VERSION = @VERSION@
-datadir = @datadir@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 src = @src@
-
 SUBDIRS = doc src
 
-EXTRA_DIST = ChangeLog dillorc
+EXTRA_DIST = ChangeLog.old dillorc
+subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = 
-DIST_COMMON =  README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \
-Makefile.am Makefile.in NEWS aclocal.m4 config.h.in configure \
-configure.in install-sh missing mkinstalldirs
-
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
 
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+	uninstall-info-recursive all-recursive install-data-recursive \
+	install-exec-recursive installdirs-recursive install-recursive \
+	uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
+	Makefile.in NEWS aclocal.m4 config.h.in configure configure.in \
+	depcomp install-sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
 .SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
 
-$(ACLOCAL_M4):  configure.in 
-	cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES)
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+$(srcdir)/configure:  $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
 	cd $(srcdir) && $(AUTOCONF)
 
-config.h: stamp-h
-	@if test ! -f $@; then \
-		rm -f stamp-h; \
-		$(MAKE) stamp-h; \
-	else :; fi
-stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES= CONFIG_HEADERS=config.h \
-	     $(SHELL) ./config.status
-	@echo timestamp > stamp-h 2> /dev/null
-$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
+$(ACLOCAL_M4):  configure.in 
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
 	@if test ! -f $@; then \
-		rm -f $(srcdir)/stamp-h.in; \
-		$(MAKE) $(srcdir)/stamp-h.in; \
+	  rm -f stamp-h1; \
+	  $(MAKE) stamp-h1; \
 	else :; fi
-$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOHEADER)
-	@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
 
-mostlyclean-hdr:
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
 
-clean-hdr:
+$(srcdir)/config.h.in:  $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOHEADER)
+	touch $(srcdir)/config.h.in
 
 distclean-hdr:
-	-rm -f config.h
-
-maintainer-clean-hdr:
+	-rm -f config.h stamp-h1
+uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -136,13 +141,8 @@
 # (1) if the variable is set in `config.status', edit `config.status'
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive  \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
-	@set fnord $(MAKEFLAGS); amf=$$2; \
+$(RECURSIVE_TARGETS):
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -162,13 +162,18 @@
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-	@set fnord $(MAKEFLAGS); amf=$$2; \
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
-	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
-	  rev="$$subdir $$rev"; \
-	  test "$$subdir" = "." && dot_seen=yes; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
 	done; \
-	test "$$dot_seen" = "no" && rev=". $$rev"; \
+	rev="$$rev ."; \
 	target=`echo $@ | sed s/-recursive//`; \
 	for subdir in $$rev; do \
 	  echo "Making $$target in $$subdir"; \
@@ -185,176 +190,231 @@
 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 
+ETAGS = etags
+ETAGSFLAGS =
+
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique
 
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-   if test "$$subdir" = .; then :; else \
+	  if test "$$subdir" = .; then :; else \
 	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
-   fi; \
+	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
-
-maintainer-clean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
+top_distdir = .
 distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
 
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	-rm -rf $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
-	mkdir $(distdir)/=build
-	mkdir $(distdir)/=inst
-	dc_install_base=`cd $(distdir)/=inst && pwd`; \
-	cd $(distdir)/=build \
-	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist
-	-rm -rf $(distdir)
-	@banner="$(distdir).tar.gz is ready for distribution"; \
-	dashes=`echo "$$banner" | sed s/./=/g`; \
-	echo "$$dashes"; \
-	echo "$$banner"; \
-	echo "$$dashes"
-dist: distdir
-	-chmod -R a+r $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-	-rm -rf $(distdir)
-dist-all: distdir
-	-chmod -R a+r $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-	-rm -rf $(distdir)
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+
+GZIP_ENV = --best
+distcleancheck_listfiles = find . -type f -print
+
 distdir: $(DISTFILES)
-	-rm -rf $(distdir)
+	$(am__remove_distdir)
 	mkdir $(distdir)
-	-chmod 777 $(distdir)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	@list='$(DISTFILES)'; for file in $$list; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-	for subdir in $(SUBDIRS); do \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d $(distdir)/$$subdir \
 	    || mkdir $(distdir)/$$subdir \
 	    || exit 1; \
-	    chmod 777 $(distdir)/$$subdir; \
-	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$(top_distdir)" \
+	        distdir=../$(distdir)/$$subdir \
+	        distdir) \
 	      || exit 1; \
 	  fi; \
 	done
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist-gzip: distdir
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	$(am__remove_distdir)
+	GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/=build
+	mkdir $(distdir)/=inst
+	chmod a-w $(distdir)
+	dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
+	  && cd $(distdir)/=build \
+	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
+	      || { echo "ERROR: files left after uninstall:" ; \
+	           find $$dc_install_base -type f -print ; \
+	           exit 1; } >&2 ) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
+	  && rm -f $(distdir).tar.gz \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	$(am__remove_distdir)
+	@echo "$(distdir).tar.gz is ready for distribution" | \
+	  sed 'h;s/./=/g;p;x;p;x'
+distcleancheck: distclean
+	if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
 check-am: all-am
 check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-all-recursive-am: config.h
-	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
 
-install-exec-am:
+install: install-recursive
 install-exec: install-exec-recursive
-
-install-data-am: install-data-local
 install-data: install-data-recursive
+uninstall: uninstall-recursive
 
 install-am: all-am
 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am: uninstall-local
-uninstall: uninstall-recursive
-all-am: Makefile config.h
-all-redirect: all-recursive-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs: installdirs-recursive
-installdirs-am:
-
 
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
 	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-hdr mostlyclean-tags mostlyclean-generic
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
 
-mostlyclean: mostlyclean-recursive
+clean-am: clean-generic mostlyclean-am
 
-clean-am:  clean-hdr clean-tags clean-generic mostlyclean-am
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
 
-clean: clean-recursive
+dvi: dvi-recursive
 
-distclean-am:  distclean-hdr distclean-tags distclean-generic clean-am
+dvi-am:
 
-distclean: distclean-recursive
-	-rm -f config.status
+info: info-recursive
 
-maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-tags \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
-	-rm -f config.status
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf autom4te.cache
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
 
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-install-data-recursive uninstall-data-recursive install-exec-recursive \
-uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
-all-recursive check-recursive installcheck-recursive info-recursive \
-dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
-install-exec-am install-exec install-data-local install-data-am \
-install-data install-am install uninstall-local uninstall-am uninstall \
-all-redirect all-am all installdirs-am installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+uninstall-am: uninstall-info-am uninstall-local
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+	clean-generic clean-recursive dist dist-all dist-gzip distcheck \
+	distclean distclean-generic distclean-hdr distclean-recursive \
+	distclean-tags distcleancheck distdir dvi dvi-am dvi-recursive \
+	info info-am info-recursive install install-am install-data \
+	install-data-am install-data-local install-data-recursive \
+	install-exec install-exec-am install-exec-recursive \
+	install-info install-info-am install-info-recursive install-man \
+	install-recursive install-strip installcheck installcheck-am \
+	installdirs installdirs-am installdirs-recursive \
+	maintainer-clean maintainer-clean-generic \
+	maintainer-clean-recursive mostlyclean mostlyclean-generic \
+	mostlyclean-recursive tags tags-recursive uninstall \
+	uninstall-am uninstall-info-am uninstall-info-recursive \
+	uninstall-local uninstall-recursive
 
 
 install-data-local: dillorc
@@ -370,7 +430,6 @@
 	elif [ -d /etc/ ]; then \
 		rm -f /etc/dillorc*
 	fi
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff -urN dillo-0.6.6/aclocal.m4 dillo2-0.6.6/aclocal.m4
--- dillo-0.6.6/aclocal.m4	2002-05-29 15:02:15.000000000 -0600
+++ dillo2-0.6.6/aclocal.m4	2003-04-21 14:24:42.000000000 -0600
@@ -1,70 +1,233 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4-p4
+# aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*-
 
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-# Do all the work for Automake.  This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# Do all the work for Automake.                            -*- Autoconf -*-
+
+# This macro actually does too much some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+AC_PREREQ([2.52])
+
+# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
+# the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
 
-# serial 1
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl
+ AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_][CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_][CC],
+                          defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_][CXX],
+                          defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
 
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+# Copyright 2002  Free Software Foundation, Inc.
 
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.6"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+	 [AM_AUTOMAKE_VERSION([1.6.3])])
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+
+# Copyright 2001, 2002  Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
 #
 # Check to make sure that the build environment is sane.
 #
 
-AC_DEFUN(AM_SANITY_CHECK,
+# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
 # Just in case
 sleep 1
-echo timestamp > conftestfile
+echo timestamp > conftest.file
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "[$]*" = "X"; then
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
+      set X `ls -t $srcdir/configure conftest.file`
    fi
-   if test "[$]*" != "X $srcdir/configure conftestfile" \
-      && test "[$]*" != "X conftestfile $srcdir/configure"; then
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
 
       # If neither matched, then we have a broken ls.  This can happen
       # if, for instance, CONFIG_SHELL is bash and it inherits a
@@ -74,7 +237,7 @@
 alias in your environment])
    fi
 
-   test "[$]2" = conftestfile
+   test "$[2]" = conftest.file
    )
 then
    # Ok.
@@ -83,48 +246,611 @@
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-rm -f conftest*
 AC_MSG_RESULT(yes)])
 
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
+#  -*- Autoconf -*-
+
+
+# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
 else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
 fi
-AC_SUBST($1)])
+])
+
+# AM_AUX_DIR_EXPAND
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+# Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# AM_PROG_INSTALL_STRIP
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# serial 4						-*- Autoconf -*-
+
+# Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    echo '#include "conftest.h"' > conftest.c
+    echo 'int i;' > conftest.h
+    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+       grep conftest.h conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      am_cv_$1_dependencies_compiler_type=$depmode
+      break
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+])
 
-# Like AC_CONFIG_HEADER, but automatically create stamp file.
 
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated.  We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
-  case " <<$>>CONFIG_HEADERS " in
-  *" <<$>>am_file "*<<)>>
-    echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
-    ;;
-  esac
-  am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+AC_SUBST([DEPDIR])
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking.   -*- Autoconf -*-
+
+# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+#serial 2
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`AS_DIRNAME("$mf")`
+  else
+    continue
+  fi
+  grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+	s/\\\\$//
+	p
+	n
+	/\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`AS_DIRNAME(["$file"])`
+    AS_MKDIR_P([$dirpart/$fdir])
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Copyright 2001 Free Software Foundation, Inc.             -*- Autoconf -*-
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+	@echo done
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+AC_SUBST(am__include)
+AC_SUBST(am__quote)
+AC_MSG_RESULT($_am_result)
+rm -f confinc confmf
+])
 
+# AM_CONDITIONAL                                              -*- Autoconf -*-
+
+# Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 5
+
+AC_PREREQ(2.52)
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+        [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([conditional \"$1\" was never defined.
+Usually this means the macro was only invoked conditionally.])
+fi])])
+
+# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*-
+
+# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+AC_PREREQ([2.52])
+
+# serial 6
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  We must strip everything past the first ":",
+# and everything past the last "/".
+
+# _AM_DIRNAME(PATH)
+# -----------------
+# Like AS_DIRNAME, only do it during macro expansion
+AC_DEFUN([_AM_DIRNAME],
+       [m4_if(regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
+	      m4_if(regexp([$1], [^//\([^/]\|$\)]), -1,
+		    m4_if(regexp([$1], [^/.*]), -1,
+			  [.],
+			  patsubst([$1], [^\(/\).*], [\1])),
+		    patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
+	      patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
+])# _AM_DIRNAME
+
+
+# The stamp files are numbered to have different names.
+# We could number them on a directory basis, but that's additional
+# complications, let's have a unique counter.
+m4_define([_AM_STAMP_Count], [0])
+
+
+# _AM_STAMP(HEADER)
+# -----------------
+# The name of the stamp file for HEADER.
+AC_DEFUN([_AM_STAMP],
+[m4_define([_AM_STAMP_Count], m4_incr(_AM_STAMP_Count))dnl
+AS_ESCAPE(_AM_DIRNAME(patsubst([$1],
+                               [:.*])))/stamp-h[]_AM_STAMP_Count])
+
+
+# _AM_CONFIG_HEADER(HEADER[:SOURCES], COMMANDS, INIT-COMMANDS)
+# ------------------------------------------------------------
+# We used to try to get a real timestamp in stamp-h.  But the fear is that
+# that will cause unnecessary cvs conflicts.
+AC_DEFUN([_AM_CONFIG_HEADER],
+[# Add the stamp file to the list of files AC keeps track of,
+# along with our hook.
+AC_CONFIG_HEADERS([$1],
+                  [# update the timestamp
+echo 'timestamp for $1' >"_AM_STAMP([$1])"
+$2],
+                  [$3])
+])# _AM_CONFIG_HEADER
+
+
+# AM_CONFIG_HEADER(HEADER[:SOURCES]..., COMMANDS, INIT-COMMANDS)
+# --------------------------------------------------------------
+AC_DEFUN([AM_CONFIG_HEADER],
+[AC_FOREACH([_AM_File], [$1], [_AM_CONFIG_HEADER(_AM_File, [$2], [$3])])
+])# AM_CONFIG_HEADER
+
+
+# Copyright 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
 
 # serial 1
 
@@ -143,7 +869,7 @@
 # program @code{ansi2knr}, which comes with Ghostscript.
 # @end defmac
 
-AC_DEFUN(AM_PROG_CC_STDC,
+AC_DEFUN([AM_PROG_CC_STDC],
 [AC_REQUIRE([AC_PROG_CC])
 AC_BEFORE([$0], [AC_C_INLINE])
 AC_BEFORE([$0], [AC_C_CONST])
@@ -153,7 +879,7 @@
 dnl FIXME: can't do this because then AC_AIX won't work due to a
 dnl circular dependency.
 dnl AC_BEFORE([$0], [AC_PROG_CPP])
-AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
+AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
 AC_CACHE_VAL(am_cv_prog_cc_stdc,
 [am_cv_prog_cc_stdc=no
 ac_save_CC="$CC"
@@ -161,9 +887,10 @@
 # breaks some systems' header files.
 # AIX			-qlanglvl=ansi
 # Ultrix and OSF/1	-std1
-# HP-UX			-Aa -D_HPUX_SOURCE
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
 # SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   AC_TRY_COMPILE(
@@ -205,7 +932,7 @@
 if test -z "$am_cv_prog_cc_stdc"; then
   AC_MSG_RESULT([none needed])
 else
-  AC_MSG_RESULT($am_cv_prog_cc_stdc)
+  AC_MSG_RESULT([$am_cv_prog_cc_stdc])
 fi
 case "x$am_cv_prog_cc_stdc" in
   x|xno) ;;
@@ -213,198 +940,61 @@
 esac
 ])
 
-# Configure paths for GTK+
-# Owen Taylor     97-11-3
 
-dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
-dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
-dnl
-AC_DEFUN(AM_PATH_GTK,
-[dnl 
-dnl Get the cflags and libraries from the gtk-config script
-dnl
-AC_ARG_WITH(gtk-prefix,[  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)],
-            gtk_config_prefix="$withval", gtk_config_prefix="")
-AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
-            gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
-AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
-		    , enable_gtktest=yes)
-
-  for module in . $4
-  do
-      case "$module" in
-         gthread) 
-             gtk_config_args="$gtk_config_args gthread"
-         ;;
-      esac
-  done
+dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
+dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
+dnl also defines GSTUFF_PKG_ERRORS on error
+AC_DEFUN(PKG_CHECK_MODULES, [
+  succeeded=no
 
-  if test x$gtk_config_exec_prefix != x ; then
-     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
-     if test x${GTK_CONFIG+set} != xset ; then
-        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
-     fi
-  fi
-  if test x$gtk_config_prefix != x ; then
-     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
-     if test x${GTK_CONFIG+set} != xset ; then
-        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
-     fi
+  if test -z "$PKG_CONFIG"; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
   fi
 
-  AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
-  min_gtk_version=ifelse([$1], ,0.99.7,$1)
-  AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
-  no_gtk=""
-  if test "$GTK_CONFIG" = "no" ; then
-    no_gtk=yes
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
   else
-    GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
-    GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
-    gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-    gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-    gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-    if test "x$enable_gtktest" = "xyes" ; then
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $GTK_CFLAGS"
-      LIBS="$GTK_LIBS $LIBS"
-dnl
-dnl Now check if the installed GTK is sufficiently new. (Also sanity
-dnl checks the results of gtk-config to some extent
-dnl
-      rm -f conf.gtktest
-      AC_TRY_RUN([
-#include <gtk/gtk.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int 
-main ()
-{
-  int major, minor, micro;
-  char *tmp_version;
-
-  system ("touch conf.gtktest");
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        AC_MSG_CHECKING(for $2)
+
+        if $PKG_CONFIG --exists "$2" ; then
+            AC_MSG_RESULT(yes)
+            succeeded=yes
+
+            AC_MSG_CHECKING($1_CFLAGS)
+            $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+            AC_MSG_RESULT($$1_CFLAGS)
+
+            AC_MSG_CHECKING($1_LIBS)
+            $1_LIBS=`$PKG_CONFIG --libs "$2"`
+            AC_MSG_RESULT($$1_LIBS)
+        else
+            $1_CFLAGS=""
+            $1_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but 
+            ## do set a variable so people can do so.
+            $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+            ifelse([$4], ,echo $$1_PKG_ERRORS,)
+        fi
 
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_gtk_version");
-  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_gtk_version");
-     exit(1);
-   }
-
-  if ((gtk_major_version != $gtk_config_major_version) ||
-      (gtk_minor_version != $gtk_config_minor_version) ||
-      (gtk_micro_version != $gtk_config_micro_version))
-    {
-      printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
-             $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
-             gtk_major_version, gtk_minor_version, gtk_micro_version);
-      printf ("*** was found! If gtk-config was correct, then it is best\n");
-      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
-      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
-      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
-      printf("*** required on your system.\n");
-      printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
-      printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
-      printf("*** before re-running configure\n");
-    } 
-#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
-  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
-	   (gtk_minor_version != GTK_MINOR_VERSION) ||
-           (gtk_micro_version != GTK_MICRO_VERSION))
-    {
-      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
-	     GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
-      printf("*** library (version %d.%d.%d)\n",
-	     gtk_major_version, gtk_minor_version, gtk_micro_version);
-    }
-#endif /* defined (GTK_MAJOR_VERSION) ... */
-  else
-    {
-      if ((gtk_major_version > major) ||
-        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
-        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
-      {
-        return 0;
-       }
+        AC_SUBST($1_CFLAGS)
+        AC_SUBST($1_LIBS)
      else
-      {
-        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
-               gtk_major_version, gtk_minor_version, gtk_micro_version);
-        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
-	       major, minor, micro);
-        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
-        printf("***\n");
-        printf("*** If you have already installed a sufficiently new version, this error\n");
-        printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
-        printf("*** being found. The easiest way to fix this is to remove the old version\n");
-        printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
-        printf("*** correct copy of gtk-config. (In this case, you will have to\n");
-        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
-        printf("*** so that the correct libraries are found at run-time))\n");
-      }
-    }
-  return 1;
-}
-],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
      fi
   fi
-  if test "x$no_gtk" = x ; then
-     AC_MSG_RESULT(yes)
-     ifelse([$2], , :, [$2])     
-  else
-     AC_MSG_RESULT(no)
-     if test "$GTK_CONFIG" = "no" ; then
-       echo "*** The gtk-config script installed by GTK could not be found"
-       echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
-       echo "*** your path, or set the GTK_CONFIG environment variable to the"
-       echo "*** full path to gtk-config."
-     else
-       if test -f conf.gtktest ; then
-        :
-       else
-          echo "*** Could not run GTK test program, checking why..."
-          CFLAGS="$CFLAGS $GTK_CFLAGS"
-          LIBS="$LIBS $GTK_LIBS"
-          AC_TRY_LINK([
-#include <gtk/gtk.h>
-#include <stdio.h>
-],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
-        [ echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding GTK or finding the wrong"
-          echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system"
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
-          echo "***"
-          echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
-          echo "*** came with the system with the command"
-          echo "***"
-          echo "***    rpm --erase --nodeps gtk gtk-devel" ],
-        [ echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means GTK was incorrectly installed"
-          echo "*** or that you have moved GTK since it was installed. In the latter case, you"
-          echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-       fi
-     fi
-     GTK_CFLAGS=""
-     GTK_LIBS=""
+
+  if test $succeeded = yes; then
      ifelse([$3], , :, [$3])
+  else
+     ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
   fi
-  AC_SUBST(GTK_CFLAGS)
-  AC_SUBST(GTK_LIBS)
-  rm -f conf.gtktest
 ])
 
+
+
diff -urN dillo-0.6.6/config.h dillo2-0.6.6/config.h
--- dillo-0.6.6/config.h	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/config.h	2003-04-21 14:24:16.000000000 -0600
@@ -0,0 +1,83 @@
+/* config.h.  Generated by configure.  */
+/* config.h.in.  Generated from configure.in by autoheader.  */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <jconfig.h> header file. */
+#define HAVE_JCONFIG_H 1
+
+/* Define to 1 if you have the <jerror.h> header file. */
+#define HAVE_JERROR_H 1
+
+/* Define to 1 if you have the <jmorecfg.h> header file. */
+#define HAVE_JMORECFG_H 1
+
+/* Define to 1 if you have the <jpeglib.h> header file. */
+#define HAVE_JPEGLIB_H 1
+
+/* Define to 1 if you have the `png' library (-lpng). */
+#define HAVE_LIBPNG 1
+
+/* Define to 1 if you have the `pthread' library (-lpthread). */
+#define HAVE_LIBPTHREAD 1
+
+/* Define to 1 if you have the `z' library (-lz). */
+#define HAVE_LIBZ 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `socket' function. */
+#define HAVE_SOCKET 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Name of package */
+#define PACKAGE "dillo"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME ""
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING ""
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION ""
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+#define VERSION "0.6.6"
diff -urN dillo-0.6.6/config.h.in dillo2-0.6.6/config.h.in
--- dillo-0.6.6/config.h.in	2002-03-02 07:15:36.000000000 -0700
+++ dillo2-0.6.6/config.h.in	2003-04-21 14:27:01.000000000 -0600
@@ -1,42 +1,81 @@
-/* config.h.in.  Generated automatically from configure.in by autoheader.  */
+/* config.h.in.  Generated from configure.in by autoheader.  */
 
-/* Define if you have the <fcntl.h> header file. */
+/* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
-/* Define if you have the <jconfig.h> header file. */
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <jconfig.h> header file. */
 #undef HAVE_JCONFIG_H
 
-/* Define if you have the <jerror.h> header file. */
+/* Define to 1 if you have the <jerror.h> header file. */
 #undef HAVE_JERROR_H
 
-/* Define if you have the <jmorecfg.h> header file. */
+/* Define to 1 if you have the <jmorecfg.h> header file. */
 #undef HAVE_JMORECFG_H
 
-/* Define if you have the <jpeglib.h> header file. */
+/* Define to 1 if you have the <jpeglib.h> header file. */
 #undef HAVE_JPEGLIB_H
 
-/* Define if you have the `png' library (-lpng). */
+/* Define to 1 if you have the `png' library (-lpng). */
 #undef HAVE_LIBPNG
 
-/* Define if you have the `pthread' library (-lpthread). */
+/* Define to 1 if you have the `pthread' library (-lpthread). */
 #undef HAVE_LIBPTHREAD
 
-/* Define if you have the `z' library (-lz). */
+/* Define to 1 if you have the `z' library (-lz). */
 #undef HAVE_LIBZ
 
-/* Define if you have the `socket' function. */
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `socket' function. */
 #undef HAVE_SOCKET
 
-/* Define if you have the <sys/uio.h> header file. */
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
 #undef HAVE_SYS_UIO_H
 
-/* Define if you have the <unistd.h> header file. */
+/* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
 /* Name of package */
 #undef PACKAGE
 
-/* Define if you have the ANSI C header files. */
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
 /* Version number of package */
diff -urN dillo-0.6.6/config.log dillo2-0.6.6/config.log
--- dillo-0.6.6/config.log	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/config.log	2003-04-21 14:27:11.000000000 -0600
@@ -0,0 +1,610 @@
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by configure, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  $ ./configure --prefix=/usr --enable-ipv6 --no-create --no-recursion
+
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = smackdown
+uname -m = armv4l
+uname -r = 2.4.19-netwinder
+uname -s = Linux
+uname -v = #1 Thu Mar 20 03:14:34 CET 2003
+
+/usr/bin/uname -p = unknown
+/bin/uname -X     = unknown
+
+/bin/arch              = armv4l
+/usr/bin/arch -k       = unknown
+/usr/convex/getsysinfo = unknown
+hostinfo               = unknown
+/bin/machine           = unknown
+/usr/bin/oslevel       = unknown
+/bin/universe          = unknown
+
+PATH: /usr/local/bin
+PATH: /usr/bin
+PATH: /bin
+PATH: /usr/bin/X11
+PATH: /usr/games
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+configure:1315: checking for a BSD-compatible install
+configure:1369: result: /usr/bin/install -c
+configure:1380: checking whether build environment is sane
+configure:1423: result: yes
+configure:1448: WARNING: `missing' script is too old or missing
+configure:1456: checking for gawk
+configure:1472: found /usr/bin/gawk
+configure:1482: result: gawk
+configure:1492: checking whether make sets $(MAKE)
+configure:1512: result: yes
+configure:1766: checking for gcc
+configure:1782: found /usr/bin/gcc
+configure:1792: result: gcc
+configure:2036: checking for C compiler version
+configure:2039: gcc --version </dev/null >&5
+gcc (GCC) 3.2.3 20030228 (Debian prerelease)
+Copyright (C) 2002 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+configure:2042: $? = 0
+configure:2044: gcc -v </dev/null >&5
+Reading specs from /usr/lib/gcc-lib/arm-linux/3.2.3/specs
+Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-java-gc=boehm --enable-objc-gc arm-linux
+Thread model: posix
+gcc version 3.2.3 20030228 (Debian prerelease)
+configure:2047: $? = 0
+configure:2049: gcc -V </dev/null >&5
+gcc: argument to `-V' is missing
+configure:2052: $? = 1
+configure:2076: checking for C compiler default output
+configure:2079: gcc   -I/usr/local/include  -L/usr/local/lib conftest.c  >&5
+configure:2082: $? = 0
+configure:2128: result: a.out
+configure:2133: checking whether the C compiler works
+configure:2139: ./a.out
+configure:2142: $? = 0
+configure:2159: result: yes
+configure:2166: checking whether we are cross compiling
+configure:2168: result: no
+configure:2171: checking for suffix of executables
+configure:2173: gcc -o conftest   -I/usr/local/include  -L/usr/local/lib conftest.c  >&5
+configure:2176: $? = 0
+configure:2201: result: 
+configure:2207: checking for suffix of object files
+configure:2229: gcc -c   -I/usr/local/include conftest.c >&5
+configure:2232: $? = 0
+configure:2254: result: o
+configure:2258: checking whether we are using the GNU C compiler
+configure:2283: gcc -c   -I/usr/local/include conftest.c >&5
+configure:2286: $? = 0
+configure:2289: test -s conftest.o
+configure:2292: $? = 0
+configure:2305: result: yes
+configure:2311: checking whether gcc accepts -g
+configure:2333: gcc -c -g  -I/usr/local/include conftest.c >&5
+configure:2336: $? = 0
+configure:2339: test -s conftest.o
+configure:2342: $? = 0
+configure:2353: result: yes
+configure:2370: checking for gcc option to accept ANSI C
+configure:2431: gcc  -c -g -O2  -I/usr/local/include conftest.c >&5
+configure:2434: $? = 0
+configure:2437: test -s conftest.o
+configure:2440: $? = 0
+configure:2458: result: none needed
+configure:2476: gcc -c -g -O2  -I/usr/local/include conftest.c >&5
+conftest.c:2: syntax error before "me"
+configure:2479: $? = 1
+configure: failed program was:
+| #ifndef __cplusplus
+|   choke me
+| #endif
+configure:2607: checking for style of include used by make
+configure:2635: result: GNU
+configure:2663: checking dependency style of gcc
+configure:2725: result: gcc3
+configure:2734: checking for gcc option to accept ANSI C
+configure:2798: gcc  -c -g -O2  -I/usr/local/include conftest.c >&5
+configure:2801: $? = 0
+configure:2804: test -s conftest.o
+configure:2807: $? = 0
+configure:2822: result: none needed
+configure:2874: checking for ranlib
+configure:2890: found /usr/bin/ranlib
+configure:2901: result: ranlib
+configure:2923: checking for pkg-config
+configure:2941: found /usr/bin/pkg-config
+configure:2954: result: /usr/bin/pkg-config
+configure:2971: checking for gtk+-2.0 >= 2.0.0
+configure:2975: result: yes
+configure:2979: checking GTK_CFLAGS
+configure:2982: result: -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+configure:2985: checking GTK_LIBS
+configure:2988: result: -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+configure:3041: checking for jpeg_destroy_decompress in -ljpeg
+configure:3072: gcc -o conftest -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   conftest.c -ljpeg   >&5
+configure:3075: $? = 0
+configure:3078: test -s conftest
+configure:3081: $? = 0
+configure:3093: result: yes
+configure:3110: checking how to run the C preprocessor
+configure:3146: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:3152: $? = 0
+configure:3184: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:3185:28: ac_nonexistent.h: No such file or directory
+configure:3190: $? = 1
+configure: failed program was:
+| #line 3175 "configure"
+| /* confdefs.h.  */
+| 
+| #define PACKAGE_NAME ""
+| #define PACKAGE_TARNAME ""
+| #define PACKAGE_VERSION ""
+| #define PACKAGE_STRING ""
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "dillo"
+| #define VERSION "0.6.6"
+| /* end confdefs.h.  */
+| #include <ac_nonexistent.h>
+configure:3228: result: gcc -E
+configure:3253: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:3259: $? = 0
+configure:3291: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:3292:28: ac_nonexistent.h: No such file or directory
+configure:3297: $? = 1
+configure: failed program was:
+| #line 3282 "configure"
+| /* confdefs.h.  */
+| 
+| #define PACKAGE_NAME ""
+| #define PACKAGE_TARNAME ""
+| #define PACKAGE_VERSION ""
+| #define PACKAGE_STRING ""
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "dillo"
+| #define VERSION "0.6.6"
+| /* end confdefs.h.  */
+| #include <ac_nonexistent.h>
+configure:3340: checking for egrep
+configure:3350: result: grep -E
+configure:3355: checking for ANSI C header files
+configure:3381: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3384: $? = 0
+configure:3387: test -s conftest.o
+configure:3390: $? = 0
+configure:3479: gcc -o conftest -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   conftest.c  >&5
+configure: In function `main':
+configure:3477: warning: implicit declaration of function `exit'
+configure:3482: $? = 0
+configure:3484: ./conftest
+configure:3487: $? = 0
+configure:3502: result: yes
+configure:3526: checking for sys/types.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3526: checking for sys/stat.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3526: checking for stdlib.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3526: checking for string.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3526: checking for memory.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3526: checking for strings.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3526: checking for inttypes.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3526: checking for stdint.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3526: checking for unistd.h
+configure:3543: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3592: checking jpeglib.h usability
+configure:3605: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3608: $? = 0
+configure:3611: test -s conftest.o
+configure:3614: $? = 0
+configure:3624: result: yes
+configure:3628: checking jpeglib.h presence
+configure:3639: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:3645: $? = 0
+configure:3664: result: yes
+configure:3700: checking for jpeglib.h
+configure:3707: result: yes
+configure:3592: checking jconfig.h usability
+configure:3605: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3608: $? = 0
+configure:3611: test -s conftest.o
+configure:3614: $? = 0
+configure:3624: result: yes
+configure:3628: checking jconfig.h presence
+configure:3639: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:3645: $? = 0
+configure:3664: result: yes
+configure:3700: checking for jconfig.h
+configure:3707: result: yes
+configure:3592: checking jerror.h usability
+configure:3605: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3608: $? = 0
+configure:3611: test -s conftest.o
+configure:3614: $? = 0
+configure:3624: result: yes
+configure:3628: checking jerror.h presence
+configure:3639: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:3645: $? = 0
+configure:3664: result: yes
+configure:3700: checking for jerror.h
+configure:3707: result: yes
+configure:3592: checking jmorecfg.h usability
+configure:3605: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:3608: $? = 0
+configure:3611: test -s conftest.o
+configure:3614: $? = 0
+configure:3624: result: yes
+configure:3628: checking jmorecfg.h presence
+configure:3639: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:3645: $? = 0
+configure:3664: result: yes
+configure:3700: checking for jmorecfg.h
+configure:3707: result: yes
+configure:3736: checking for pthread_create in -lpthread
+configure:3767: gcc -o conftest -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   conftest.c -lpthread   >&5
+configure:3770: $? = 0
+configure:3773: test -s conftest
+configure:3776: $? = 0
+configure:3788: result: yes
+configure:3991: checking for zlibVersion in -lz
+configure:4022: gcc -o conftest -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   conftest.c -lz  -lpthread  >&5
+configure:4025: $? = 0
+configure:4028: test -s conftest
+configure:4031: $? = 0
+configure:4043: result: yes
+configure:4055: checking for png_check_sig in -lpng
+configure:4086: gcc -o conftest -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   conftest.c -lpng  -lz -lpthread  >&5
+configure:4089: $? = 0
+configure:4092: test -s conftest
+configure:4095: $? = 0
+configure:4107: result: yes
+configure:4136: checking for ANSI C header files
+configure:4283: result: yes
+configure:4309: checking fcntl.h usability
+configure:4322: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return -DENABLE_IPV6  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:4325: $? = 0
+configure:4328: test -s conftest.o
+configure:4331: $? = 0
+configure:4341: result: yes
+configure:4345: checking fcntl.h presence
+configure:4356: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:4362: $? = 0
+configure:4381: result: yes
+configure:4417: checking for fcntl.h
+configure:4424: result: yes
+configure:4300: checking for unistd.h
+configure:4305: result: yes
+configure:4309: checking sys/uio.h usability
+configure:4322: gcc -c -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return -DENABLE_IPV6  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c >&5
+configure:4325: $? = 0
+configure:4328: test -s conftest.o
+configure:4331: $? = 0
+configure:4341: result: yes
+configure:4345: checking sys/uio.h presence
+configure:4356: gcc -E  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   conftest.c
+configure:4362: $? = 0
+configure:4381: result: yes
+configure:4417: checking for sys/uio.h
+configure:4424: result: yes
+configure:4442: checking for socket
+configure:4492: gcc -o conftest -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return -DENABLE_IPV6  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   conftest.c -lpng -lz -lpthread  >&5
+configure:4495: $? = 0
+configure:4498: test -s conftest
+configure:4501: $? = 0
+configure:4512: result: yes
+configure:4635: creating ./config.status
+
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+
+ac_cv_c_compiler_gnu=yes
+ac_cv_env_CC_set=
+ac_cv_env_CC_value=
+ac_cv_env_CFLAGS_set=
+ac_cv_env_CFLAGS_value=
+ac_cv_env_CPPFLAGS_set=
+ac_cv_env_CPPFLAGS_value=
+ac_cv_env_CPP_set=
+ac_cv_env_CPP_value=
+ac_cv_env_LDFLAGS_set=
+ac_cv_env_LDFLAGS_value=
+ac_cv_env_build_alias_set=
+ac_cv_env_build_alias_value=
+ac_cv_env_host_alias_set=
+ac_cv_env_host_alias_value=
+ac_cv_env_target_alias_set=
+ac_cv_env_target_alias_value=
+ac_cv_exeext=
+ac_cv_func_socket=yes
+ac_cv_header_fcntl_h=yes
+ac_cv_header_inttypes_h=yes
+ac_cv_header_jconfig_h=yes
+ac_cv_header_jerror_h=yes
+ac_cv_header_jmorecfg_h=yes
+ac_cv_header_jpeglib_h=yes
+ac_cv_header_memory_h=yes
+ac_cv_header_stdc=yes
+ac_cv_header_stdint_h=yes
+ac_cv_header_stdlib_h=yes
+ac_cv_header_string_h=yes
+ac_cv_header_strings_h=yes
+ac_cv_header_sys_stat_h=yes
+ac_cv_header_sys_types_h=yes
+ac_cv_header_sys_uio_h=yes
+ac_cv_header_unistd_h=yes
+ac_cv_lib_jpeg_jpeg_destroy_decompress=yes
+ac_cv_lib_png_png_check_sig=yes
+ac_cv_lib_pthread_pthread_create=yes
+ac_cv_lib_z_zlibVersion=yes
+ac_cv_objext=o
+ac_cv_path_PKG_CONFIG=/usr/bin/pkg-config
+ac_cv_path_install='/usr/bin/install -c'
+ac_cv_prog_AWK=gawk
+ac_cv_prog_CPP='gcc -E'
+ac_cv_prog_ac_ct_CC=gcc
+ac_cv_prog_ac_ct_RANLIB=ranlib
+ac_cv_prog_cc_g=yes
+ac_cv_prog_cc_stdc=
+ac_cv_prog_egrep='grep -E'
+ac_cv_prog_make_make_set=yes
+am_cv_CC_dependencies_compiler_type=gcc3
+am_cv_prog_cc_stdc=
+
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+
+ACLOCAL='aclocal-1.6'
+AMDEPBACKSLASH='\'
+AMDEP_FALSE='#'
+AMDEP_TRUE=''
+AMTAR='tar'
+AUTOCONF='autoconf'
+AUTOHEADER='autoheader'
+AUTOMAKE='automake-1.6'
+AWK='gawk'
+CC='gcc'
+CCDEPMODE='depmode=gcc3'
+CFLAGS='-g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return -DENABLE_IPV6'
+CPP='gcc -E'
+CPPFLAGS=' -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  '
+DEFS='-DHAVE_CONFIG_H'
+DEPDIR='.deps'
+ECHO_C=''
+ECHO_N='-n'
+ECHO_T=''
+EGREP='grep -E'
+EXEEXT=''
+GTK_CFLAGS='-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  '
+GTK_LIBS='-Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  '
+INSTALL_DATA='${INSTALL} -m 644'
+INSTALL_PROGRAM='${INSTALL}'
+INSTALL_SCRIPT='${INSTALL}'
+INSTALL_STRIP_PROGRAM='${SHELL} $(install_sh) -c -s'
+LDFLAGS=' -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  '
+LIBJPEG_LIB='-ljpeg'
+LIBOBJS=''
+LIBS='-lpng -lz -lpthread '
+LTLIBOBJS=''
+MAKEINFO='makeinfo'
+OBJEXT='o'
+PACKAGE='dillo'
+PACKAGE_BUGREPORT=''
+PACKAGE_NAME=''
+PACKAGE_STRING=''
+PACKAGE_TARNAME=''
+PACKAGE_VERSION=''
+PATH_SEPARATOR=':'
+PKG_CONFIG='/usr/bin/pkg-config'
+RANLIB='ranlib'
+SET_MAKE=''
+SHELL='/bin/sh'
+STRIP=''
+VERSION='0.6.6'
+ac_ct_CC='gcc'
+ac_ct_RANLIB='ranlib'
+ac_ct_STRIP=''
+am__include='include'
+am__quote=''
+bin=''
+bindir='${exec_prefix}/bin'
+build_alias=''
+datadir='${prefix}/share'
+doc=''
+exec_prefix='${prefix}'
+host_alias=''
+includedir='${prefix}/include'
+infodir='${prefix}/info'
+install_sh='/home/pb/dillo2/install-sh'
+lib=''
+libdir='${exec_prefix}/lib'
+libexecdir='${exec_prefix}/libexec'
+localstatedir='${prefix}/var'
+mandir='${prefix}/man'
+oldincludedir='/usr/include'
+prefix='/usr'
+program_transform_name='s,x,x,'
+sbindir='${exec_prefix}/sbin'
+sharedstatedir='${prefix}/com'
+src=''
+sysconfdir='${prefix}/etc'
+target_alias=''
+util=''
+
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+
+#define HAVE_FCNTL_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_JCONFIG_H 1
+#define HAVE_JERROR_H 1
+#define HAVE_JMORECFG_H 1
+#define HAVE_JPEGLIB_H 1
+#define HAVE_LIBPNG 1
+#define HAVE_LIBPTHREAD 1
+#define HAVE_LIBZ 1
+#define HAVE_MEMORY_H 1
+#define HAVE_SOCKET 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_SYS_UIO_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_UNISTD_H 1
+#define PACKAGE "dillo"
+#define PACKAGE_BUGREPORT ""
+#define PACKAGE_NAME ""
+#define PACKAGE_STRING ""
+#define PACKAGE_TARNAME ""
+#define PACKAGE_VERSION ""
+#define STDC_HEADERS 1
+#define STDC_HEADERS 1
+#define VERSION "0.6.6"
+
+configure: exit 0
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by config.status, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status Makefile
+
+on smackdown
+
+config.status:662: creating Makefile
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by config.status, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status config.h
+
+on smackdown
+
+config.status:766: creating config.h
+config.status:895: config.h is unchanged
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by config.status, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status doc/Makefile
+
+on smackdown
+
+config.status:662: creating doc/Makefile
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by config.status, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status src/Makefile depfiles
+
+on smackdown
+
+config.status:662: creating src/Makefile
+config.status:1001: executing depfiles commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by config.status, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status src/IO/Makefile depfiles
+
+on smackdown
+
+config.status:662: creating src/IO/Makefile
+config.status:1001: executing depfiles commands
diff -urN dillo-0.6.6/config.status dillo2-0.6.6/config.status
--- dillo-0.6.6/config.status	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/config.status	2003-04-21 14:26:40.000000000 -0600
@@ -0,0 +1,1098 @@
+#! /bin/sh
+# Generated by configure.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=${CONFIG_SHELL-/bin/sh}
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+config_files=" Makefile doc/Makefile src/Makefile src/IO/Makefile"
+config_headers=" config.h"
+config_commands=" depfiles"
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+ac_cs_version="\
+config.status
+configured by ./configure, generated by GNU Autoconf 2.57,
+  with options \"'--prefix=/usr' '--enable-ipv6'\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=.
+INSTALL="/usr/bin/install -c"
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_option=$1
+     ac_need_defaults=false;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+if $ac_cs_recheck; then
+  echo "running /bin/sh ./configure " '--prefix=/usr' '--enable-ipv6' $ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec /bin/sh ./configure '--prefix=/usr' '--enable-ipv6' $ac_configure_extra_args --no-create --no-recursion
+fi
+
+#
+# INIT-COMMANDS section.
+#
+
+AMDEP_TRUE="" ac_aux_dir="."
+
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+  "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+  "src/IO/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/IO/Makefile" ;;
+  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./confstat$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF
+s,@SHELL@,/bin/sh,;t t
+s,@PATH_SEPARATOR@,:,;t t
+s,@PACKAGE_NAME@,,;t t
+s,@PACKAGE_TARNAME@,,;t t
+s,@PACKAGE_VERSION@,,;t t
+s,@PACKAGE_STRING@,,;t t
+s,@PACKAGE_BUGREPORT@,,;t t
+s,@exec_prefix@,${prefix},;t t
+s,@prefix@,/usr,;t t
+s,@program_transform_name@,s,x,x,,;t t
+s,@bindir@,${exec_prefix}/bin,;t t
+s,@sbindir@,${exec_prefix}/sbin,;t t
+s,@libexecdir@,${exec_prefix}/libexec,;t t
+s,@datadir@,${prefix}/share,;t t
+s,@sysconfdir@,${prefix}/etc,;t t
+s,@sharedstatedir@,${prefix}/com,;t t
+s,@localstatedir@,${prefix}/var,;t t
+s,@libdir@,${exec_prefix}/lib,;t t
+s,@includedir@,${prefix}/include,;t t
+s,@oldincludedir@,/usr/include,;t t
+s,@infodir@,${prefix}/info,;t t
+s,@mandir@,${prefix}/man,;t t
+s,@build_alias@,,;t t
+s,@host_alias@,,;t t
+s,@target_alias@,,;t t
+s,@DEFS@,-DHAVE_CONFIG_H,;t t
+s,@ECHO_C@,,;t t
+s,@ECHO_N@,-n,;t t
+s,@ECHO_T@,,;t t
+s,@LIBS@,-lpng -lz -lpthread ,;t t
+s,@INSTALL_PROGRAM@,${INSTALL},;t t
+s,@INSTALL_SCRIPT@,${INSTALL},;t t
+s,@INSTALL_DATA@,${INSTALL} -m 644,;t t
+s,@PACKAGE@,dillo,;t t
+s,@VERSION@,0.6.6,;t t
+s,@ACLOCAL@,aclocal-1.6,;t t
+s,@AUTOCONF@,autoconf,;t t
+s,@AUTOMAKE@,automake-1.6,;t t
+s,@AUTOHEADER@,autoheader,;t t
+s,@MAKEINFO@,makeinfo,;t t
+s,@AMTAR@,tar,;t t
+s,@install_sh@,/home/pb/dillo2/install-sh,;t t
+s,@STRIP@,,;t t
+s,@ac_ct_STRIP@,,;t t
+s,@INSTALL_STRIP_PROGRAM@,${SHELL} $(install_sh) -c -s,;t t
+s,@AWK@,gawk,;t t
+s,@SET_MAKE@,,;t t
+s,@CC@,gcc,;t t
+s,@CFLAGS@,-g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return -DENABLE_IPV6,;t t
+s,@LDFLAGS@, -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  ,;t t
+s,@CPPFLAGS@, -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  ,;t t
+s,@ac_ct_CC@,gcc,;t t
+s,@EXEEXT@,,;t t
+s,@OBJEXT@,o,;t t
+s,@DEPDIR@,.deps,;t t
+s,@am__include@,include,;t t
+s,@am__quote@,,;t t
+s,@AMDEP_TRUE@,,;t t
+s,@AMDEP_FALSE@,#,;t t
+s,@AMDEPBACKSLASH@,\,;t t
+s,@CCDEPMODE@,depmode=gcc3,;t t
+s,@RANLIB@,ranlib,;t t
+s,@ac_ct_RANLIB@,ranlib,;t t
+s,@PKG_CONFIG@,/usr/bin/pkg-config,;t t
+s,@GTK_CFLAGS@,-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  ,;t t
+s,@GTK_LIBS@,-Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  ,;t t
+s,@CPP@,gcc -E,;t t
+s,@EGREP@,grep -E,;t t
+s,@LIBJPEG_LIB@,-ljpeg,;t t
+s,@src@,,;t t
+s,@doc@,,;t t
+s,@bin@,,;t t
+s,@util@,,;t t
+s,@lib@,,;t t
+s,@LIBOBJS@,,;t t
+s,@LTLIBOBJS@,,;t t
+CEOF
+
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+                                     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  sed "/^[ 	]*VPATH[ 	]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ 	]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ 	]*$//;
+}
+
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='[ 	].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
+
+  # Handle all the #define templates only if necessary.
+  if grep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then
+  # If there are no defines, we may have an empty if/fi
+  :
+  cat >$tmp/defines.sed <<CEOF
+/^[ 	]*#[ 	]*define/!b
+t clr
+: clr
+${ac_dA}PACKAGE_NAME${ac_dB}PACKAGE_NAME${ac_dC}""${ac_dD}
+${ac_dA}PACKAGE_TARNAME${ac_dB}PACKAGE_TARNAME${ac_dC}""${ac_dD}
+${ac_dA}PACKAGE_VERSION${ac_dB}PACKAGE_VERSION${ac_dC}""${ac_dD}
+${ac_dA}PACKAGE_STRING${ac_dB}PACKAGE_STRING${ac_dC}""${ac_dD}
+${ac_dA}PACKAGE_BUGREPORT${ac_dB}PACKAGE_BUGREPORT${ac_dC}""${ac_dD}
+${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"dillo"${ac_dD}
+${ac_dA}VERSION${ac_dB}VERSION${ac_dC}"0.6.6"${ac_dD}
+${ac_dA}STDC_HEADERS${ac_dB}STDC_HEADERS${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_TYPES_H${ac_dB}HAVE_SYS_TYPES_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_STAT_H${ac_dB}HAVE_SYS_STAT_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STDLIB_H${ac_dB}HAVE_STDLIB_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRING_H${ac_dB}HAVE_STRING_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_MEMORY_H${ac_dB}HAVE_MEMORY_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRINGS_H${ac_dB}HAVE_STRINGS_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_INTTYPES_H${ac_dB}HAVE_INTTYPES_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STDINT_H${ac_dB}HAVE_STDINT_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_UNISTD_H${ac_dB}HAVE_UNISTD_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_JPEGLIB_H${ac_dB}HAVE_JPEGLIB_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_JCONFIG_H${ac_dB}HAVE_JCONFIG_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_JERROR_H${ac_dB}HAVE_JERROR_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_JMORECFG_H${ac_dB}HAVE_JMORECFG_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LIBPTHREAD${ac_dB}HAVE_LIBPTHREAD${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LIBZ${ac_dB}HAVE_LIBZ${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LIBPNG${ac_dB}HAVE_LIBPNG${ac_dC}1${ac_dD}
+${ac_dA}STDC_HEADERS${ac_dB}STDC_HEADERS${ac_dC}1${ac_dD}
+${ac_dA}HAVE_FCNTL_H${ac_dB}HAVE_FCNTL_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_UNISTD_H${ac_dB}HAVE_UNISTD_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_UIO_H${ac_dB}HAVE_SYS_UIO_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SOCKET${ac_dB}HAVE_SOCKET${ac_dC}1${ac_dD}
+CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+
+  fi # grep
+
+  # Handle all the #undef templates
+  cat >$tmp/undefs.sed <<CEOF
+/^[ 	]*#[ 	]*undef/!b
+t clr
+: clr
+${ac_uA}PACKAGE_NAME${ac_uB}PACKAGE_NAME${ac_uC}""${ac_uD}
+${ac_uA}PACKAGE_TARNAME${ac_uB}PACKAGE_TARNAME${ac_uC}""${ac_uD}
+${ac_uA}PACKAGE_VERSION${ac_uB}PACKAGE_VERSION${ac_uC}""${ac_uD}
+${ac_uA}PACKAGE_STRING${ac_uB}PACKAGE_STRING${ac_uC}""${ac_uD}
+${ac_uA}PACKAGE_BUGREPORT${ac_uB}PACKAGE_BUGREPORT${ac_uC}""${ac_uD}
+${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"dillo"${ac_uD}
+${ac_uA}VERSION${ac_uB}VERSION${ac_uC}"0.6.6"${ac_uD}
+${ac_uA}STDC_HEADERS${ac_uB}STDC_HEADERS${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_TYPES_H${ac_uB}HAVE_SYS_TYPES_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_STAT_H${ac_uB}HAVE_SYS_STAT_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STDLIB_H${ac_uB}HAVE_STDLIB_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRING_H${ac_uB}HAVE_STRING_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_MEMORY_H${ac_uB}HAVE_MEMORY_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRINGS_H${ac_uB}HAVE_STRINGS_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_INTTYPES_H${ac_uB}HAVE_INTTYPES_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STDINT_H${ac_uB}HAVE_STDINT_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_UNISTD_H${ac_uB}HAVE_UNISTD_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_JPEGLIB_H${ac_uB}HAVE_JPEGLIB_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_JCONFIG_H${ac_uB}HAVE_JCONFIG_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_JERROR_H${ac_uB}HAVE_JERROR_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_JMORECFG_H${ac_uB}HAVE_JMORECFG_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LIBPTHREAD${ac_uB}HAVE_LIBPTHREAD${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LIBZ${ac_uB}HAVE_LIBZ${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LIBPNG${ac_uB}HAVE_LIBPNG${ac_uC}1${ac_uD}
+${ac_uA}STDC_HEADERS${ac_uB}STDC_HEADERS${ac_uC}1${ac_uD}
+${ac_uA}HAVE_FCNTL_H${ac_uB}HAVE_FCNTL_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_UNISTD_H${ac_uB}HAVE_UNISTD_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_UIO_H${ac_uB}HAVE_SYS_UIO_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SOCKET${ac_uB}HAVE_SOCKET${ac_uC}1${ac_uD}
+s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+  # Run the commands associated with the file.
+  case $ac_file in
+    config.h ) # update the timestamp
+echo 'timestamp for config.h' >"./stamp-h1"
+ ;;
+  esac
+done
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_dest" : 'X\(//\)[^/]' \| \
+         X"$ac_dest" : 'X\(//\)$' \| \
+         X"$ac_dest" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+  case $ac_dest in
+    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`(dirname "$mf") 2>/dev/null ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$mf" : 'X\(//\)[^/]' \| \
+         X"$mf" : 'X\(//\)$' \| \
+         X"$mf" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  else
+    continue
+  fi
+  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+	s/\\\\$//
+	p
+	n
+	/\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`(dirname "$file") 2>/dev/null ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$file" : 'X\(//\)[^/]' \| \
+         X"$file" : 'X\(//\)$' \| \
+         X"$file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    { if $as_mkdir_p; then
+    mkdir -p $dirpart/$fdir
+  else
+    as_dir=$dirpart/$fdir
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+ ;;
+  esac
+done
+
+{ (exit 0); exit 0; }
diff -urN dillo-0.6.6/configure dillo2-0.6.6/configure
--- dillo-0.6.6/configure	2002-05-29 15:02:13.000000000 -0600
+++ dillo2-0.6.6/configure	2003-04-21 14:25:39.000000000 -0600
@@ -1,22 +1,195 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.50.
+# Generated by GNU Autoconf 2.57.
 #
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
 # Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
 
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
 # Name of the executable.
-as_me=`echo "$0" |sed 's,.*[\\/],,'`
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
 
 if expr a : '\(a\)' >/dev/null 2>&1; then
   as_expr=expr
@@ -42,24 +215,20 @@
 fi
 rm -f conf$$ conf$$.exe conf$$.file
 
-as_executable_p="test -f"
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
 else
-  as_unset=false
+  as_mkdir_p=false
 fi
 
-# NLS nuisances.
-$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
-$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
-$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
-$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
-$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
-$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
-$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
-$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
 
 # IFS
 # We need space, tab and new line, in precisely that order.
@@ -68,7 +237,8 @@
 IFS=" 	$as_nl"
 
 # CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+$as_unset CDPATH
+
 
 # Name of the host.
 # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
@@ -81,9 +251,11 @@
 # Initializations.
 #
 ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
 cross_compiling=no
 subdirs=
-MFLAGS= MAKEFLAGS=
+MFLAGS=
+MAKEFLAGS=
 SHELL=${CONFIG_SHELL-/bin/sh}
 
 # Maximum number of lines to put in a shell here document.
@@ -91,17 +263,53 @@
 # only ac_max_sed_lines should be used.
 : ${ac_max_here_lines=38}
 
-# Avoid depending upon Character Ranges.
-ac_cr_az='abcdefghijklmnopqrstuvwxyz'
-ac_cr_AZ='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-ac_cr_09='0123456789'
-ac_cr_alnum=$ac_cr_az$ac_cr_AZ$ac_cr_09
-
-# Sed expression to map a string onto a valid sh and CPP variable names.
-ac_tr_sh="sed y%*+%pp%;s%[^_$ac_cr_alnum]%_%g"
-ac_tr_cpp="sed y%*$ac_cr_az%P$ac_cr_AZ%;s%[^_$ac_cr_alnum]%_%g"
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
 
 ac_unique_file="src/dillo.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE RANLIB ac_ct_RANLIB PKG_CONFIG GTK_CFLAGS GTK_LIBS CPP EGREP LIBJPEG_LIB src doc bin util lib LIBOBJS LTLIBOBJS'
+ac_subst_files=''
 
 # Initialize some variables set by options.
 ac_init_help=
@@ -141,13 +349,6 @@
 infodir='${prefix}/info'
 mandir='${prefix}/man'
 
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
 ac_prev=
 for ac_option
 do
@@ -193,7 +394,7 @@
   -disable-* | --disable-*)
     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$ac_cr_alnum]" >/dev/null &&
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
     ac_feature=`echo $ac_feature | sed 's/-/_/g'`
@@ -202,7 +403,7 @@
   -enable-* | --enable-*)
     ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$ac_cr_alnum]" >/dev/null &&
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
     ac_feature=`echo $ac_feature | sed 's/-/_/g'`
@@ -280,7 +481,7 @@
     with_fp=no ;;
 
   -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c)
+  | --no-cr | --no-c | -n)
     no_create=yes ;;
 
   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
@@ -384,7 +585,7 @@
   -with-* | --with-*)
     ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$ac_cr_alnum]" >/dev/null &&
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package| sed 's/-/_/g'`
@@ -397,7 +598,7 @@
   -without-* | --without-*)
     ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$ac_cr_alnum]" >/dev/null &&
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package | sed 's/-/_/g'`
@@ -429,7 +630,7 @@
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$ac_cr_alnum]" >/dev/null &&
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
    { (exit 1); exit 1; }; }
     ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
@@ -439,7 +640,7 @@
   *)
     # FIXME: should be removed in autoconf 3.0.
     echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$ac_cr_alnum]" >/dev/null &&
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       echo "$as_me: WARNING: invalid host type: $ac_option" >&2
     : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
     ;;
@@ -454,26 +655,36 @@
 fi
 
 # Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# Be sure to have absolute paths.
 for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-              localstatedir libdir includedir oldincludedir infodir mandir \
-              exec_prefix prefix
+              localstatedir libdir includedir oldincludedir infodir mandir
 do
   eval ac_val=$`echo $ac_var`
   case $ac_val in
     [\\/$]* | ?:[\\/]* ) ;;
-    NONE ) ;;
-    *)  { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
    { (exit 1); exit 1; }; };;
   esac
 done
 
 # There might be people who depend on the old broken behavior: `$host'
 # used to hold the argument of --host etc.
+# FIXME: To remove some day.
 build=$build_alias
 host=$host_alias
 target=$target_alias
 
-# FIXME: should be removed in autoconf 3.0.
+# FIXME: To remove some day.
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
@@ -489,13 +700,23 @@
 
 test "$silent" = yes && exec 6>/dev/null
 
+
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then its parent.
-  ac_prog=$0
-  ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
-  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$0" : 'X\(//\)[^/]' \| \
+         X"$0" : 'X\(//\)$' \| \
+         X"$0" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
   srcdir=$ac_confdir
   if test ! -r $srcdir/$ac_unique_file; then
     srcdir=..
@@ -505,13 +726,16 @@
 fi
 if test ! -r $srcdir/$ac_unique_file; then
   if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
    { (exit 1); exit 1; }; }
   else
-    { echo "$as_me: error: cannot find sources in $srcdir" >&2
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
    { (exit 1); exit 1; }; }
   fi
 fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
 srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
 ac_env_build_alias_set=${build_alias+set}
 ac_env_build_alias_value=$build_alias
@@ -552,7 +776,7 @@
 if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<EOF
+  cat <<_ACEOF
 \`configure' configures this package to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -573,9 +797,9 @@
   -n, --no-create         do not create output files
       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
 
-EOF
+_ACEOF
 
-  cat <<EOF
+  cat <<_ACEOF
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
                           [$ac_default_prefix]
@@ -602,20 +826,20 @@
   --oldincludedir=DIR    C header files for non-gcc [/usr/include]
   --infodir=DIR          info documentation [PREFIX/info]
   --mandir=DIR           man documentation [PREFIX/man]
-EOF
+_ACEOF
 
-  cat <<\EOF
+  cat <<\_ACEOF
 
 Program names:
   --program-prefix=PREFIX            prepend PREFIX to installed program names
   --program-suffix=SUFFIX            append SUFFIX to installed program names
   --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-EOF
+_ACEOF
 fi
 
 if test -n "$ac_init_help"; then
 
-  cat <<\EOF
+  cat <<\_ACEOF
 
 Optional Features:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
@@ -625,15 +849,15 @@
   --enable-insure         Try to compile and run with Insure++
   --enable-ansi           Try to compile and run with ANSI flags
   --enable-cookies        Build with support for cookies
-  --disable-gtktest       Do not try to compile and run a test GTK program
+  --enable-ipv6           Build with support for IPv6
+  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-jpeg-lib=DIR     Specify where to find libjpeg
   --with-jpeg-inc=DIR     Specify where to find libjpeg's headers
-  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)
-  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)
 
 Some influential environment variables:
   CC          C compiler command
@@ -647,40 +871,60 @@
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
-EOF
+_ACEOF
 fi
 
 if test "$ac_init_help" = "recursive"; then
   # If there are subdirs, report their specific --help.
   ac_popdir=`pwd`
-  for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue
-    cd $ac_subdir
-    # A "../" for each directory in /$ac_subdir.
-    ac_dots=`echo $ac_subdir |
-             sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'`
-
-    case $srcdir in
-    .) # No --srcdir option.  We are building in place.
-      ac_sub_srcdir=$srcdir ;;
-    [\\/]* | ?:[\\/]* ) # Absolute path.
-      ac_sub_srcdir=$srcdir/$ac_subdir ;;
-    *) # Relative path.
-      ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;;
-    esac
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d $ac_dir || continue
+    ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
+    cd $ac_dir
     # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_sub_srcdir/configure.gnu; then
+    if test -f $ac_srcdir/configure.gnu; then
       echo
-      $SHELL $ac_sub_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_sub_srcdir/configure; then
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
       echo
-      $SHELL $ac_sub_srcdir/configure  --help=recursive
-    elif test -f $ac_sub_srcdir/configure.ac ||
-           test -f $ac_sub_srcdir/configure.in; then
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+           test -f $ac_srcdir/configure.in; then
       echo
       $ac_configure --help
     else
-      echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi
     cd $ac_popdir
   done
@@ -688,31 +932,31 @@
 
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
-  cat <<\EOF
+  cat <<\_ACEOF
 
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
-EOF
+_ACEOF
   exit 0
 fi
 exec 5>config.log
-cat >&5 <<EOF
+cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.50.  Invocation command line was
+generated by GNU Autoconf 2.57.  Invocation command line was
 
   $ $0 $@
 
-EOF
+_ACEOF
 {
 cat <<_ASUNAME
-## ---------- ##
-## Platform.  ##
-## ---------- ##
+## --------- ##
+## Platform. ##
+## --------- ##
 
 hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
 uname -m = `(uname -m) 2>/dev/null || echo unknown`
@@ -731,83 +975,160 @@
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
 
-PATH = $PATH
-
 _ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+
 } >&5
 
-cat >&5 <<EOF
-## ------------ ##
-## Core tests.  ##
-## ------------ ##
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
 
-EOF
 
 # Keep a trace of the command line.
 # Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
 # Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
 ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
 ac_sep=
-for ac_arg
+ac_must_keep_next=false
+for ac_pass in 1 2
 do
-  case $ac_arg in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c) ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
-    ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-    ac_sep=" " ;;
-  *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg"
-     ac_sep=" " ;;
-  esac
-  # Get rid of the leading space.
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+        ac_must_keep_next=false # Got value, back to normal.
+      else
+        case $ac_arg in
+          *=* | --config-cache | -C | -disable-* | --disable-* \
+          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+          | -with-* | --with-* | -without-* | --without-* | --x)
+            case "$ac_configure_args0 " in
+              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+            esac
+            ;;
+          -* ) ac_must_keep_next=true ;;
+        esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
 done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
 
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
 # would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
 trap 'exit_status=$?
   # Save into config.log some information that might help in debugging.
-  echo >&5
-  echo "## ----------------- ##" >&5
-  echo "## Cache variables.  ##" >&5
-  echo "## ----------------- ##" >&5
-  echo >&5
-  # The following way of writing the cache mishandles newlines in values,
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
 {
   (set) 2>&1 |
     case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
     *ac_space=\ *)
       sed -n \
         "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-    	  s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
       ;;
     *)
       sed -n \
-        "s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
       ;;
     esac;
-} >&5
-  sed "/^$/d" confdefs.h >conftest.log
-  if test -s conftest.log; then
-    echo >&5
-    echo "## ------------ ##" >&5
-    echo "## confdefs.h.  ##" >&5
-    echo "## ------------ ##" >&5
-    echo >&5
-    cat conftest.log >&5
-  fi
-  (echo; echo) >&5
-  test "$ac_signal" != 0 &&
-    echo "$as_me: caught signal $ac_signal" >&5
-  echo "$as_me: exit $exit_status" >&5
-  rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files &&
+}
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=$`echo $ac_var`
+        echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h | sort
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core core.* *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
     exit $exit_status
      ' 0
 for ac_signal in 1 2 13 15; do
-  trap 'ac_status=$?; ac_signal='$ac_signal'; { (exit $ac_status); exit $ac_status; }' $ac_signal
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
 done
 ac_signal=0
 
@@ -816,6 +1137,33 @@
 # AIX cpp loses on an empty file, so make sure it contains at least a newline.
 echo >confdefs.h
 
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
 # Let the site file select an alternate cache file if it wants to.
 # Prefer explicitly selected file to automatically selected ones.
 if test -z "$CONFIG_SITE"; then
@@ -827,9 +1175,9 @@
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
-    { echo "$as_me:830: loading site script $ac_site_file" >&5
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
 echo "$as_me: loading site script $ac_site_file" >&6;}
-    cat "$ac_site_file" >&5
+    sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file"
   fi
 done
@@ -838,7 +1186,7 @@
   # Some versions of bash will fail to source /dev/null (special
   # files actually), so we avoid doing that.
   if test -f "$cache_file"; then
-    { echo "$as_me:841: loading cache $cache_file" >&5
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
 echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -846,14 +1194,14 @@
     esac
   fi
 else
-  { echo "$as_me:849: creating cache $cache_file" >&5
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
 echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
 # Check that the precious variables saved in the cache have kept the same
 # value.
-ac_suggest_removing_cache=false
+ac_cache_corrupted=false
 for ac_var in `(set) 2>&1 |
                sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
   eval ac_old_set=\$ac_cv_env_${ac_var}_set
@@ -862,31 +1210,44 @@
   eval ac_new_val="\$ac_env_${ac_var}_value"
   case $ac_old_set,$ac_new_set in
     set,)
-      { echo "$as_me:865: WARNING: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: WARNING: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_suggest_removing_cache=: ;;
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
     ,set)
-      { echo "$as_me:869: WARNING: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: WARNING: \`$ac_var' was not set in the previous run" >&2;}
-      ac_suggest_removing_cache=: ;;
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
     ,);;
     *)
       if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:875: WARNING: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: WARNING: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:877: WARNING:   former value:  $ac_old_val" >&5
-echo "$as_me: WARNING:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:879: WARNING:   current value: $ac_new_val" >&5
-echo "$as_me: WARNING:   current value: $ac_new_val" >&2;}
-        ac_suggest_removing_cache=:
+        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+        ac_cache_corrupted=:
       fi;;
   esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
 done
-if $ac_suggest_removing_cache; then
-  { echo "$as_me:886: WARNING: changes in the environment can compromise the build" >&5
-echo "$as_me: WARNING: changes in the environment can compromise the build" >&2;}
-  { echo "$as_me:888: WARNING: consider removing $cache_file and starting over" >&5
-echo "$as_me: WARNING: consider removing $cache_file and starting over" >&2;}
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
 ac_ext=c
@@ -895,27 +1256,25 @@
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)      ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-echo "#! $SHELL" >conftest.sh
-echo  "exit 0"   >>conftest.sh
-chmod +x conftest.sh
-if { (echo "$as_me:907: PATH=\".;.\"; conftest.sh") >&5
-  (PATH=".;."; conftest.sh) 2>&5
-  ac_status=$?
-  echo "$as_me:910: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  ac_path_separator=';'
-else
-  ac_path_separator=:
-fi
-PATH_SEPARATOR="$ac_path_separator"
-rm -f conftest.sh
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+am__api_version="1.6"
 ac_aux_dir=
 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
   if test -f $ac_dir/install-sh; then
@@ -933,7 +1292,7 @@
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:936: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -953,43 +1312,48 @@
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:956: checking for a BSD compatible install" >&5
-echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    ac_save_IFS=$IFS; IFS=$ac_path_separator
-  for ac_dir in $PATH; do
-    IFS=$ac_save_IFS
-    # Account for people who put trailing slashes in PATH elements.
-    case $ac_dir/ in
-    / | ./ | .// | /cC/* \
-    | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \
-    | /usr/ucb/* ) ;;
-    *)
-      # OSF1 and SCO ODT 3.0 have their own names for install.
-      # Don't use installbsd from OSF since it installs stuff as root
-      # by default.
-      for ac_prog in ginstall scoinst install; do
-        if $as_executable_p "$ac_dir/$ac_prog"; then
-	  if test $ac_prog = install &&
-            grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    ac_cv_path_install="$ac_dir/$ac_prog -c"
-	    break 2
-	  fi
-	fi
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+          if test $ac_prog = install &&
+            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+            # AIX install.  It has an incompatible calling convention.
+            :
+          elif test $ac_prog = install &&
+            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+            # program-specific install script used by HP pwplus--don't use.
+            :
+          else
+            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+            break 3
+          fi
+        fi
       done
-      ;;
-    esac
-  done
+    done
+    ;;
+esac
+done
+
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
@@ -1002,7 +1366,7 @@
     INSTALL=$ac_install_sh
   fi
 fi
-echo "$as_me:1005: result: $INSTALL" >&5
+echo "$as_me:$LINENO: result: $INSTALL" >&5
 echo "${ECHO_T}$INSTALL" >&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -1013,80 +1377,128 @@
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-echo "$as_me:1016: checking whether build environment is sane" >&5
+echo "$as_me:$LINENO: checking whether build environment is sane" >&5
 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
 # Just in case
 sleep 1
-echo timestamp > conftestfile
+echo timestamp > conftest.file
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
    if test "$*" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
+      set X `ls -t $srcdir/configure conftest.file`
    fi
-   if test "$*" != "X $srcdir/configure conftestfile" \
-      && test "$*" != "X conftestfile $srcdir/configure"; then
+   rm -f conftest.file
+   if test "$*" != "X $srcdir/configure conftest.file" \
+      && test "$*" != "X conftest.file $srcdir/configure"; then
 
       # If neither matched, then we have a broken ls.  This can happen
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      { { echo "$as_me:1039: error: ls -t appears to fail.  Make sure there is not a broken
+      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
 alias in your environment" >&5
 echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
 alias in your environment" >&2;}
    { (exit 1); exit 1; }; }
    fi
 
-   test "$2" = conftestfile
+   test "$2" = conftest.file
    )
 then
    # Ok.
    :
 else
-   { { echo "$as_me:1052: error: newly created file is older than distributed files!
+   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
 Check your system clock" >&5
 echo "$as_me: error: newly created file is older than distributed files!
 Check your system clock" >&2;}
    { (exit 1); exit 1; }; }
 fi
-rm -f conftest*
-echo "$as_me:1059: result: yes" >&5
+echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-if test "$program_transform_name" = s,x,x,; then
-  program_transform_name=
-else
-  # Double any \ or $.  echo might interpret backslashes.
-  cat <<\EOF >conftest.sed
-s,\\,\\\\,g; s,\$,$$,g
-EOF
-  program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-  rm -f conftest.sed
-fi
 test "$program_prefix" != NONE &&
-  program_transform_name="s,^,${program_prefix},;$program_transform_name"
+  program_transform_name="s,^,$program_prefix,;$program_transform_name"
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
-  program_transform_name="s,\$\$,${program_suffix},;$program_transform_name"
+  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+# Double any \ or $.  echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm conftest.sed
+
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-# sed with no file args requires a program.
-test -z "$program_transform_name" && program_transform_name="s,x,x,"
+  test -n "$AWK" && break
+done
 
-echo "$as_me:1080: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.make <<\EOF
+  cat >conftest.make <<\_ACEOF
 all:
-	@echo 'ac_maketemp="${MAKE}"'
-EOF
+	@echo 'ac_maketemp="$(MAKE)"'
+_ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
 if test -n "$ac_maketemp"; then
@@ -1097,129 +1509,176 @@
 rm -f conftest.make
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:1100: result: yes" >&5
+  echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
   SET_MAKE=
 else
-  echo "$as_me:1104: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
-PACKAGE=dillo
-
-VERSION=0.6.6
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  { { echo "$as_me:1114: error: source directory already configured; run \"make distclean\" there first" >&5
+ # test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
-cat >>confdefs.h <<EOF
+# Define the identity of the package.
+ PACKAGE=dillo
+ VERSION=0.6.6
+
+
+cat >>confdefs.h <<_ACEOF
 #define PACKAGE "$PACKAGE"
-EOF
+_ACEOF
 
-cat >>confdefs.h <<EOF
+
+cat >>confdefs.h <<_ACEOF
 #define VERSION "$VERSION"
-EOF
+_ACEOF
 
-missing_dir=`cd $ac_aux_dir && pwd`
-echo "$as_me:1128: checking for working aclocal" >&5
-echo $ECHO_N "checking for working aclocal... $ECHO_C" >&6
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
-   ACLOCAL=aclocal
-   echo "$as_me:1135: result: found" >&5
-echo "${ECHO_T}found" >&6
-else
-   ACLOCAL="$missing_dir/missing aclocal"
-   echo "$as_me:1139: result: missing" >&5
-echo "${ECHO_T}missing" >&6
-fi
-
-echo "$as_me:1143: checking for working autoconf" >&5
-echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
-   AUTOCONF=autoconf
-   echo "$as_me:1150: result: found" >&5
-echo "${ECHO_T}found" >&6
-else
-   AUTOCONF="$missing_dir/missing autoconf"
-   echo "$as_me:1154: result: missing" >&5
-echo "${ECHO_T}missing" >&6
-fi
-
-echo "$as_me:1158: checking for working automake" >&5
-echo $ECHO_N "checking for working automake... $ECHO_C" >&6
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
-   AUTOMAKE=automake
-   echo "$as_me:1165: result: found" >&5
-echo "${ECHO_T}found" >&6
-else
-   AUTOMAKE="$missing_dir/missing automake"
-   echo "$as_me:1169: result: missing" >&5
-echo "${ECHO_T}missing" >&6
-fi
-
-echo "$as_me:1173: checking for working autoheader" >&5
-echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
-   AUTOHEADER=autoheader
-   echo "$as_me:1180: result: found" >&5
-echo "${ECHO_T}found" >&6
-else
-   AUTOHEADER="$missing_dir/missing autoheader"
-   echo "$as_me:1184: result: missing" >&5
-echo "${ECHO_T}missing" >&6
-fi
-
-echo "$as_me:1188: checking for working makeinfo" >&5
-echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
-   MAKEINFO=makeinfo
-   echo "$as_me:1195: result: found" >&5
-echo "${ECHO_T}found" >&6
-else
-   MAKEINFO="$missing_dir/missing makeinfo"
-   echo "$as_me:1199: result: missing" >&5
-echo "${ECHO_T}missing" >&6
-fi
+# Some tools Automake needs.
 
-ac_config_headers="$ac_config_headers config.h"
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
 
-ac_config_commands="$ac_config_commands default-1"
 
-CPPFLAGS="$CPPFLAGS -I/usr/local/include"
-LDFLAGS="$LDFLAGS -L/usr/local/lib"
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
 
-# Check whether --with-jpeg-lib or --without-jpeg-lib was given.
-if test "${with_jpeg_lib+set}" = set; then
-  withval="$with_jpeg_lib"
-  LIBJPEG_LIBDIR=$withval
-fi;
 
-# Check whether --with-jpeg-inc or --without-jpeg-inc was given.
-if test "${with_jpeg_inc+set}" = set; then
-  withval="$with_jpeg_inc"
-  LIBJPEG_INCDIR=$withval
-fi;
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
 
-# Check whether --enable-efence or --disable-efence was given.
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  STRIP=$ac_ct_STRIP
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+
+
+
+# Add the stamp file to the list of files AC keeps track of,
+# along with our hook.
+          ac_config_headers="$ac_config_headers config.h"
+
+
+
+
+CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+LDFLAGS="$LDFLAGS -L/usr/local/lib"
+
+
+
+# Check whether --with-jpeg-lib or --without-jpeg-lib was given.
+if test "${with_jpeg_lib+set}" = set; then
+  withval="$with_jpeg_lib"
+  LIBJPEG_LIBDIR=$withval
+fi;
+
+# Check whether --with-jpeg-inc or --without-jpeg-inc was given.
+if test "${with_jpeg_inc+set}" = set; then
+  withval="$with_jpeg_inc"
+  LIBJPEG_INCDIR=$withval
+fi;
+
+# Check whether --enable-efence or --disable-efence was given.
 if test "${enable_efence+set}" = set; then
   enableval="$enable_efence"
 
@@ -1252,6 +1711,11 @@
   enableval="$enable_cookies"
 
 fi;
+# Check whether --enable-ipv6 or --disable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then
+  enableval="$enable_ipv6"
+
+fi;
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -1261,7 +1725,7 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:1264: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1269,25 +1733,28 @@
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_CC="${ac_tool_prefix}gcc"
-echo "$as_me:1279: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1287: result: $CC" >&5
+  echo "$as_me:$LINENO: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1290: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1296,7 +1763,7 @@
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-echo "$as_me:1299: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1304,25 +1771,28 @@
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_ac_ct_CC="gcc"
-echo "$as_me:1314: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1322: result: $ac_ct_CC" >&5
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1325: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1335,7 +1805,7 @@
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:1338: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1343,25 +1813,28 @@
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_CC="${ac_tool_prefix}cc"
-echo "$as_me:1353: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1361: result: $CC" >&5
+  echo "$as_me:$LINENO: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1364: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1370,7 +1843,7 @@
   ac_ct_CC=$CC
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:1373: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1378,25 +1851,28 @@
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_ac_ct_CC="cc"
-echo "$as_me:1388: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1396: result: $ac_ct_CC" >&5
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1399: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1409,7 +1885,7 @@
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:1412: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1418,19 +1894,22 @@
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
   ac_prog_rejected=no
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-  ac_prog_rejected=yes
-  continue
-fi
-ac_cv_prog_CC="cc"
-echo "$as_me:1432: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
 if test $ac_prog_rejected = yes; then
@@ -1442,19 +1921,17 @@
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    set dummy "$ac_dir/$ac_word" ${1+"$@"}
-    shift
-    ac_cv_prog_CC="$@"
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
   fi
 fi
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1454: result: $CC" >&5
+  echo "$as_me:$LINENO: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1457: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1465,7 +1942,7 @@
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:1468: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1473,25 +1950,28 @@
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-echo "$as_me:1483: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1491: result: $CC" >&5
+  echo "$as_me:$LINENO: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1494: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1504,7 +1984,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:1507: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1512,25 +1992,28 @@
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_ac_ct_CC="$ac_prog"
-echo "$as_me:1522: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1530: result: $ac_ct_CC" >&5
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1533: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1542,13 +2025,40 @@
 
 fi
 
-test -z "$CC" && { { echo "$as_me:1545: error: no acceptable cc found in \$PATH" >&5
-echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
 cat >conftest.$ac_ext <<_ACEOF
-#line 1550 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 int
 main ()
@@ -1559,94 +2069,120 @@
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe"
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compiler, and finding out an intuition
+# It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-echo "$as_me:1566: checking for C compiler default output" >&5
+echo "$as_me:$LINENO: checking for C compiler default output" >&5
 echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:1569: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
   (eval $ac_link_default) 2>&5
   ac_status=$?
-  echo "$as_me:1572: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  for ac_file in `ls a.exe conftest.exe a.* conftest conftest.* 2>/dev/null`; do
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
-    a.out ) # We found the default executable, but exeext='' is most
-            # certainly right.
-            break;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          export ac_cv_exeext
-          break;;
-    * ) break;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+        ;;
+    conftest.$ac_ext )
+        # This is the source file.
+        ;;
+    [ab].out )
+        # We found the default executable, but exeext='' is most
+        # certainly right.
+        break;;
+    *.* )
+        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+        # FIXME: I believe we export ac_cv_exeext for Libtool,
+        # but it would be cool to find out if it's true.  Does anybody
+        # maintain Libtool? --akim.
+        export ac_cv_exeext
+        break;;
+    * )
+        break;;
   esac
 done
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:1589: error: C compiler cannot create executables" >&5
-echo "$as_me: error: C compiler cannot create executables" >&2;}
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
    { (exit 77); exit 77; }; }
 fi
 
 ac_exeext=$ac_cv_exeext
-echo "$as_me:1595: result: $ac_file" >&5
+echo "$as_me:$LINENO: result: $ac_file" >&5
 echo "${ECHO_T}$ac_file" >&6
 
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:1600: checking whether the C compiler works" >&5
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
   if { ac_try='./$ac_file'
-  { (eval echo "$as_me:1606: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1609: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { echo "$as_me:1616: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&5
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
 echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&2;}
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
     fi
   fi
 fi
-echo "$as_me:1624: result: yes" >&5
+echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 
-rm -f a.out a.exe conftest$ac_cv_exeext
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:1631: checking whether we are cross compiling" >&5
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1633: result: $cross_compiling" >&5
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
 echo "${ECHO_T}$cross_compiling" >&6
 
-echo "$as_me:1636: checking for executable suffix" >&5
-echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1638: \"$ac_link\"") >&5
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:1641: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
 # `rm'.
-for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
           export ac_cv_exeext
           break;;
@@ -1654,26 +2190,32 @@
   esac
 done
 else
-  { { echo "$as_me:1657: error: cannot compute EXEEXT: cannot compile and link" >&5
-echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 rm -f conftest$ac_cv_exeext
-echo "$as_me:1663: result: $ac_cv_exeext" >&5
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
 echo "${ECHO_T}$ac_cv_exeext" >&6
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-echo "$as_me:1669: checking for object suffix" >&5
-echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
 if test "${ac_cv_objext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1675 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 int
 main ()
@@ -1684,40 +2226,47 @@
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1687: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1690: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
 done
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:1702: error: cannot compute OBJEXT: cannot compile" >&5
-echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-echo "$as_me:1709: result: $ac_cv_objext" >&5
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
 echo "${ECHO_T}$ac_cv_objext" >&6
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-echo "$as_me:1713: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1719 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 int
 main ()
@@ -1731,41 +2280,46 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1734: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1737: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1740: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1743: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_compiler_gnu=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:1755: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
 GCC=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 CFLAGS="-g"
-echo "$as_me:1761: checking whether $CC accepts -g" >&5
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
 if test "${ac_cv_prog_cc_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1767 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 int
 main ()
@@ -1776,26 +2330,27 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1779: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1782: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1785: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1788: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_prog_cc_g=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:1798: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -1812,6 +2367,102 @@
     CFLAGS=
   fi
 fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
 # Some people use a C++ compiler to compile C.  Since we use `exit',
 # in C++ we need to declare it.  In case someone uses the same compiler
 # for both compiling C and C++ we need to have the C++ compiler decide
@@ -1822,16 +2473,16 @@
 #endif
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1825: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1828: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1831: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1834: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
    ''\
@@ -1843,8 +2494,12 @@
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line 1846 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <stdlib.h>
 $ac_declaration
 int
@@ -1856,27 +2511,32 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1859: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1862: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1865: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1868: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 continue
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 1878 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 $ac_declaration
 int
 main ()
@@ -1887,31 +2547,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1890: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1893: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1896: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1899: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
-echo '#ifdef __cplusplus' >>confdefs.h
-echo $ac_declaration      >>confdefs.h
-echo '#endif'             >>confdefs.h
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
 
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
@@ -1919,8 +2584,154 @@
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
+rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+
+
+          ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+	@echo done
+END
+# If we don't find an include directive, just comment out the code.
+echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+
+
+echo "$as_me:$LINENO: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+  enableval="$enable_dependency_tracking"
+
+fi;
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+
+
+if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+
+
+depcc="$CC"   am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    echo '#include "conftest.h"' > conftest.c
+    echo 'int i;' > conftest.h
+    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+       grep conftest.h conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      am_cv_CC_dependencies_compiler_type=$depmode
+      break
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+
 
-echo "$as_me:1923: checking for ${CC-cc} option to accept ANSI C" >&5
+
+
+
+echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5
 echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
 if test "${am_cv_prog_cc_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1931,14 +2742,19 @@
 # breaks some systems' header files.
 # AIX			-qlanglvl=ansi
 # Ultrix and OSF/1	-std1
-# HP-UX			-Aa -D_HPUX_SOURCE
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
 # SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   cat >conftest.$ac_ext <<_ACEOF
-#line 1940 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
 #include <sys/types.h>
@@ -1979,21 +2795,22 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1982: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1985: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1988: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1991: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   am_cv_prog_cc_stdc="$ac_arg"; break
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
@@ -2002,10 +2819,10 @@
 fi
 
 if test -z "$am_cv_prog_cc_stdc"; then
-  echo "$as_me:2005: result: none needed" >&5
+  echo "$as_me:$LINENO: result: none needed" >&5
 echo "${ECHO_T}none needed" >&6
 else
-  echo "$as_me:2008: result: $am_cv_prog_cc_stdc" >&5
+  echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5
 echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6
 fi
 case "x$am_cv_prog_cc_stdc" in
@@ -2016,7 +2833,7 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:2019: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2024,25 +2841,28 @@
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-echo "$as_me:2034: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  echo "$as_me:2042: result: $RANLIB" >&5
+  echo "$as_me:$LINENO: result: $RANLIB" >&5
 echo "${ECHO_T}$RANLIB" >&6
 else
-  echo "$as_me:2045: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2051,7 +2871,7 @@
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-echo "$as_me:2054: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2059,15 +2879,18 @@
   if test -n "$ac_ct_RANLIB"; then
   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_ac_ct_RANLIB="ranlib"
-echo "$as_me:2069: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
   test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
@@ -2075,10 +2898,10 @@
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:2078: result: $ac_ct_RANLIB" >&5
+  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
 echo "${ECHO_T}$ac_ct_RANLIB" >&6
 else
-  echo "$as_me:2081: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2087,300 +2910,112 @@
   RANLIB="$ac_cv_prog_RANLIB"
 fi
 
-if test -z "$GTK_CONFIG"; then
-  GTK_CONFIG=`which gtk-config || which gtk12-config`
-fi
-
-# Check whether --with-gtk-prefix or --without-gtk-prefix was given.
-if test "${with_gtk_prefix+set}" = set; then
-  withval="$with_gtk_prefix"
-  gtk_config_prefix="$withval"
-else
-  gtk_config_prefix=""
-fi;
 
-# Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given.
-if test "${with_gtk_exec_prefix+set}" = set; then
-  withval="$with_gtk_exec_prefix"
-  gtk_config_exec_prefix="$withval"
-else
-  gtk_config_exec_prefix=""
-fi;
-# Check whether --enable-gtktest or --disable-gtktest was given.
-if test "${enable_gtktest+set}" = set; then
-  enableval="$enable_gtktest"
 
-else
-  enable_gtktest=yes
-fi;
+GTK_REQUIRED=2.0.0
 
-  for module in .
-  do
-      case "$module" in
-         gthread)
-             gtk_config_args="$gtk_config_args gthread"
-         ;;
-      esac
-  done
 
-  if test x$gtk_config_exec_prefix != x ; then
-     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
-     if test x${GTK_CONFIG+set} != xset ; then
-        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
-     fi
-  fi
-  if test x$gtk_config_prefix != x ; then
-     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
-     if test x${GTK_CONFIG+set} != xset ; then
-        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
-     fi
-  fi
+  succeeded=no
 
-  # Extract the first word of "gtk-config", so it can be a program name with args.
-set dummy gtk-config; ac_word=$2
-echo "$as_me:2141: checking for $ac_word" >&5
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GTK_CONFIG+set}" = set; then
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $GTK_CONFIG in
+  case $PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a path.
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
   ;;
   *)
-  ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
-  IFS=$ac_save_IFS
-  test -z "$ac_dir" && ac_dir=.
-  if $as_executable_p "$ac_dir/$ac_word"; then
-   ac_cv_path_GTK_CONFIG="$ac_dir/$ac_word"
-   echo "$as_me:2158: found $ac_dir/$ac_word" >&5
-   break
-fi
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
 done
 
-  test -z "$ac_cv_path_GTK_CONFIG" && ac_cv_path_GTK_CONFIG="no"
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
-GTK_CONFIG=$ac_cv_path_GTK_CONFIG
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 
-if test -n "$GTK_CONFIG"; then
-  echo "$as_me:2170: result: $GTK_CONFIG" >&5
-echo "${ECHO_T}$GTK_CONFIG" >&6
+if test -n "$PKG_CONFIG"; then
+  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
 else
-  echo "$as_me:2173: result: no" >&5
+  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-  min_gtk_version=1.2.0
-  echo "$as_me:2178: checking for GTK - version >= $min_gtk_version" >&5
-echo $ECHO_N "checking for GTK - version >= $min_gtk_version... $ECHO_C" >&6
-  no_gtk=""
-  if test "$GTK_CONFIG" = "no" ; then
-    no_gtk=yes
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
   else
-    GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
-    GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
-    gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
-    gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
-    gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
-    if test "x$enable_gtktest" = "xyes" ; then
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $GTK_CFLAGS"
-      LIBS="$GTK_LIBS $LIBS"
-      rm -f conf.gtktest
-      if test "$cross_compiling" = yes; then
-  echo $ac_n "cross compiling; assumed OK... $ac_c"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line 2202 "configure"
-#include "confdefs.h"
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        echo "$as_me:$LINENO: checking for gtk+-2.0 >= $GTK_REQUIRED" >&5
+echo $ECHO_N "checking for gtk+-2.0 >= $GTK_REQUIRED... $ECHO_C" >&6
 
-#include <gtk/gtk.h>
-#include <stdio.h>
-#include <stdlib.h>
+        if $PKG_CONFIG --exists "gtk+-2.0 >= $GTK_REQUIRED" ; then
+            echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+            succeeded=yes
 
-int
-main ()
-{
-  int major, minor, micro;
-  char *tmp_version;
+            echo "$as_me:$LINENO: checking GTK_CFLAGS" >&5
+echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6
+            GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= $GTK_REQUIRED"`
+            echo "$as_me:$LINENO: result: $GTK_CFLAGS" >&5
+echo "${ECHO_T}$GTK_CFLAGS" >&6
+
+            echo "$as_me:$LINENO: checking GTK_LIBS" >&5
+echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6
+            GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= $GTK_REQUIRED"`
+            echo "$as_me:$LINENO: result: $GTK_LIBS" >&5
+echo "${ECHO_T}$GTK_LIBS" >&6
+        else
+            GTK_CFLAGS=""
+            GTK_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= $GTK_REQUIRED"`
+            echo $GTK_PKG_ERRORS
+        fi
 
-  system ("touch conf.gtktest");
 
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_gtk_version");
-  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_gtk_version");
-     exit(1);
-   }
-
-  if ((gtk_major_version != $gtk_config_major_version) ||
-      (gtk_minor_version != $gtk_config_minor_version) ||
-      (gtk_micro_version != $gtk_config_micro_version))
-    {
-      printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
-             $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
-             gtk_major_version, gtk_minor_version, gtk_micro_version);
-      printf ("*** was found! If gtk-config was correct, then it is best\n");
-      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
-      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
-      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
-      printf("*** required on your system.\n");
-      printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
-      printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
-      printf("*** before re-running configure\n");
-    }
-#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
-  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
-	   (gtk_minor_version != GTK_MINOR_VERSION) ||
-           (gtk_micro_version != GTK_MICRO_VERSION))
-    {
-      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
-	     GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
-      printf("*** library (version %d.%d.%d)\n",
-	     gtk_major_version, gtk_minor_version, gtk_micro_version);
-    }
-#endif /* defined (GTK_MAJOR_VERSION) ... */
-  else
-    {
-      if ((gtk_major_version > major) ||
-        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
-        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
-      {
-        return 0;
-       }
-     else
-      {
-        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
-               gtk_major_version, gtk_minor_version, gtk_micro_version);
-        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
-	       major, minor, micro);
-        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
-        printf("***\n");
-        printf("*** If you have already installed a sufficiently new version, this error\n");
-        printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
-        printf("*** being found. The easiest way to fix this is to remove the old version\n");
-        printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
-        printf("*** correct copy of gtk-config. (In this case, you will have to\n");
-        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
-        printf("*** so that the correct libraries are found at run-time))\n");
-      }
-    }
-  return 1;
-}
 
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:2281: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:2284: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:2286: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:2289: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-no_gtk=yes
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_ext
-fi
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
      fi
   fi
-  if test "x$no_gtk" = x ; then
-     echo "$as_me:2305: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-     LIBS="$LIBS $GTK_LIBS" CFLAGS="$GTK_CFLAGS $CFLAGS"
+
+  if test $succeeded = yes; then
+     :
   else
-     echo "$as_me:2309: result: no" >&5
-echo "${ECHO_T}no" >&6
-     if test "$GTK_CONFIG" = "no" ; then
-       echo "*** The gtk-config script installed by GTK could not be found"
-       echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
-       echo "*** your path, or set the GTK_CONFIG environment variable to the"
-       echo "*** full path to gtk-config."
-     else
-       if test -f conf.gtktest ; then
-        :
-       else
-          echo "*** Could not run GTK test program, checking why..."
-          CFLAGS="$CFLAGS $GTK_CFLAGS"
-          LIBS="$LIBS $GTK_LIBS"
-          cat >conftest.$ac_ext <<_ACEOF
-#line 2324 "configure"
-#include "confdefs.h"
+     { { echo "$as_me:$LINENO: error: Library requirements (gtk+-2.0 >= $GTK_REQUIRED) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
+echo "$as_me: error: Library requirements (gtk+-2.0 >= $GTK_REQUIRED) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
 
-#include <gtk/gtk.h>
-#include <stdio.h>
 
-int
-main ()
-{
- return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version));
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:2339: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:2342: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:2345: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:2348: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-   echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding GTK or finding the wrong"
-          echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system"
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
-          echo "***"
-          echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
-          echo "*** came with the system with the command"
-          echo "***"
-          echo "***    rpm --erase --nodeps gtk gtk-devel"
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
- echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means GTK was incorrectly installed"
-          echo "*** or that you have moved GTK since it was installed. In the latter case, you"
-          echo "*** may want to edit the gtk-config script: $GTK_CONFIG"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-       fi
-     fi
-     GTK_CFLAGS=""
-     GTK_LIBS=""
-     { echo "$as_me:2379: WARNING: Unable to find Gtk+ with a version >= 1.2.0" >&5
-echo "$as_me: WARNING: Unable to find Gtk+ with a version >= 1.2.0" >&2;}
-  fi
+CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
+LDFLAGS="$LDFLAGS $GTK_LIBS"
 
-  rm -f conf.gtktest
 
 if eval "test x$GCC = xyes"; then
   if test "`echo $CFLAGS | grep '\-Wall' 2> /dev/null`" = ""; then
@@ -2398,10 +3033,12 @@
   fi
 fi
 
+
+
 if test -n "$LIBJPEG_LIBDIR"; then
   LIBS="$LIBS -L$LIBJPEG_LIBDIR"
 fi
-echo "$as_me:2404: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "$as_me:$LINENO: checking for jpeg_destroy_decompress in -ljpeg" >&5
 echo $ECHO_N "checking for jpeg_destroy_decompress in -ljpeg... $ECHO_C" >&6
 if test "${ac_cv_lib_jpeg_jpeg_destroy_decompress+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2409,8 +3046,12 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ljpeg  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 2412 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2428,27 +3069,28 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:2431: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:2434: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:2437: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2440: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_jpeg_jpeg_destroy_decompress=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_lib_jpeg_jpeg_destroy_decompress=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:2451: result: $ac_cv_lib_jpeg_jpeg_destroy_decompress" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_jpeg_destroy_decompress" >&5
 echo "${ECHO_T}$ac_cv_lib_jpeg_jpeg_destroy_decompress" >&6
 if test $ac_cv_lib_jpeg_jpeg_destroy_decompress = yes; then
   jpeg_ok=yes
@@ -2465,7 +3107,7 @@
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:2468: checking how to run the C preprocessor" >&5
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
@@ -2478,27 +3120,36 @@
       # Double quotes because CPP needs to be expanded
     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
     do
-      # break 2 since there is a loop in there.
       ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
   # Use a header file that comes with gcc, so configuring glibc
   # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2490 "configure"
-#include "confdefs.h"
-#include <assert.h>
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:2495: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2501: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2512,7 +3163,8 @@
   :
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Broken: fails on valid input.
 continue
 fi
@@ -2521,17 +3173,21 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2524 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:2528: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2534: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2546,7 +3202,8 @@
 continue
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Passes both tests.
 ac_preproc_ok=:
 break
@@ -2557,7 +3214,7 @@
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
-  break 2
+  break
 fi
 
     done
@@ -2568,28 +3225,38 @@
 else
   ac_cv_prog_CPP=$CPP
 fi
-echo "$as_me:2571: result: $CPP" >&5
+echo "$as_me:$LINENO: result: $CPP" >&5
 echo "${ECHO_T}$CPP" >&6
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
   # Use a header file that comes with gcc, so configuring glibc
   # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2581 "configure"
-#include "confdefs.h"
-#include <assert.h>
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:2586: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2592: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2603,7 +3270,8 @@
   :
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Broken: fails on valid input.
 continue
 fi
@@ -2612,17 +3280,21 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2615 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:2619: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2625: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2637,7 +3309,8 @@
 continue
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Passes both tests.
 ac_preproc_ok=:
 break
@@ -2650,8 +3323,10 @@
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:2653: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -2661,26 +3336,316 @@
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-for ac_header in jpeglib.h jconfig.h jerror.h jmorecfg.h
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                   (('a' <= (c) && (c) <= 'i') \
+                     || ('j' <= (c) && (c) <= 'r') \
+                     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+        || toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                  inttypes.h stdint.h unistd.h
 do
-ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh`
-echo "$as_me:2667: checking for $ac_header" >&5
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$ac_ac_Header+set}\" = set"; then
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 2673 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+for ac_header in jpeglib.h jconfig.h jerror.h jmorecfg.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:2677: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2683: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2691,24 +3656,70 @@
   ac_cpp_err=yes
 fi
 if test -z "$ac_cpp_err"; then
-  eval "$ac_ac_Header=yes"
+  ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  eval "$ac_ac_Header=no"
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
 rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
 fi
-echo "$as_me:2702: result: `eval echo '${'$ac_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$ac_ac_Header'}'`" >&6
-if test `eval echo '${'$ac_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $ac_tr_cpp` 1
-EOF
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
  jpeg_ok=yes
 else
   jpeg_ok=no
 fi
+
 done
 
   if test "x$jpeg_ok" = "xyes"; then
@@ -2716,15 +3727,16 @@
   fi
 fi
 if test "x$jpeg_ok" = "xno"; then
-  { echo "$as_me:2719: WARNING: *** JPEG support will not be included ***" >&5
+  { echo "$as_me:$LINENO: WARNING: *** JPEG support will not be included ***" >&5
 echo "$as_me: WARNING: *** JPEG support will not be included ***" >&2;}
 fi
 
+
 system=`uname -s`
 case $system in
   Linux|SunOS)
 
-echo "$as_me:2727: checking for pthread_create in -lpthread" >&5
+echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5
 echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6
 if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2732,8 +3744,12 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 2735 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2751,32 +3767,33 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:2754: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:2757: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:2760: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2763: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_pthread_pthread_create=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_lib_pthread_pthread_create=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:2774: result: $ac_cv_lib_pthread_pthread_create" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5
 echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6
 if test $ac_cv_lib_pthread_pthread_create = yes; then
-  cat >>confdefs.h <<EOF
+  cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBPTHREAD 1
-EOF
+_ACEOF
 
   LIBS="-lpthread $LIBS"
 
@@ -2785,21 +3802,25 @@
     ;;
 
   OSF1)
-    echo "$as_me:2788: checking whether pthreads work" >&5
+    echo "$as_me:$LINENO: checking whether pthreads work" >&5
 echo $ECHO_N "checking whether pthreads work... $ECHO_C" >&6
     LDFLAGS="$LDFLAGS -lpthread -lexc -ldb"
-    { echo "$as_me:2791: WARNING: *** _Untested pthreads_ try setting LDFLAGS manually if it doesn't work ***" >&5
+    { echo "$as_me:$LINENO: WARNING: *** _Untested pthreads_ try setting LDFLAGS manually if it doesn't work ***" >&5
 echo "$as_me: WARNING: *** _Untested pthreads_ try setting LDFLAGS manually if it doesn't work ***" >&2;}
     ;;
 
   *)
-    echo "$as_me:2796: checking whether threads work with -pthread" >&5
+    echo "$as_me:$LINENO: checking whether threads work with -pthread" >&5
 echo $ECHO_N "checking whether threads work with -pthread... $ECHO_C" >&6
     LDSAVEFLAGS=$LDFLAGS
     LDFLAGS="$LDFLAGS -pthread"
     cat >conftest.$ac_ext <<_ACEOF
-#line 2801 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2817,32 +3838,33 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:2820: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:2823: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:2826: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2829: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   pthread_ok=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 pthread_ok=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
     if test "x$pthread_ok" = "xyes"; then
-      echo "$as_me:2839: result: yes" >&5
+      echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
     else
-      echo "$as_me:2842: result: no. Now we will try some libraries." >&5
+      echo "$as_me:$LINENO: result: no. Now we will try some libraries." >&5
 echo "${ECHO_T}no. Now we will try some libraries." >&6
       LDFLAGS=$LDSAVEFLAGS
-      echo "$as_me:2845: checking for library containing pthread_create" >&5
+      echo "$as_me:$LINENO: checking for library containing pthread_create" >&5
 echo $ECHO_N "checking for library containing pthread_create... $ECHO_C" >&6
 if test "${ac_cv_search_pthread_create+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2850,8 +3872,12 @@
   ac_func_search_save_LIBS=$LIBS
 ac_cv_search_pthread_create=no
 cat >conftest.$ac_ext <<_ACEOF
-#line 2853 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2869,29 +3895,34 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:2872: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:2875: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:2878: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2881: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_search_pthread_create="none required"
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 if test "$ac_cv_search_pthread_create" = no; then
   for ac_lib in pthread c_r; do
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
     cat >conftest.$ac_ext <<_ACEOF
-#line 2893 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2909,29 +3940,30 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:2912: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:2915: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:2918: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2921: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_search_pthread_create="-l$ac_lib"
 break
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
   done
 fi
 LIBS=$ac_func_search_save_LIBS
 fi
-echo "$as_me:2934: result: $ac_cv_search_pthread_create" >&5
+echo "$as_me:$LINENO: result: $ac_cv_search_pthread_create" >&5
 echo "${ECHO_T}$ac_cv_search_pthread_create" >&6
 if test "$ac_cv_search_pthread_create" != no; then
   test "$ac_cv_search_pthread_create" = "none required" || LIBS="$ac_cv_search_pthread_create $LIBS"
@@ -2941,14 +3973,14 @@
 fi
 
       if test "x$thread_ok" = "xno"; then
-        { echo "$as_me:2944: WARNING: *** No pthreads found. ***" >&5
+        { echo "$as_me:$LINENO: WARNING: *** No pthreads found. ***" >&5
 echo "$as_me: WARNING: *** No pthreads found. ***" >&2;}
-        { { echo "$as_me:2946: error: *** Try setting LIBS or LDFLAGS manually to point to your pthreads library. ***" >&5
+        { { echo "$as_me:$LINENO: error: *** Try setting LIBS or LDFLAGS manually to point to your pthreads library. ***" >&5
 echo "$as_me: error: *** Try setting LIBS or LDFLAGS manually to point to your pthreads library. ***" >&2;}
    { (exit 1); exit 1; }; }
         exit 1
       else
-        { echo "$as_me:2951: WARNING: found a way to link threads" >&5
+        { echo "$as_me:$LINENO: WARNING: found a way to link threads" >&5
 echo "$as_me: WARNING: found a way to link threads" >&2;}
       fi
     fi
@@ -2956,7 +3988,10 @@
 
 esac
 
-echo "$as_me:2959: checking for zlibVersion in -lz" >&5
+
+
+
+echo "$as_me:$LINENO: checking for zlibVersion in -lz" >&5
 echo $ECHO_N "checking for zlibVersion in -lz... $ECHO_C" >&6
 if test "${ac_cv_lib_z_zlibVersion+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2964,8 +3999,12 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lz  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 2967 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2983,38 +4022,40 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:2986: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:2989: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:2992: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2995: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_z_zlibVersion=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_lib_z_zlibVersion=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:3006: result: $ac_cv_lib_z_zlibVersion" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_z_zlibVersion" >&5
 echo "${ECHO_T}$ac_cv_lib_z_zlibVersion" >&6
 if test $ac_cv_lib_z_zlibVersion = yes; then
-  cat >>confdefs.h <<EOF
+  cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBZ 1
-EOF
+_ACEOF
 
   LIBS="-lz $LIBS"
 
 fi
 
-echo "$as_me:3017: checking for png_check_sig in -lpng" >&5
+
+echo "$as_me:$LINENO: checking for png_check_sig in -lpng" >&5
 echo $ECHO_N "checking for png_check_sig in -lpng... $ECHO_C" >&6
 if test "${ac_cv_lib_png_png_check_sig+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3022,8 +4063,12 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpng  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 3025 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -3041,41 +4086,47 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3044: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:3047: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:3050: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:3053: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_png_png_check_sig=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_lib_png_png_check_sig=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:3064: result: $ac_cv_lib_png_png_check_sig" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_png_png_check_sig" >&5
 echo "${ECHO_T}$ac_cv_lib_png_png_check_sig" >&6
 if test $ac_cv_lib_png_png_check_sig = yes; then
-  cat >>confdefs.h <<EOF
+  cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBPNG 1
-EOF
+_ACEOF
 
   LIBS="-lpng $LIBS"
 
 fi
 
+
 if test "x$enable_cookies" = "xno" ; then
   CFLAGS="$CFLAGS -DDISABLE_COOKIES"
 fi
 
+if test "x$enable_ipv6" = "xyes" ; then
+  CFLAGS="$CFLAGS -DENABLE_IPV6"
+fi
+
 #dnl Test
 if test "x$enable_efence" = "xyes" ; then
   LIBS="-lefence $LIBS"
@@ -3084,55 +4135,67 @@
   CFLAGS="$CFLAGS -pg"
 fi
 
-echo "$as_me:3087: checking for ANSI C header files" >&5
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 3093 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
 
+int
+main ()
+{
+
+  ;
+  return 0;
+}
 _ACEOF
-if { (eval echo "$as_me:3101: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:3107: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_header_stdc=yes
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_header_stdc=no
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 3129 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <string.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "memchr" >/dev/null 2>&1; then
+  $EGREP "memchr" >/dev/null 2>&1; then
   :
 else
   ac_cv_header_stdc=no
@@ -3144,13 +4207,17 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 3147 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <stdlib.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "free" >/dev/null 2>&1; then
+  $EGREP "free" >/dev/null 2>&1; then
   :
 else
   ac_cv_header_stdc=no
@@ -3165,14 +4232,19 @@
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 3168 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 #else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+# define ISLOWER(c) \
+                   (('a' <= (c) && (c) <= 'i') \
                      || ('j' <= (c) && (c) <= 'r') \
                      || ('s' <= (c) && (c) <= 'z'))
 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
@@ -3191,57 +4263,109 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3194: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:3197: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:3199: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:3202: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
   echo "$as_me: program exited with status $ac_status" >&5
 echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
 ac_cv_header_stdc=no
 fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_ext
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 fi
-echo "$as_me:3215: result: $ac_cv_header_stdc" >&5
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
 echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
 #define STDC_HEADERS 1
-EOF
+_ACEOF
 
 fi
 
+
+
+
 for ac_header in fcntl.h unistd.h sys/uio.h
 do
-ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh`
-echo "$as_me:3228: checking for $ac_header" >&5
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$ac_ac_Header+set}\" = set"; then
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line 3234 "configure"
-#include "confdefs.h"
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:3238: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:3244: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -3252,99 +4376,166 @@
   ac_cpp_err=yes
 fi
 if test -z "$ac_cpp_err"; then
-  eval "$ac_ac_Header=yes"
+  ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  eval "$ac_ac_Header=no"
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
 rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
 fi
-echo "$as_me:3263: result: `eval echo '${'$ac_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$ac_ac_Header'}'`" >&6
-if test `eval echo '${'$ac_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $ac_tr_cpp` 1
-EOF
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
+
 done
 
+
+
 for ac_func in socket
 do
-ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh`
-echo "$as_me:3276: checking for $ac_func" >&5
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$ac_ac_var+set}\" = set"; then
+if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 3282 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
-#include <assert.h>
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char $ac_func ();
-char (*f) ();
-
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
 #endif
 
+int
+main ()
+{
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3313: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:3316: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:3319: \"$ac_try\"") >&5
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:3322: \$? = $ac_status" >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  eval "$ac_ac_var=yes"
+  eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$ac_ac_var=no"
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:3332: result: `eval echo '${'$ac_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$ac_ac_var'}'`" >&6
-if test `eval echo '${'$ac_ac_var'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $ac_tr_cpp` 1
-EOF
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
 done
 
+
 if test "x$enable_insure" = "xyes" ; then
   CC="insure -Zoi \"compiler $CC\""
   LIBS="$LIBS -lstdc++-2-libc6.1-1-2.9.0"
 fi
 
-ac_config_files="$ac_config_files Makefile doc/Makefile src/Makefile src/IO/Makefile"
+
+
+
+
+                                        ac_config_files="$ac_config_files Makefile doc/Makefile src/Makefile src/IO/Makefile"
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -3355,7 +4546,7 @@
 # config.status only pays attention to the cache file if you give it
 # the --recheck option to rerun configure.
 #
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
 # loading this file, other *unset* `ac_cv_foo' will be assigned the
 # following values.
 
@@ -3374,12 +4565,12 @@
       # substitution turns \\\\ into \\, and sed turns \\ into \).
       sed -n \
         "s/'/'\\\\''/g;
-    	  s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
       ;;
     *)
       # `set' quotes correctly as required by POSIX, so do not add quotes.
       sed -n \
-        "s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
       ;;
     esac;
 } |
@@ -3390,7 +4581,7 @@
      t end
      /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      : end' >>confcache
-if cmp -s $cache_file confcache; then :; else
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
   if test -w $cache_file; then
     test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
     cat confcache >$cache_file
@@ -3421,35 +4612,234 @@
 
 DEFS=-DHAVE_CONFIG_H
 
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:3427: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
 echo "$as_me: creating $CONFIG_STATUS" >&6;}
 cat >$CONFIG_STATUS <<_ACEOF
 #! $SHELL
-# Generated automatically by configure.
+# Generated by $as_me.
 # Run this file to recreate the current configuration.
 # Compiler output produced by configure, useful for debugging
 # configure, is in config.log if it exists.
 
 debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
 SHELL=\${CONFIG_SHELL-$SHELL}
-ac_cs_invocation="\$0 \$@"
-
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
 
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
 # Name of the executable.
-as_me=`echo "$0" |sed 's,.*[\\/],,'`
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
 
 if expr a : '\(a\)' >/dev/null 2>&1; then
   as_expr=expr
@@ -3475,24 +4865,20 @@
 fi
 rm -f conf$$ conf$$.exe conf$$.file
 
-as_executable_p="test -f"
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
 else
-  as_unset=false
+  as_mkdir_p=false
 fi
 
-# NLS nuisances.
-$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
-$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
-$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
-$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
-$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
-$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
-$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
-$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
 
 # IFS
 # We need space, tab and new line, in precisely that order.
@@ -3501,10 +4887,34 @@
 IFS=" 	$as_nl"
 
 # CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+$as_unset CDPATH
 
 exec 6>&1
 
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
 _ACEOF
 
 # Files that config.status was made for.
@@ -3524,7 +4934,7 @@
   echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
 fi
 
-cat >>$CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 
 ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
@@ -3534,6 +4944,7 @@
 
   -h, --help       print this help, then exit
   -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
   --file=FILE[:TEMPLATE]
@@ -3551,12 +4962,12 @@
 $config_commands
 
 Report bugs to <bug-autoconf@gnu.org>."
-EOF
+_ACEOF
 
-cat >>$CONFIG_STATUS <<EOF
+cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.50,
+configured by $0, generated by GNU Autoconf 2.57,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
@@ -3565,9 +4976,9 @@
 gives unlimited permission to copy, distribute and modify it."
 srcdir=$srcdir
 INSTALL="$INSTALL"
-EOF
+_ACEOF
 
-cat >>$CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 # If no file are specified by the user, then we need to provide default
 # value.  By we need to know if files were specified by the user.
 ac_need_defaults=:
@@ -3577,30 +4988,30 @@
   --*=*)
     ac_option=`expr "x$1" : 'x\([^=]*\)='`
     ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    shift
-    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
-    shift
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
     ;;
-  -*);;
   *) # This is not an option, so the user has probably given explicit
      # arguments.
+     ac_option=$1
      ac_need_defaults=false;;
   esac
 
-  case $1 in
+  case $ac_option in
   # Handling of the options.
-EOF
-cat >>$CONFIG_STATUS <<EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
-    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+    ac_cs_recheck=: ;;
   --version | --vers* | -V )
     echo "$ac_cs_version"; exit 0 ;;
   --he | --h)
     # Conflict between --help and --header
-    { { echo "$as_me:3603: error: ambiguous option: $1
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&5
 echo "$as_me: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&2;}
@@ -3610,50 +5021,74 @@
   --debug | --d* | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
-    shift
-    CONFIG_FILES="$CONFIG_FILES $1"
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
-    shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
     ac_need_defaults=false;;
-
-  # Handling of arguments.
-  'Makefile' ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  'doc/Makefile' ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
-  'src/Makefile' ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
-  'src/IO/Makefile' ) CONFIG_FILES="$CONFIG_FILES src/IO/Makefile" ;;
-  'default-1' ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
-  'config.h' ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { { echo "$as_me:3630: error: unrecognized option: $1
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&5
 echo "$as_me: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&2;}
    { (exit 1); exit 1; }; } ;;
-  *) { { echo "$as_me:3635: error: invalid argument: $1" >&5
-echo "$as_me: error: invalid argument: $1" >&2;}
-   { (exit 1); exit 1; }; };;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
   esac
   shift
 done
 
-exec 5>>config.log
-cat >&5 << _ACEOF
+ac_configure_extra_args=
 
-## ----------------------- ##
-## Running config.status.  ##
-## ----------------------- ##
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
 
-This file was extended by $as_me 2.50, executed with
-  > $ac_cs_invocation
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
 _ACEOF
-EOF
 
-cat >>$CONFIG_STATUS <<\EOF
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+  "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+  "src/IO/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/IO/Makefile" ;;
+  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
 # If the user did not use the arguments to specify the items to instantiate,
 # then the envvar interface is used.  Set only those that are not.
 # We use the long form for the default assignment because of an extremely
@@ -3664,38 +5099,34 @@
   test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
 fi
 
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
 # Create a temporary directory, and hook for its removal unless debugging.
 $debug ||
 {
   trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit $?); exit $?; }' 1 2 13 15
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
 }
 
 # Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
+
 {
-  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
   test -n "$tmp" && test -d "$tmp"
 }  ||
 {
-  tmp=$TMPDIR/cs$$-$RANDOM
+  tmp=./confstat$$-$RANDOM
   (umask 077 && mkdir $tmp)
 } ||
 {
-   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   echo "$me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
-EOF
-
-cat >>$CONFIG_STATUS <<EOF
-#
-# INIT-COMMANDS section.
-#
-
-EOF
+_ACEOF
 
-cat >>$CONFIG_STATUS <<EOF
+cat >>$CONFIG_STATUS <<_ACEOF
 
 #
 # CONFIG_FILES section.
@@ -3708,6 +5139,12 @@
   sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
    s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
 s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
 s,@exec_prefix@,$exec_prefix,;t t
 s,@prefix@,$prefix,;t t
 s,@program_transform_name@,$program_transform_name,;t t
@@ -3723,16 +5160,13 @@
 s,@oldincludedir@,$oldincludedir,;t t
 s,@infodir@,$infodir,;t t
 s,@mandir@,$mandir,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
 s,@ECHO_C@,$ECHO_C,;t t
 s,@ECHO_N@,$ECHO_N,;t t
 s,@ECHO_T@,$ECHO_T,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@DEFS@,$DEFS,;t t
 s,@LIBS@,$LIBS,;t t
 s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
 s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
@@ -3744,6 +5178,12 @@
 s,@AUTOMAKE@,$AUTOMAKE,;t t
 s,@AUTOHEADER@,$AUTOHEADER,;t t
 s,@MAKEINFO@,$MAKEINFO,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@install_sh@,$install_sh,;t t
+s,@STRIP@,$STRIP,;t t
+s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
+s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s,@AWK@,$AWK,;t t
 s,@SET_MAKE@,$SET_MAKE,;t t
 s,@CC@,$CC,;t t
 s,@CFLAGS@,$CFLAGS,;t t
@@ -3752,19 +5192,33 @@
 s,@ac_ct_CC@,$ac_ct_CC,;t t
 s,@EXEEXT@,$EXEEXT,;t t
 s,@OBJEXT@,$OBJEXT,;t t
+s,@DEPDIR@,$DEPDIR,;t t
+s,@am__include@,$am__include,;t t
+s,@am__quote@,$am__quote,;t t
+s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
+s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
+s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+s,@CCDEPMODE@,$CCDEPMODE,;t t
 s,@RANLIB@,$RANLIB,;t t
 s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@GTK_CONFIG@,$GTK_CONFIG,;t t
+s,@PKG_CONFIG@,$PKG_CONFIG,;t t
 s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t
 s,@GTK_LIBS@,$GTK_LIBS,;t t
 s,@CPP@,$CPP,;t t
+s,@EGREP@,$EGREP,;t t
 s,@LIBJPEG_LIB@,$LIBJPEG_LIB,;t t
-s,@src doc bin util lib@,$src doc bin util lib,;t t
+s,@src@,$src,;t t
+s,@doc@,$doc,;t t
+s,@bin@,$bin,;t t
+s,@util@,$util,;t t
+s,@lib@,$lib,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
 
-EOF
+_ACEOF
 
-  cat >>$CONFIG_STATUS <<\EOF
+  cat >>$CONFIG_STATUS <<\_ACEOF
   # Split the substitutions into bite-sized pieces for seds with
   # small command number limits, like on Digital OSF/1 and HP-UX.
   ac_max_sed_lines=48
@@ -3803,8 +5257,8 @@
   fi
 fi # test -n "$CONFIG_FILES"
 
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   case $ac_file in
@@ -3818,7 +5272,8 @@
   esac
 
   # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
          X"$ac_file" : 'X\(//\)[^/]' \| \
          X"$ac_file" : 'X\(//\)$' \| \
          X"$ac_file" : 'X\(/\)' \| \
@@ -3829,60 +5284,84 @@
   	  /^X\(\/\/\)$/{ s//\1/; q; }
   	  /^X\(\/\).*/{ s//\1/; q; }
   	  s/.*/./; q'`
-  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-    { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" || mkdir "$as_incr_dir"
-    ;;
-  esac
-done; }
-
-    ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`"
-    # A "../" for each directory in $ac_dir_suffix.
-    ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
   else
-    ac_dir_suffix= ac_dots=
-  fi
-
-  case $srcdir in
-  .)  ac_srcdir=.
-      if test -z "$ac_dots"; then
-         ac_top_srcdir=.
-      else
-         ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'`
-      fi ;;
-  [\\/]* | ?:[\\/]* )
-      ac_srcdir=$srcdir$ac_dir_suffix;
-      ac_top_srcdir=$srcdir ;;
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
   *) # Relative path.
-    ac_srcdir=$ac_dots$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_dots$srcdir ;;
-  esac
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
 
   case $INSTALL in
   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_dots$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
   esac
 
   if test x"$ac_file" != x-; then
-    { echo "$as_me:3877: creating $ac_file" >&5
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
     rm -f "$ac_file"
   fi
   # Let's still pretend it is `configure' which instantiates (i.e., don't
   # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated automatically by config.status.  */
-  configure_input="Generated automatically from `echo $ac_file_in |
-                                                 sed 's,.*/,,'` by configure."
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+                                     sed 's,.*/,,'` by configure."
 
   # First look for the input files in the build tree, otherwise in the
   # src tree.
@@ -3892,7 +5371,7 @@
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:3895: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -3905,23 +5384,29 @@
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:3908: error: cannot find input file: $f" >&5
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
       esac
     done` || { (exit 1); exit 1; }
-EOF
-cat >>$CONFIG_STATUS <<EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
   sed "$ac_vpsub
 $extrasub
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 :t
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
 s,@configure_input@,$configure_input,;t t
 s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
 s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
 s,@INSTALL@,$ac_INSTALL,;t t
 " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
   rm -f $tmp/stdin
@@ -3933,8 +5418,8 @@
   fi
 
 done
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 
 #
 # CONFIG_HEADER section.
@@ -3966,7 +5451,7 @@
   * )   ac_file_in=$ac_file.in ;;
   esac
 
-  test x"$ac_file" != x- && { echo "$as_me:3969: creating $ac_file" >&5
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
 
   # First look for the input files in the build tree, otherwise in the
@@ -3977,7 +5462,7 @@
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:3980: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -3990,7 +5475,7 @@
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:3993: error: cannot find input file: $f" >&5
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -3999,7 +5484,7 @@
   # Remove the trailing spaces.
   sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
 
-EOF
+_ACEOF
 
 # Transform confdefs.h into two sed scripts, `conftest.defines' and
 # `conftest.undefs', that substitutes the proper values into
@@ -4015,16 +5500,16 @@
 # `end' is used to avoid that the second main sed command (meant for
 # 0-ary CPP macros) applies to n-ary macro definitions.
 # See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\EOF
+cat >confdef2sed.sed <<\_ACEOF
 s/[\\&,]/\\&/g
 s,[\\$`],\\&,g
 t clear
 : clear
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\(\([^ 	(][^ 	(]*\)([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*\)\(([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
 t end
 s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
 : end
-EOF
+_ACEOF
 # If some macros were called several times there might be several times
 # the same #defines, which is useless.  Nevertheless, we may not want to
 # sort them, since we want the *last* AC-DEFINE to be honored.
@@ -4035,14 +5520,14 @@
 # This sed command replaces #undef with comments.  This is necessary, for
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\EOF
+cat >>conftest.undefs <<\_ACEOF
 s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-EOF
+_ACEOF
 
 # Break up conftest.defines because some shells have a limit on the size
 # of here documents, and old seds have small limits too (100 cmds).
 echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if egrep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  if grep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
 echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
 echo '  :' >>$CONFIG_STATUS
 rm -f conftest.tail
@@ -4066,7 +5551,7 @@
   mv conftest.tail conftest.defines
 done
 rm -f conftest.defines
-echo '  fi # egrep' >>$CONFIG_STATUS
+echo '  fi # grep' >>$CONFIG_STATUS
 echo >>$CONFIG_STATUS
 
 # Break up conftest.undefs because some shells have a limit on the size
@@ -4094,23 +5579,24 @@
 done
 rm -f conftest.undefs
 
-cat >>$CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<\_ACEOF
   # Let's still pretend it is `configure' which instantiates (i.e., don't
   # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated automatically by config.status.  */
+  #    /* config.h.  Generated by config.status.  */
   if test x"$ac_file" = x-; then
-    echo "/* Generated automatically by configure.  */" >$tmp/config.h
+    echo "/* Generated by configure.  */" >$tmp/config.h
   else
-    echo "/* $ac_file.  Generated automatically by configure.  */" >$tmp/config.h
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
   fi
   cat $tmp/in >>$tmp/config.h
   rm -f $tmp/in
   if test x"$ac_file" != x-; then
-    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-      { echo "$as_me:4110: $ac_file is unchanged" >&5
+    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
-      ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
          X"$ac_file" : 'X\(//\)[^/]' \| \
          X"$ac_file" : 'X\(//\)$' \| \
          X"$ac_file" : 'X\(/\)' \| \
@@ -4121,24 +5607,31 @@
   	  /^X\(\/\/\)$/{ s//\1/; q; }
   	  /^X\(\/\).*/{ s//\1/; q; }
   	  s/.*/./; q'`
-      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-        { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" || mkdir "$as_incr_dir"
-    ;;
-  esac
-done; }
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
 
-      fi
       rm -f $ac_file
       mv $tmp/config.h $ac_file
     fi
@@ -4146,9 +5639,15 @@
     cat $tmp/config.h
     rm -f $tmp/config.h
   fi
+  # Run the commands associated with the file.
+  case $ac_file in
+    config.h ) # update the timestamp
+echo 'timestamp for config.h' >"./stamp-h1"
+ ;;
+  esac
 done
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 
 #
 # CONFIG_COMMANDS section.
@@ -4156,20 +5655,157 @@
 for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
   ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
   ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_dest" : 'X\(//\)[^/]' \| \
+         X"$ac_dest" : 'X\(//\)$' \| \
+         X"$ac_dest" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
+
+  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
   case $ac_dest in
-    default-1 ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;;
+    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`(dirname "$mf") 2>/dev/null ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$mf" : 'X\(//\)[^/]' \| \
+         X"$mf" : 'X\(//\)$' \| \
+         X"$mf" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  else
+    continue
+  fi
+  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+	s/\\\\$//
+	p
+	n
+	/\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`(dirname "$file") 2>/dev/null ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$file" : 'X\(//\)[^/]' \| \
+         X"$file" : 'X\(//\)$' \| \
+         X"$file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    { if $as_mkdir_p; then
+    mkdir -p $dirpart/$fdir
+  else
+    as_dir=$dirpart/$fdir
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+ ;;
   esac
 done
-EOF
+_ACEOF
 
-cat >>$CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 
 { (exit 0); exit 0; }
-EOF
+_ACEOF
 chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
+
 # configure is writing to config.log, and then calls config.status.
 # config.status does its own redirection, appending to config.log.
 # Unfortunately, on DOS this fails, as config.log is still kept open
@@ -4180,8 +5816,11 @@
 # need to make the FD available again.
 if test "$no_create" != yes; then
   ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
   exec 5>/dev/null
-  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
diff -urN dillo-0.6.6/configure.in dillo2-0.6.6/configure.in
--- dillo-0.6.6/configure.in	2002-05-29 15:01:55.000000000 -0600
+++ dillo2-0.6.6/configure.in	2003-04-21 12:35:09.000000000 -0600
@@ -21,6 +21,7 @@
 AC_ARG_ENABLE(ansi,   [  --enable-ansi           Try to compile and run with ANSI flags],
                     , enable_ansi=no)
 AC_ARG_ENABLE(cookies,[  --enable-cookies        Build with support for cookies], , )
+AC_ARG_ENABLE(ipv6,   [  --enable-ipv6           Build with support for IPv6], , )
 
 AC_PROG_CC
 AM_PROG_CC_STDC
@@ -28,11 +29,12 @@
 
 dnl Check for Gtk+ (it checks glib too)
 
-if test -z "$GTK_CONFIG"; then
-  GTK_CONFIG=`which gtk-config || which gtk12-config`
-fi
-AM_PATH_GTK(1.2.0, [LIBS="$LIBS $GTK_LIBS" CFLAGS="$GTK_CFLAGS $CFLAGS"],
-AC_MSG_WARN(Unable to find Gtk+ with a version >= 1.2.0))
+GTK_REQUIRED=2.0.0
+
+PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $GTK_REQUIRED)
+
+CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
+LDFLAGS="$LDFLAGS $GTK_LIBS"
 
 dnl Check for compiler options
 
@@ -119,6 +121,10 @@
   CFLAGS="$CFLAGS -DDISABLE_COOKIES"
 fi
 
+if test "x$enable_ipv6" = "xyes" ; then
+  CFLAGS="$CFLAGS -DENABLE_IPV6"
+fi
+
 #dnl Test
 if test "x$enable_efence" = "xyes" ; then
   LIBS="-lefence $LIBS"
diff -urN dillo-0.6.6/debian/README.Debian dillo2-0.6.6/debian/README.Debian
--- dillo-0.6.6/debian/README.Debian	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/README.Debian	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,5 @@
+
+To fully make use of dillo, you will want to copy the provided dillorc
+file located in /usr/share/doc/dillo/dillorc into ~/.dillo/ 
+
+This Debian package was created by Ron Farrer <rbf@debian.org>. 
diff -urN dillo-0.6.6/debian/changelog dillo2-0.6.6/debian/changelog
--- dillo-0.6.6/debian/changelog	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/changelog	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,148 @@
+dillo (0.6.6-3) unstable; urgency=low
+
+  * Add build dependency on automake and autoconf, closes: #152820
+
+ -- Phil Blundell <pb@debian.org>  Sat, 13 Jul 2002 13:17:27 +0100
+
+dillo (0.6.6-2) unstable; urgency=low
+
+  * Correct menu, closes: #149483
+  * Fix typo in description, closes: #150415
+  * Don't force CFLAGS in debian/rules.
+  * Include IPv6 support.
+
+ -- Phil Blundell <pb@debian.org>  Fri, 12 Jul 2002 19:23:03 +0100
+
+dillo (0.6.6-1) unstable; urgency=low
+
+  * New upstream version, closes: #145294
+  * Install in /usr/bin, closes: #142755
+
+ -- Philip Blundell <pb@debian.org>  Thu, 30 May 2002 21:53:16 +0100
+
+dillo (0.6.4-4) unstable; urgency=low
+
+  * Update URL in debian/copyright, closes: #142741
+  * Set --prefix=/usr, closes: #142755
+  * Apply patch containing new pixmaps, closes: #142756
+
+ -- Philip Blundell <pb@debian.org>  Sun, 14 Apr 2002 15:23:59 +0100
+
+dillo (0.6.4-3) unstable; urgency=medium
+
+  * New maintainer, closes: #138950
+  * Revert previous bogus change to font specification, 
+    closes: #137025
+
+ -- Philip Blundell <pb@debian.org>  Wed, 20 Mar 2002 01:35:24 +0000
+
+dillo (0.6.4-2) unstable; urgency=low
+
+  * Fixed font reading problem, (Closes: Bug#134592)
+
+ -- Ron Farrer <rbf@debian.org>  Thu, 21 Feb 2002 08:10:14 -0700
+
+dillo (0.6.4-1) unstable; urgency=low
+
+  * New upstream release.
+  * Fixed Long description line, (Closes: Bug#130929)
+  * Fixed oversized control files, (Closes: Bug#130273)
+  * New release doesn't leak memory, (Closes: Bug#123437)
+
+ -- Ron Farrer <rbf@debian.org>  Wed, 30 Jan 2002 07:22:41 -0700
+
+dillo (0.6.3-2) unstable; urgency=low
+
+  * Added a dillo.desktop, (Closes: Bug#121767)
+  * Dillo 0.6.3 already uploaded, (Closes: Bug#126962)
+
+ -- Ron Farrer <rbf@debian.org>  Tue, 01 Jan 2002 11:09:31 -0700
+
+dillo (0.6.3-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Ron Farrer <rbf@debian.org>  Wed, 26 Dec 2001 21:32:29 -0700
+
+dillo (0.6.2-1) unstable; urgency=low
+
+  * New upstream release, (Closes: Bug#115604) 
+
+ -- Ron Farrer <rbf@debian.org>  Thu, 18 Oct 2001 08:20:14 -0700
+
+dillo (0.6.1-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Ron Farrer <rbf@debian.org>  Fri, 14 Sep 2001 10:40:56 -0700
+
+dillo (0.6.0-1) unstable; urgency=low
+
+  * New upstream release, (Closes: Bug#107359)
+ 
+ -- Ron Farrer <rbf@debian.org>  Tue, 31 Jul 2001 19:08:40 -0700
+
+dillo (0.5.1-2) unstable; urgency=low
+
+  * Fixed build-depends, (Closes: Bug#100669)
+
+ -- Ron Farrer <rbf@debian.org>  Fri, 15 Jun 2001 13:49:30 -0700
+
+dillo (0.5.1-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Ron Farrer <rbf@debian.org>  Mon, 04 Jun 2001 10:06:50 -0700
+
+dillo (0.5.0-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Ron Farrer <rbf@debian.org>  Thu, 10 May 2001 21:51:44 -0700
+
+dillo (0.4.0-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Ron Farrer <rbf@debian.org>  Mon, 05 Mar 2001 9:04:17 -0800
+
+dillo (0.3.2-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Ron Farrer <rbf@debian.org>  Thu, 01 Mar 2001 9:33:09 -0800
+
+dillo (0.3.1-2) unstable; urgency=low
+  
+  * Fixed man page, changed splash screen; Closes bug #82748
+  
+ -- Ron Farrer <rbf@debian.org>  Fri, 19 Jan 2001 10:05:27 -0800
+  
+dillo (0.3.1-1) unstable; urgency=low
+  
+  * New upstream release.
+  
+ -- Ron Farrer <rbf@debian.org>  Wed, 27 Dec 2000 10:14:30 -0800
+  
+dillo (0.3.0.0-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Ron Farrer <rbf@debian.org>  Mon, 13 Nov 2000 09:12:54 -0800
+
+dillo (0.3.0pre1-1) unstable; urgency=low
+
+  * New upstream release.
+  * gzilla is now dead upstream, dillo takes it's place.
+
+ -- Ron Farrer <rbf@debian.org>  Wed, 8 Nov 2000 08:06:40 -0800 
+
+dillo (0.2.4-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Ron Farrer <rbf@farrer.net>  Sun, 3 Sep 2000 13:53:35 -0700 
+
+Local variables:
+mode: debian-changelog
+End:
diff -urN dillo-0.6.6/debian/control dillo2-0.6.6/debian/control
--- dillo-0.6.6/debian/control	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/control	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,17 @@
+Source: dillo
+Section: web
+Priority: extra
+Maintainer: Phil Blundell <pb@debian.org>
+Standards-Version: 3.1.1.1
+Build-Depends: debhelper, libgtk1.2-dev, libglib1.2-dev, libpng2-dev, zlib1g-dev, libjpeg62-dev, automake, autoconf
+
+Package: dillo
+Architecture: any
+Depends: ${shlibs:Depends}
+Replaces: gzilla
+Conflicts: gzilla
+Provides: www-browser
+Description: GTK-based web browser
+ Dillo aims to be a multiplatform browser alternative that's small, 
+ stable, developer-friendly, usable, fast, and extensible. Dillo is 
+ mainly based on GTK+ (GNOME is NOT required!) Dillo is very fast!
diff -urN dillo-0.6.6/debian/copyright dillo2-0.6.6/debian/copyright
--- dillo-0.6.6/debian/copyright	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/copyright	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,22 @@
+This package was debianized by Ron Farrer <rbf@debian.org>.
+
+It was downloaded from http://dillo.cipsga.org.br/
+
+Copyright:
+
+GNU GPL with following additions:
+
+The gif.c module was adapted from ppmtogif.c as found in the
+netpbm-1mar1994 release. That code included the following copyright
+notice.
+
+/* +-------------------------------------------------------------------+ */
+/* | Copyright 1990, 1991, 1993, David Koblas.  (koblas@netcom.com)    | */
+/* |   Permission to use, copy, modify, and distribute this software   | */
+/* |   and its documentation for any purpose and without fee is hereby | */
+/* |   granted, provided that the above copyright notice appear in all | */
+/* |   copies and that both that copyright notice and this permission  | */
+/* |   notice appear in supporting documentation.  This software is    | */
+/* |   provided "as is" without express or implied warranty.           | */
+/* +-------------------------------------------------------------------+ */
+
diff -urN dillo-0.6.6/debian/dillo.1x dillo2-0.6.6/debian/dillo.1x
--- dillo-0.6.6/debian/dillo.1x	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/dillo.1x	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,38 @@
+.TH DILLO 1 
+.SH NAME
+dillo \- GTK-based web browser
+.SH SYNOPSIS
+.B dillo
+[url]
+.SH DESCRIPTION
+This manual page documents briefly the
+.BR dillo
+command.
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+.PP
+.B dillo
+is based on
+.B gzilla
+and is a free browser which uses the GTK.  It should be considered
+"early alpha" software.
+.SH OPTIONS
+There are no options.  Pass a URL on the command line to open the
+browser at that location.
+.SH EXAMPLES
+.I /usr/share/doc/dillo/dillorc
+is a sample
+.IR ~/.dillo/dillorc .
+.SH FILES
+.I ~/.dillo/dillorc
+.br
+.I ~/.dillo/bookmarks.html
+.SH AUTHOR
+.B dillo
+was created by the Dillo project.  More information can be found on
+the project home page:
+.IP
+http://dillo.sourceforge.net
+.PP
+This man page was created by Ron Farrer <rbf@debian.org> for the
+Debian GNU/Linux distribution.
diff -urN dillo-0.6.6/debian/dillo.desktop dillo2-0.6.6/debian/dillo.desktop
--- dillo-0.6.6/debian/dillo.desktop	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/dillo.desktop	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Name=Dillo
+Comment=Lightweight browser
+Exec=dillo
+Terminal=false
+Type=Appilcation
diff -urN dillo-0.6.6/debian/dirs dillo2-0.6.6/debian/dirs
--- dillo-0.6.6/debian/dirs	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/dirs	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,3 @@
+usr/share/gnome/apps/Internet/
+usr/X11R6/bin
+usr/X11R6/include/X11/pixmaps
diff -urN dillo-0.6.6/debian/docs dillo2-0.6.6/debian/docs
--- dillo-0.6.6/debian/docs	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/docs	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,20 @@
+ChangeLog 
+ChangeLog.old
+README 
+AUTHORS
+dillorc
+NEWS
+debian/README.Debian
+doc/Cache.txt
+doc/Dillo.txt
+doc/Dw.txt
+doc/DwImage.txt
+doc/DwPage.txt
+doc/DwStyle.txt
+doc/DwTable.txt
+doc/DwWidget.txt
+doc/HtmlParser.txt
+doc/IO.txt
+doc/Images.txt
+doc/NC_design.txt
+doc/README
diff -urN dillo-0.6.6/debian/menu dillo2-0.6.6/debian/menu
--- dillo-0.6.6/debian/menu	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/menu	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,2 @@
+?package(dillo):needs=X11 section=Apps/Net\
+ title="dillo" command="/usr/bin/dillo"
diff -urN dillo-0.6.6/debian/rules dillo2-0.6.6/debian/rules
--- dillo-0.6.6/debian/rules	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/debian/rules	2003-04-21 12:36:34.000000000 -0600
@@ -0,0 +1,64 @@
+#!/usr/bin/make -f
+package=dillo
+
+build:
+	$(checkdir)
+	./configure --prefix=/usr --enable-ipv6
+	make
+	touch build
+
+clean:
+	$(checkdir)
+	-rm -f build
+	-make distclean
+	-rm -f `find . -name "*~"`
+	-rm -rf debian/tmp debian/files* core debian/substvars debian/prerm.debhelper debian/postinst.debhelper debian/postrm.debhelper
+
+binary-indep:	checkroot build
+	$(checkdir)
+
+binary-arch:	checkroot build
+	$(checkdir)
+	-rm -rf debian/tmp
+	install -d debian/tmp
+	cd debian/tmp && install -d `cat ../dirs`
+	make install prefix=`pwd`/debian/tmp/usr
+	dh_installdirs
+	dh_installdocs 
+	dh_installexamples
+	dh_installchangelogs
+	dh_installmenu
+#	dh_installcron
+	dh_installmanpages -pdillo
+	install debian/dillo.desktop debian/tmp/usr/share/gnome/apps/Internet/
+	dh_movefiles
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_suidregister
+	dh_shlibdeps
+	dh_gencontrol
+	dh_makeshlibs
+	dh_installdeb
+	dh_md5sums
+	dh_builddeb
+
+#	debstd 
+#	dpkg-gencontrol
+#	chown -R root.root debian/tmp
+#	chmod -R go=rX debian/tmp
+#	dpkg --build debian/tmp ..
+
+define checkdir
+	test -f debian/rules
+endef
+
+# Below here is fairly generic really
+
+binary:		binary-indep binary-arch
+
+checkroot:
+	$(checkdir)
+	test root = "`whoami`"
+
+.PHONY: binary binary-arch binary-indep clean checkroot
diff -urN dillo-0.6.6/depcomp dillo2-0.6.6/depcomp
--- dillo-0.6.6/depcomp	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/depcomp	2003-04-21 12:35:20.000000000 -0600
@@ -0,0 +1,423 @@
+#! /bin/sh
+
+# depcomp - compile a program generating dependencies as side-effects
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+# `libtool' can also be set to `yes' or `no'.
+
+if test -z "$depfile"; then
+   base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
+   dir=`echo "$object" | sed 's,/.*$,/,'`
+   if test "$dir" = "$object"; then
+      dir=
+   fi
+   # FIXME: should be _deps on DOS.
+   depfile="$dir.deps/$base"
+fi
+
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> $depfile
+    echo >> $depfile
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> $depfile
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  This file always lives in the current directory.
+  # Also, the AIX compiler puts `$object:' at the start of each line;
+  # $object doesn't have directory information.
+  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+  tmpdepfile="$stripped.u"
+  outname="$stripped.o"
+  if test "$libtool" = yes; then
+    "$@" -Wc,-M
+  else
+    "$@" -M
+  fi
+
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+   if test "$libtool" = yes; then
+      tmpdepfile1="$dir.libs/$base.lo.d"
+      tmpdepfile2="$dir.libs/$base.d"
+      "$@" -Wc,-MD
+   else
+      tmpdepfile1="$dir$base.o.d"
+      tmpdepfile2="$dir$base.d"
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2"
+      exit $stat
+   fi
+
+   if test -f "$tmpdepfile1"; then
+      tmpdepfile="$tmpdepfile1"
+   else
+      tmpdepfile="$tmpdepfile2"
+   fi
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a space and a tab in the [].
+      sed -e 's,^.*\.[a-z]*:[ 	]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.  We will use -o /dev/null later,
+  # however we can't do the remplacement now because
+  # `-o $object' might simply not be used
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ 	]*:'"$object"'\: :' > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # X makedepend
+  shift
+  cleared=no
+  for arg in "$@"; do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    -*)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E |
+    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  "$@" || exit $?
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+	set fnord "$@"
+	shift
+	shift
+	;;
+    *)
+	set fnord "$@" "$arg"
+	shift
+	shift
+	;;
+    esac
+  done
+  "$@" -E |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
diff -urN dillo-0.6.6/doc/IO.txt dillo2-0.6.6/doc/IO.txt
--- dillo-0.6.6/doc/IO.txt	2001-07-01 19:06:25.000000000 -0600
+++ dillo2-0.6.6/doc/IO.txt	2003-04-21 12:35:26.000000000 -0600
@@ -338,6 +338,7 @@
 better understood by examining the request structure:
 
  typedef struct {
+    gint Key;              /* Primary Key (for klist) */
     gint Op;               /* IORead | IOWrite | IOWrites */
     gint FD;               /* Current File Descriptor */
     glong Status;          /* Number of bytes read, or -errno code */
diff -urN dillo-0.6.6/doc/Makefile dillo2-0.6.6/doc/Makefile
--- dillo-0.6.6/doc/Makefile	2002-05-29 15:03:42.000000000 -0600
+++ dillo2-0.6.6/doc/Makefile	2003-04-21 14:27:05.000000000 -0600
@@ -1,6 +1,8 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# doc/Makefile.  Generated from Makefile.in by configure.
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,7 +18,7 @@
 srcdir = .
 top_srcdir = ..
 
-prefix = /usr/local
+prefix = /usr
 exec_prefix = ${prefix}
 
 bindir = ${exec_prefix}/bin
@@ -31,149 +33,184 @@
 mandir = ${prefix}/man
 includedir = ${prefix}/include
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/dillo
 pkglibdir = $(libdir)/dillo
 pkgincludedir = $(includedir)/dillo
-
 top_builddir = ..
 
-ACLOCAL = aclocal
+ACLOCAL = aclocal-1.6
 AUTOCONF = autoconf
-AUTOMAKE = automake
+AUTOMAKE = automake-1.6
 AUTOHEADER = autoheader
 
-INSTALL = /usr/bin/ginstall -c
-INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
 INSTALL_DATA = ${INSTALL} -m 644
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
 INSTALL_SCRIPT = ${INSTALL}
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = s,x,x,
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+
+EXEEXT = 
+OBJEXT = o
+PATH_SEPARATOR = :
+AMTAR = tar
+AWK = gawk
 CC = gcc
-GTK_CFLAGS = -I/opt/gnome/include/gtk-1.2 -I/opt/gnome/include/glib-1.2 -I/opt/gnome/lib/glib/include -I/usr/X11R6/include
-GTK_CONFIG = /opt/gnome/bin/gtk-config
-GTK_LIBS = -L/opt/gnome/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXext -lX11 -lm
+DEPDIR = .deps
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
 LIBJPEG_LIB = -ljpeg
-MAKEINFO = makeinfo
 PACKAGE = dillo
+PKG_CONFIG = /usr/bin/pkg-config
 RANLIB = ranlib
+STRIP = 
 VERSION = 0.6.6
-datadir = ${prefix}/share
-src = @src@
-
-EXTRA_DIST =  	Cache.txt 	Cookies.txt 	Dillo.txt 	Dw.txt 	DwImage.txt 	DwPage.txt 	DwStyle.txt 	DwTable.txt 	DwWidget.txt 	HtmlParser.txt 	IO.txt 	Images.txt 	Makefile 	Makefile.am 	Makefile.in 	NC_design.txt 	README
+am__include = include
+am__quote = 
+install_sh = /home/pb/dillo2/install-sh
+src = 
+EXTRA_DIST = \
+	Cache.txt \
+	Cookies.txt \
+	Dillo.txt \
+	Dw.txt \
+	DwImage.txt \
+	DwPage.txt \
+	DwStyle.txt \
+	DwTable.txt \
+	DwWidget.txt \
+	HtmlParser.txt \
+	IO.txt \
+	Images.txt \
+	NC_design.txt \
+	README
 
+subdir = doc
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-DIST_COMMON =  README Makefile.am Makefile.in
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = README Makefile.am Makefile.in
+all: all-am
 
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
 .SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
 tags: TAGS
 TAGS:
 
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = doc
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu doc/Makefile
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	@list='$(DISTFILES)'; for file in $$list; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
+all-am: Makefile
 
-install-data-am:
-install-data: install-data-am
+installdirs:
 
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 install: install-am
-uninstall-am:
+install-exec: install-exec-am
+install-data: install-data-am
 uninstall: uninstall-am
-all-am: Makefile
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
 
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
 	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-generic
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
 
-mostlyclean: mostlyclean-am
+clean-am: clean-generic mostlyclean-am
 
-clean-am:  clean-generic mostlyclean-am
+distclean: distclean-am
 
-clean: clean-am
+distclean-am: clean-am distclean-generic
 
-distclean-am:  distclean-generic clean-am
+dvi: dvi-am
 
-distclean: distclean-am
+dvi-am:
 
-maintainer-clean-am:  maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: tags distdir info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-info-am
 
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am info info-am install \
+	install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic uninstall uninstall-am uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff -urN dillo-0.6.6/doc/Makefile.am dillo2-0.6.6/doc/Makefile.am
--- dillo-0.6.6/doc/Makefile.am	2002-05-27 15:27:46.000000000 -0600
+++ dillo2-0.6.6/doc/Makefile.am	2003-04-21 12:35:27.000000000 -0600
@@ -11,8 +11,5 @@
 	HtmlParser.txt \
 	IO.txt \
 	Images.txt \
-	Makefile \
-	Makefile.am \
-	Makefile.in \
 	NC_design.txt \
 	README
diff -urN dillo-0.6.6/doc/Makefile.in dillo2-0.6.6/doc/Makefile.in
--- dillo-0.6.6/doc/Makefile.in	2002-05-29 15:03:04.000000000 -0600
+++ dillo2-0.6.6/doc/Makefile.in	2003-04-21 12:35:27.000000000 -0600
@@ -1,6 +1,8 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# @configure_input@
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,7 +12,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-
+@SET_MAKE@
 SHELL = @SHELL@
 
 srcdir = @srcdir@
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -45,135 +43,174 @@
 AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AWK = @AWK@
 CC = @CC@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_CONFIG = @GTK_CONFIG@
-GTK_LIBS = @GTK_LIBS@
+DEPDIR = @DEPDIR@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBJPEG_LIB = @LIBJPEG_LIB@
-MAKEINFO = @MAKEINFO@
 PACKAGE = @PACKAGE@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+STRIP = @STRIP@
 VERSION = @VERSION@
-datadir = @datadir@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 src = @src@
+EXTRA_DIST = \
+	Cache.txt \
+	Cookies.txt \
+	Dillo.txt \
+	Dw.txt \
+	DwImage.txt \
+	DwPage.txt \
+	DwStyle.txt \
+	DwTable.txt \
+	DwWidget.txt \
+	HtmlParser.txt \
+	IO.txt \
+	Images.txt \
+	NC_design.txt \
+	README
 
-EXTRA_DIST =  	Cache.txt 	Cookies.txt 	Dillo.txt 	Dw.txt 	DwImage.txt 	DwPage.txt 	DwStyle.txt 	DwTable.txt 	DwWidget.txt 	HtmlParser.txt 	IO.txt 	Images.txt 	Makefile 	Makefile.am 	Makefile.in 	NC_design.txt 	README
-
+subdir = doc
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-DIST_COMMON =  README Makefile.am Makefile.in
-
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = README Makefile.am Makefile.in
+all: all-am
 
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
 .SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
 tags: TAGS
 TAGS:
 
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = doc
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu doc/Makefile
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	@list='$(DISTFILES)'; for file in $$list; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
+all-am: Makefile
 
-install-data-am:
-install-data: install-data-am
+installdirs:
 
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 install: install-am
-uninstall-am:
+install-exec: install-exec-am
+install-data: install-data-am
 uninstall: uninstall-am
-all-am: Makefile
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
 
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
 	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-generic
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
 
-mostlyclean: mostlyclean-am
+clean-am: clean-generic mostlyclean-am
 
-clean-am:  clean-generic mostlyclean-am
+distclean: distclean-am
 
-clean: clean-am
+distclean-am: clean-am distclean-generic
 
-distclean-am:  distclean-generic clean-am
+dvi: dvi-am
 
-distclean: distclean-am
+dvi-am:
 
-maintainer-clean-am:  maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: tags distdir info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-info-am
 
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am info info-am install \
+	install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic uninstall uninstall-am uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff -urN dillo-0.6.6/mkinstalldirs dillo2-0.6.6/mkinstalldirs
--- dillo-0.6.6/mkinstalldirs	2000-08-29 20:43:34.000000000 -0600
+++ dillo2-0.6.6/mkinstalldirs	2003-04-21 12:35:08.000000000 -0600
@@ -4,7 +4,7 @@
 # Created: 1993-05-16
 # Public domain
 
-# $Id: mkinstalldirs,v 1.8 2000/08/30 02:43:34 jcid Exp $
+# $Id: mkinstalldirs,v 1.1.1.1 2003/04/21 18:35:08 pb Exp $
 
 errstatus=0
 
diff -urN dillo-0.6.6/src/IO/IO.c dillo2-0.6.6/src/IO/IO.c
--- dillo-0.6.6/src/IO/IO.c	2002-04-25 08:32:05.000000000 -0600
+++ dillo2-0.6.6/src/IO/IO.c	2003-04-21 12:36:30.000000000 -0600
@@ -26,7 +26,7 @@
 #include "../klist.h"
 #include "IO.h"
 
-//#define DEBUG_LEVEL 3
+#define DEBUG_LEVEL 4
 #include "../debug.h"
 
 
@@ -90,7 +90,7 @@
   g_return_if_fail(IO_get(io->Key) == NULL);
 
   if (io->Flags & IOFlag_FreeIOVec)
-     g_free(io->IOVec.iov_base);
+     g_free(io->IOVecStart);
   g_free(io);
 }
 
@@ -172,9 +172,7 @@
 
 /*
  * Write data, from a specific buffer, into a file descriptor
- * (** Write operations MUST NOT free the buffer because the buffer
- *     start is modified.)
- * todo: Implement IOWrites, remove the constraint stated above.
+ * todo: Implement IOWrites.
  */
 static gboolean IO_write(IOData_t *io)
 {
@@ -193,13 +191,15 @@
          io->Status = -errno;
          if (errno == EINTR)
             ret = TRUE;
-         else if (errno == EAGAIN)
-            ret = TRUE; /* todo: ??? */
-
+         else if (errno == EAGAIN) {
+            DEBUG_MSG(4, "  IO_write: EAGAIN\n");
+            ret = FALSE;
+         }
       } else if ( St < io->IOVec.iov_len ){
          /* Not all data written */
          io->IOVec.iov_len  -= St;
          io->IOVec.iov_base = (gchar *)io->IOVec.iov_base + St;
+         DEBUG_MSG(4, "  IO_write: Changing iov_base (%d)\n", St);
          ret = TRUE;
 
       } else {
@@ -238,6 +238,9 @@
       ret = IO_read(io);
    } else if ( cond & G_IO_OUT ){           /* Write */
       while ( IO_write(io) );
+      io = IO_get(io_key);   /* IO_write may have freed 'io' */
+      if (io && io->Status == -EAGAIN)
+         ret = TRUE;   /* wait for another G_IO_OUT event... */
    }
 
    if ( cond & G_IO_ERR ){     /* Error */
@@ -262,6 +265,9 @@
  */
 static void IO_submit(IOData_t *r_io)
 {
+   /* Save IOVec's start */
+   r_io->IOVecStart = r_io->IOVec.iov_base;
+
    /* Insert this IO in ValidIOs */
    IO_ins(r_io);
 
@@ -333,7 +339,7 @@
       /* Backwards call */
       switch (Op) {
       case OpAbort:
-         DEBUG_MSG(3, "IO   : OpAbort [-1]\n");
+         DEBUG_MSG(4, "IO   : OpAbort [-1]\n");
          io = Info->LocalKey;
          IO_abort(io);
          IO_free(io);
diff -urN dillo-0.6.6/src/IO/IO.h dillo2-0.6.6/src/IO/IO.h
--- dillo-0.6.6/src/IO/IO.h	2002-01-27 06:44:52.000000000 -0700
+++ dillo2-0.6.6/src/IO/IO.h	2003-04-21 12:36:30.000000000 -0600
@@ -34,13 +34,13 @@
    gint Key;              /* Primary Key (for klist) */
    gint Op;               /* IORead | IOWrite | IOWrites */
    gint FD;               /* Current File Descriptor */
+   gint Flags;            /* Flag array (look definitions above) */
    glong Status;          /* Number of bytes read, or -errno code */
    struct iovec IOVec;    /* Buffer place and length */
-   gint Flags;            /* Flag array (look definitions above) */
+   void *IOVecStart;      /* PRIVATE: only used inside IO.c! */
    void *ExtData;         /* External data reference (not used by IO.c) */
    void *Info;            /* CCC Info structure for this IO */
    GIOChannel *GioCh;     /* IO channel */
-   gint GdkTag;           /* gdk_input tag (used to remove) */
 } IOData_t;
 
 
diff -urN dillo-0.6.6/src/IO/Makefile dillo2-0.6.6/src/IO/Makefile
--- dillo-0.6.6/src/IO/Makefile	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/src/IO/Makefile	2003-04-21 14:27:11.000000000 -0600
@@ -0,0 +1,318 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# src/IO/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../..
+
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/dillo
+pkglibdir = $(libdir)/dillo
+pkgincludedir = $(includedir)/dillo
+top_builddir = ../..
+
+ACLOCAL = aclocal-1.6
+AUTOCONF = autoconf
+AUTOMAKE = automake-1.6
+AUTOHEADER = autoheader
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = s,x,x,
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+
+EXEEXT = 
+OBJEXT = o
+PATH_SEPARATOR = :
+AMTAR = tar
+AWK = gawk
+CC = gcc
+DEPDIR = .deps
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LIBJPEG_LIB = -ljpeg
+PACKAGE = dillo
+PKG_CONFIG = /usr/bin/pkg-config
+RANLIB = ranlib
+STRIP = 
+VERSION = 0.6.6
+am__include = include
+am__quote = 
+install_sh = /home/pb/dillo2/install-sh
+src = 
+noinst_LIBRARIES = libDio.a
+
+libDio_a_SOURCES = \
+	mime.c \
+	mime.h \
+	about.c \
+	Url.c \
+	Url.h \
+	proto.c	\
+	file.c \
+	http.c \
+	IO.c \
+	IO.h
+
+subdir = src/IO
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+
+libDio_a_AR = $(AR) cru
+libDio_a_LIBADD =
+am_libDio_a_OBJECTS = mime.$(OBJEXT) about.$(OBJEXT) Url.$(OBJEXT) \
+	proto.$(OBJEXT) file.$(OBJEXT) http.$(OBJEXT) IO.$(OBJEXT)
+libDio_a_OBJECTS = $(am_libDio_a_OBJECTS)
+
+DEFS = -DHAVE_CONFIG_H
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+CPPFLAGS =  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+LDFLAGS =  -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+LIBS = -lpng -lz -lpthread 
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+DEP_FILES = ./$(DEPDIR)/IO.Po ./$(DEPDIR)/Url.Po \
+	./$(DEPDIR)/about.Po ./$(DEPDIR)/file.Po \
+	./$(DEPDIR)/http.Po ./$(DEPDIR)/mime.Po \
+	./$(DEPDIR)/proto.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return -DENABLE_IPV6
+DIST_SOURCES = $(libDio_a_SOURCES)
+DIST_COMMON = Makefile.am Makefile.in
+SOURCES = $(libDio_a_SOURCES)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  src/IO/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+
+AR = ar
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libDio.a: $(libDio_a_OBJECTS) $(libDio_a_DEPENDENCIES) 
+	-rm -f libDio.a
+	$(libDio_a_AR) libDio.a $(libDio_a_OBJECTS) $(libDio_a_LIBADD)
+	$(RANLIB) libDio.a
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/IO.Po
+include ./$(DEPDIR)/Url.Po
+include ./$(DEPDIR)/about.Po
+include ./$(DEPDIR)/file.Po
+include ./$(DEPDIR)/http.Po
+include ./$(DEPDIR)/mime.Po
+include ./$(DEPDIR)/proto.Po
+
+distclean-depend:
+	-rm -rf ./$(DEPDIR)
+
+.c.o:
+	source='$<' object='$@' libtool=no \
+	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
+	$(CCDEPMODE) $(depcomp) \
+	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+	source='$<' object='$@' libtool=no \
+	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
+	$(CCDEPMODE) $(depcomp) \
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = depmode=gcc3
+uninstall-info-am:
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+	@list='$(DISTFILES)'; for file in $$list; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES distclean distclean-compile \
+	distclean-depend distclean-generic distclean-tags distdir dvi \
+	dvi-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -urN dillo-0.6.6/src/IO/Makefile.in dillo2-0.6.6/src/IO/Makefile.in
--- dillo-0.6.6/src/IO/Makefile.in	2002-05-29 15:03:02.000000000 -0600
+++ dillo2-0.6.6/src/IO/Makefile.in	2003-04-21 12:36:31.000000000 -0600
@@ -1,6 +1,8 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# @configure_input@
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,7 +12,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-
+@SET_MAKE@
 SHELL = @SHELL@
 
 srcdir = @srcdir@
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ../..
 
 ACLOCAL = @ACLOCAL@
@@ -45,257 +43,275 @@
 AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AWK = @AWK@
 CC = @CC@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_CONFIG = @GTK_CONFIG@
-GTK_LIBS = @GTK_LIBS@
+DEPDIR = @DEPDIR@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBJPEG_LIB = @LIBJPEG_LIB@
-MAKEINFO = @MAKEINFO@
 PACKAGE = @PACKAGE@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+STRIP = @STRIP@
 VERSION = @VERSION@
-datadir = @datadir@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 src = @src@
-
 noinst_LIBRARIES = libDio.a
 
-libDio_a_SOURCES =  	mime.c 	mime.h 	about.c 	Url.c 	Url.h 	proto.c		file.c 	http.c 	IO.c 	IO.h
+libDio_a_SOURCES = \
+	mime.c \
+	mime.h \
+	about.c \
+	Url.c \
+	Url.h \
+	proto.c	\
+	file.c \
+	http.c \
+	IO.c \
+	IO.h
 
+subdir = src/IO
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../../config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(noinst_LIBRARIES)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+
+libDio_a_AR = $(AR) cru
+libDio_a_LIBADD =
+am_libDio_a_OBJECTS = mime.$(OBJEXT) about.$(OBJEXT) Url.$(OBJEXT) \
+	proto.$(OBJEXT) file.$(OBJEXT) http.$(OBJEXT) IO.$(OBJEXT)
+libDio_a_OBJECTS = $(am_libDio_a_OBJECTS)
 
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+DEFS = @DEFS@
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-libDio_a_LIBADD = 
-libDio_a_OBJECTS =  mime.o about.o Url.o proto.o file.o http.o IO.o
-AR = ar
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/IO.Po ./$(DEPDIR)/Url.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/about.Po ./$(DEPDIR)/file.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/http.Po ./$(DEPDIR)/mime.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/proto.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DIST_COMMON =  Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-DEP_FILES =  .deps/IO.P .deps/Url.P .deps/about.P .deps/file.P \
-.deps/http.P .deps/mime.P .deps/proto.P
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(libDio_a_SOURCES)
+DIST_COMMON = Makefile.am Makefile.in
 SOURCES = $(libDio_a_SOURCES)
-OBJECTS = $(libDio_a_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu src/IO/Makefile
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+all: all-am
 
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  src/IO/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
 
-mostlyclean-noinstLIBRARIES:
+AR = ar
 
 clean-noinstLIBRARIES:
 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
+libDio.a: $(libDio_a_OBJECTS) $(libDio_a_DEPENDENCIES) 
+	-rm -f libDio.a
+	$(libDio_a_AR) libDio.a $(libDio_a_OBJECTS) $(libDio_a_LIBADD)
+	$(RANLIB) libDio.a
 
 mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
 
-maintainer-clean-compile:
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IO.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Url.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/about.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proto.Po@am__quote@
 
-libDio.a: $(libDio_a_OBJECTS) $(libDio_a_DEPENDENCIES)
-	-rm -f libDio.a
-	$(AR) cru libDio.a $(libDio_a_OBJECTS) $(libDio_a_LIBADD)
-	$(RANLIB) libDio.a
+distclean-depend:
+	-rm -rf ./$(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
+
+ETAGS = etags
+ETAGSFLAGS =
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
-
-maintainer-clean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = src/IO
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/IO/Makefile
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	@list='$(DISTFILES)'; for file in $$list; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
+all-am: Makefile $(LIBRARIES)
 
-install-data-am:
-install-data: install-data-am
+installdirs:
 
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 install: install-am
-uninstall-am:
+install-exec: install-exec-am
+install-data: install-data-am
 uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES)
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
 
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
 	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-depend mostlyclean-generic
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
 
-mostlyclean: mostlyclean-am
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
 
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
-		clean-generic mostlyclean-am
+distclean: distclean-am
 
-clean: clean-am
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
 
-distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-depend distclean-generic \
-		clean-am
+dvi: dvi-am
 
-distclean: distclean-am
+dvi-am:
 
-maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
-		maintainer-clean-compile maintainer-clean-tags \
-		maintainer-clean-depend maintainer-clean-generic \
-		distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile tags mostlyclean-tags distclean-tags \
-clean-tags maintainer-clean-tags distdir mostlyclean-depend \
-distclean-depend clean-depend maintainer-clean-depend info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am
 
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES distclean distclean-compile \
+	distclean-depend distclean-generic distclean-tags distdir dvi \
+	dvi-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff -urN dillo-0.6.6/src/IO/about.c dillo2-0.6.6/src/IO/about.c
--- dillo-0.6.6/src/IO/about.c	2002-05-29 15:38:08.000000000 -0600
+++ dillo2-0.6.6/src/IO/about.c	2003-04-21 12:36:31.000000000 -0600
@@ -51,11 +51,11 @@
 </td>
 
 <td BGCOLOR=\"#9090F0\">
-<h1><b>Dillo 0.6.6</b></h1>
+<h1><b>Dillo 0.6.7-pre</b></h1>
 
 <hr>
  <h1>Dillo project<br>
-     <h3>Version 0.6.6<BR> <EM>(this is alpha code)</EM> </h3></h1>
+     <h3>Version 0.6.7-pre<BR> <EM>(this is alpha code)</EM> </h3></h1>
 <h4> License: </h4>
 <p>
     This program is free software; you can redistribute it and/or modify
@@ -71,8 +71,7 @@
 <hr>
 <h4> Release overview: </h4>
 <BLOCKQUOTE>
- This is a pure bug-fix release. The main fixes were on cookies,
-the others are detailed in the ChangeLog.
+ [...]
 </BLOCKQUOTE><BLOCKQUOTE>
  Remember that dillo project uses a release model where every new
 browser shall be better than the former.
diff -urN dillo-0.6.6/src/IO/http.c dillo2-0.6.6/src/IO/http.c
--- dillo-0.6.6/src/IO/http.c	2002-05-01 07:34:56.000000000 -0600
+++ dillo2-0.6.6/src/IO/http.c	2003-04-21 12:36:33.000000000 -0600
@@ -23,6 +23,7 @@
 #include <sys/wait.h>
 #include <sys/socket.h>         /* for lots of socket stuff */
 #include <netinet/in.h>         /* for ntohl and stuff */
+#include <arpa/inet.h>		/* for inet_ntop */
 
 #include "Url.h"
 #include "IO.h"
@@ -52,7 +53,8 @@
    guint port;             /* need a separate port in order to support PROXY */
    gboolean use_proxy;     /* indicates whether to use proxy or not */
    DilloWeb *web;          /* reference to client's web structure */
-   guint32 ip_addr;        /* Holds the DNS answer */
+   GSList *addr_list;      /* Holds the DNS answer */
+   GSList *addr_list_iter; /* Points to address currently being used */
    GIOChannel *GioCh;      /* GIOChannel to monitor the connecting process */
    gint Err;               /* Holds the errno of the connect() call */
    ChainLink *Info;        /* Used for CCC asynchronous operations */
@@ -87,7 +89,7 @@
  */
 static void Http_send_query(ChainLink *Info, SocketData_t *S);
 static void Http_expect_answer(SocketData_t *S);
-
+static int Http_connect_socket(ChainLink *Info);
 
 
 /*
@@ -209,6 +211,12 @@
    Info = S->Info;
    if ( cond & G_IO_HUP ) {
       DEBUG_MSG(3, "--Connection broken\n");
+      g_io_channel_close(S->GioCh);
+      if (S->addr_list_iter->next) {
+	 S->addr_list_iter = S->addr_list_iter->next;
+	 if (Http_connect_socket(Info) == 0)
+	    return FALSE;
+      }
       BW_MSG(S->web, 0, "ERROR: unable to connect to remote host");
       a_Chain_fcb(OpAbort, 1, Info, NULL, NULL);
       Http_socket_free(SKey);
@@ -236,17 +244,53 @@
 static int Http_connect_socket(ChainLink *Info)
 {
    gint status;
+#ifdef ENABLE_IPV6
+   struct sockaddr_storage name;
+#else
    struct sockaddr_in name;
+#endif
    SocketData_t *S;
+   DilloHost *dh;
 
    S = a_Klist_get_data(ValidSocks, GPOINTER_TO_INT(Info->LocalKey));
 
+   dh = S->addr_list_iter->data;
+   
+   if ( (S->SockFD = socket(dh->af, SOCK_STREAM, IPPROTO_TCP)) < 0 ) {
+      S->Err = errno;
+      DEBUG_MSG(5, "Http_connect_socket ERROR: %s\n", g_strerror(errno));
+      return -1;
+   }
+   /* set NONBLOCKING */
+   fcntl(S->SockFD, F_SETFL, O_NONBLOCK | fcntl(S->SockFD, F_GETFL));
+
    /* Some OSes require this...  */
    memset(&name, 0, sizeof(name));
    /* Set remaining parms. */
-   name.sin_family = AF_INET;
-   name.sin_port = S->port ? htons(S->port) : htons(DILLO_URL_HTTP_PORT);
-   name.sin_addr.s_addr = htonl(S->ip_addr);
+   switch (dh->af) {
+   case AF_INET:
+      {
+	 struct sockaddr_in *sin = (struct sockaddr_in *)&name;
+	 sin->sin_family = dh->af;
+	 sin->sin_port = S->port ? htons(S->port) : htons(DILLO_URL_HTTP_PORT);
+	 memcpy(&sin->sin_addr, dh->data, dh->alen);
+	 DEBUG_MSG(5, "Connecting to %s\n", inet_ntoa(sin->sin_addr));
+	 break;
+      }
+#ifdef ENABLE_IPV6
+   case AF_INET6:
+      {
+	 char buf[128];
+	 struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&name;
+	 sin6->sin6_family = dh->af;
+	 sin6->sin6_port = S->port ? htons(S->port) : htons(DILLO_URL_HTTP_PORT);
+	 memcpy(&sin6->sin6_addr, dh->data, dh->alen);
+	 inet_ntop(dh->af, dh->data, buf, sizeof(buf));
+	 DEBUG_MSG(5, "Connecting to %s\n", buf);
+	 break;
+      }
+#endif
+   }
 
    S->GioCh = g_io_channel_unix_new(S->SockFD);
    g_io_add_watch(S->GioCh, G_IO_ERR | G_IO_HUP | G_IO_OUT,
@@ -357,13 +401,6 @@
 
    /* Set more socket parameters */
    S->Url = Url;
-   if ( (S->SockFD = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0 ) {
-      S->Err = errno;
-      DEBUG_MSG(5, "Http_get ERROR: %s\n", g_strerror(errno));
-      return -1;
-   }
-   /* set NONBLOCKING */
-   fcntl(S->SockFD, F_SETFL, O_NONBLOCK | fcntl(S->SockFD, F_GETFL));
 
    /* Let the user know what we'll do */
    BW_MSG(S->web, 1, "DNS solving %s", URL_HOST_(S->Url));
@@ -402,8 +439,10 @@
          break;
       case OpSend:
          /* Successful DNS answer; save the IP */
-         if (S)
-            S->ip_addr = *(int *)Data;
+         if (S) {
+            S->addr_list = (GSList *)Data;
+	    S->addr_list_iter = S->addr_list;
+	 }
          break;
       case OpEnd:
          if (S) {
@@ -425,7 +464,6 @@
             a_Chain_del_link(Info, CCC_BCK);
             BW_MSG(S->web, 0, "ERROR: Dns can't solve %s",
                    (S->use_proxy) ? URL_HOST_(HTTP_Proxy) : URL_HOST_(S->Url));
-            while (close(S->SockFD) == EINTR);
             Http_socket_free(SKey);
             /* send abort message to higher-level functions */
             a_Chain_fcb(OpAbort, 1, Info, NULL, NULL);
diff -urN dillo-0.6.6/src/Makefile dillo2-0.6.6/src/Makefile
--- dillo-0.6.6/src/Makefile	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/src/Makefile	2003-04-21 14:27:08.000000000 -0600
@@ -0,0 +1,591 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# src/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ..
+
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/dillo
+pkglibdir = $(libdir)/dillo
+pkgincludedir = $(includedir)/dillo
+top_builddir = ..
+
+ACLOCAL = aclocal-1.6
+AUTOCONF = autoconf
+AUTOMAKE = automake-1.6
+AUTOHEADER = autoheader
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = s,x,x,
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+
+EXEEXT = 
+OBJEXT = o
+PATH_SEPARATOR = :
+AMTAR = tar
+AWK = gawk
+CC = gcc
+DEPDIR = .deps
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LIBJPEG_LIB = -ljpeg
+PACKAGE = dillo
+PKG_CONFIG = /usr/bin/pkg-config
+RANLIB = ranlib
+STRIP = 
+VERSION = 0.6.6
+am__include = include
+am__quote = 
+install_sh = /home/pb/dillo2/install-sh
+src = 
+SUBDIRS = IO
+
+bin_PROGRAMS = dillo
+
+dillo_LDADD = IO/libDio.a -ljpeg
+
+dillo_SOURCES = \
+	acconfig.h \
+	chain.h \
+	chain.c \
+	commands.c \
+	commands.h \
+	cache.c	\
+	cache.h	\
+	debug.h \
+	dw.h \
+	dw.c \
+	dw_aligned_page.c \
+	dw_aligned_page.h \
+	dw_bullet.c \
+	dw_bullet.h \
+	dw_button.c \
+	dw_button.h \
+	dw_container.c \
+	dw_container.h \
+	dw_embed_gtk.c	\
+	dw_embed_gtk.h	\
+	dw_ext_iterator.h \
+	dw_ext_iterator.c \
+	dw_gtk_scrolled_frame.c \
+	dw_gtk_scrolled_frame.h \
+	dw_gtk_scrolled_window.c \
+	dw_gtk_scrolled_window.h \
+	dw_gtk_viewport.c \
+	dw_gtk_viewport.h \
+	dw_hruler.c \
+	dw_hruler.h \
+	dw_image.c \
+	dw_image.h \
+	dw_list_item.c \
+	dw_list_item.h \
+	dw_marshal.c \
+	dw_marshal.h \
+	dw_page.c \
+	dw_page.h \
+	dw_style.c \
+	dw_style.h \
+	dw_table.c \
+	dw_table.h \
+	dw_tooltip.c \
+	dw_tooltip.h \
+	dw_widget.c \
+	dw_widget.h \
+	findtext.c \
+	findtext.h \
+	web.c	\
+	web.h	\
+	progressbar.c \
+	progressbar.h \
+	dillo.c \
+	dillo.h \
+	bookmark.c \
+	bookmark.h \
+	browser.h \
+	dicache.c \
+	dicache.h \
+	dns.c \
+	dns.h \
+	gif.c \
+	jpeg.c \
+	png.c \
+	html.c \
+	html.h \
+	image.c \
+	image.h \
+	misc.c \
+	misc.h \
+	interface.h \
+	interface.c \
+	history.c \
+	history.h \
+	nav.c \
+	nav.h \
+	plain.c \
+	menu.c \
+	menu.h \
+	prefs.c \
+	prefs.h \
+	colors.c \
+	colors.h \
+	bitvec.c \
+	bitvec.h \
+	klist.c \
+	klist.h \
+	url.c \
+	url.h \
+	cookies.c \
+	cookies.h \
+	list.h \
+	pixmaps.h
+
+
+EXTRA_DIST = pixmaps_old.h dw_marshal.sh chg srch
+subdir = src
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = dillo$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_dillo_OBJECTS = chain.$(OBJEXT) commands.$(OBJEXT) cache.$(OBJEXT) \
+	dw.$(OBJEXT) dw_aligned_page.$(OBJEXT) dw_bullet.$(OBJEXT) \
+	dw_button.$(OBJEXT) dw_container.$(OBJEXT) \
+	dw_embed_gtk.$(OBJEXT) dw_ext_iterator.$(OBJEXT) \
+	dw_gtk_scrolled_frame.$(OBJEXT) \
+	dw_gtk_scrolled_window.$(OBJEXT) dw_gtk_viewport.$(OBJEXT) \
+	dw_hruler.$(OBJEXT) dw_image.$(OBJEXT) dw_list_item.$(OBJEXT) \
+	dw_marshal.$(OBJEXT) dw_page.$(OBJEXT) dw_style.$(OBJEXT) \
+	dw_table.$(OBJEXT) dw_tooltip.$(OBJEXT) dw_widget.$(OBJEXT) \
+	findtext.$(OBJEXT) web.$(OBJEXT) progressbar.$(OBJEXT) \
+	dillo.$(OBJEXT) bookmark.$(OBJEXT) dicache.$(OBJEXT) \
+	dns.$(OBJEXT) gif.$(OBJEXT) jpeg.$(OBJEXT) png.$(OBJEXT) \
+	html.$(OBJEXT) image.$(OBJEXT) misc.$(OBJEXT) \
+	interface.$(OBJEXT) history.$(OBJEXT) nav.$(OBJEXT) \
+	plain.$(OBJEXT) menu.$(OBJEXT) prefs.$(OBJEXT) colors.$(OBJEXT) \
+	bitvec.$(OBJEXT) klist.$(OBJEXT) url.$(OBJEXT) \
+	cookies.$(OBJEXT)
+dillo_OBJECTS = $(am_dillo_OBJECTS)
+dillo_DEPENDENCIES = IO/libDio.a
+dillo_LDFLAGS =
+
+DEFS = -DHAVE_CONFIG_H
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+CPPFLAGS =  -I/usr/local/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+LDFLAGS =  -L/usr/local/lib -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+LIBS = -lpng -lz -lpthread 
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+DEP_FILES = ./$(DEPDIR)/bitvec.Po ./$(DEPDIR)/bookmark.Po \
+	./$(DEPDIR)/cache.Po ./$(DEPDIR)/chain.Po \
+	./$(DEPDIR)/colors.Po ./$(DEPDIR)/commands.Po \
+	./$(DEPDIR)/cookies.Po ./$(DEPDIR)/dicache.Po \
+	./$(DEPDIR)/dillo.Po ./$(DEPDIR)/dns.Po \
+	./$(DEPDIR)/dw.Po ./$(DEPDIR)/dw_aligned_page.Po \
+	./$(DEPDIR)/dw_bullet.Po ./$(DEPDIR)/dw_button.Po \
+	./$(DEPDIR)/dw_container.Po \
+	./$(DEPDIR)/dw_embed_gtk.Po \
+	./$(DEPDIR)/dw_ext_iterator.Po \
+	./$(DEPDIR)/dw_gtk_scrolled_frame.Po \
+	./$(DEPDIR)/dw_gtk_scrolled_window.Po \
+	./$(DEPDIR)/dw_gtk_viewport.Po \
+	./$(DEPDIR)/dw_hruler.Po ./$(DEPDIR)/dw_image.Po \
+	./$(DEPDIR)/dw_list_item.Po \
+	./$(DEPDIR)/dw_marshal.Po ./$(DEPDIR)/dw_page.Po \
+	./$(DEPDIR)/dw_style.Po ./$(DEPDIR)/dw_table.Po \
+	./$(DEPDIR)/dw_tooltip.Po ./$(DEPDIR)/dw_widget.Po \
+	./$(DEPDIR)/findtext.Po ./$(DEPDIR)/gif.Po \
+	./$(DEPDIR)/history.Po ./$(DEPDIR)/html.Po \
+	./$(DEPDIR)/image.Po ./$(DEPDIR)/interface.Po \
+	./$(DEPDIR)/jpeg.Po ./$(DEPDIR)/klist.Po \
+	./$(DEPDIR)/menu.Po ./$(DEPDIR)/misc.Po \
+	./$(DEPDIR)/nav.Po ./$(DEPDIR)/plain.Po \
+	./$(DEPDIR)/png.Po ./$(DEPDIR)/prefs.Po \
+	./$(DEPDIR)/progressbar.Po ./$(DEPDIR)/url.Po \
+	./$(DEPDIR)/web.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = -g -O2 -D_REENTRANT -D_THREAD_SAFE -Wall -Waggregate-return -DENABLE_IPV6
+DIST_SOURCES = $(dillo_SOURCES)
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+	uninstall-info-recursive all-recursive install-data-recursive \
+	install-exec-recursive installdirs-recursive install-recursive \
+	uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
+SOURCES = $(dillo_SOURCES)
+
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  src/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f $(DESTDIR)$(bindir)/$$f; \
+	done
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+dillo$(EXEEXT): $(dillo_OBJECTS) $(dillo_DEPENDENCIES) 
+	@rm -f dillo$(EXEEXT)
+	$(LINK) $(dillo_LDFLAGS) $(dillo_OBJECTS) $(dillo_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/bitvec.Po
+include ./$(DEPDIR)/bookmark.Po
+include ./$(DEPDIR)/cache.Po
+include ./$(DEPDIR)/chain.Po
+include ./$(DEPDIR)/colors.Po
+include ./$(DEPDIR)/commands.Po
+include ./$(DEPDIR)/cookies.Po
+include ./$(DEPDIR)/dicache.Po
+include ./$(DEPDIR)/dillo.Po
+include ./$(DEPDIR)/dns.Po
+include ./$(DEPDIR)/dw.Po
+include ./$(DEPDIR)/dw_aligned_page.Po
+include ./$(DEPDIR)/dw_bullet.Po
+include ./$(DEPDIR)/dw_button.Po
+include ./$(DEPDIR)/dw_container.Po
+include ./$(DEPDIR)/dw_embed_gtk.Po
+include ./$(DEPDIR)/dw_ext_iterator.Po
+include ./$(DEPDIR)/dw_gtk_scrolled_frame.Po
+include ./$(DEPDIR)/dw_gtk_scrolled_window.Po
+include ./$(DEPDIR)/dw_gtk_viewport.Po
+include ./$(DEPDIR)/dw_hruler.Po
+include ./$(DEPDIR)/dw_image.Po
+include ./$(DEPDIR)/dw_list_item.Po
+include ./$(DEPDIR)/dw_marshal.Po
+include ./$(DEPDIR)/dw_page.Po
+include ./$(DEPDIR)/dw_style.Po
+include ./$(DEPDIR)/dw_table.Po
+include ./$(DEPDIR)/dw_tooltip.Po
+include ./$(DEPDIR)/dw_widget.Po
+include ./$(DEPDIR)/findtext.Po
+include ./$(DEPDIR)/gif.Po
+include ./$(DEPDIR)/history.Po
+include ./$(DEPDIR)/html.Po
+include ./$(DEPDIR)/image.Po
+include ./$(DEPDIR)/interface.Po
+include ./$(DEPDIR)/jpeg.Po
+include ./$(DEPDIR)/klist.Po
+include ./$(DEPDIR)/menu.Po
+include ./$(DEPDIR)/misc.Po
+include ./$(DEPDIR)/nav.Po
+include ./$(DEPDIR)/plain.Po
+include ./$(DEPDIR)/png.Po
+include ./$(DEPDIR)/prefs.Po
+include ./$(DEPDIR)/progressbar.Po
+include ./$(DEPDIR)/url.Po
+include ./$(DEPDIR)/web.Po
+
+distclean-depend:
+	-rm -rf ./$(DEPDIR)
+
+.c.o:
+	source='$<' object='$@' libtool=no \
+	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
+	$(CCDEPMODE) $(depcomp) \
+	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+	source='$<' object='$@' libtool=no \
+	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
+	$(CCDEPMODE) $(depcomp) \
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = depmode=gcc3
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@set fnord $$MAKEFLAGS; amf=$$2; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@set fnord $$MAKEFLAGS; amf=$$2; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+	@list='$(DISTFILES)'; for file in $$list; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
+	    || exit 1; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$(top_distdir)" \
+	        distdir=../$(distdir)/$$subdir \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(PROGRAMS)
+installdirs: installdirs-recursive
+installdirs-am:
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-recursive distclean \
+	distclean-compile distclean-depend distclean-generic \
+	distclean-recursive distclean-tags distdir dvi dvi-am \
+	dvi-recursive info info-am info-recursive install install-am \
+	install-binPROGRAMS install-data install-data-am \
+	install-data-recursive install-exec install-exec-am \
+	install-exec-recursive install-info install-info-am \
+	install-info-recursive install-man install-recursive \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am installdirs-recursive maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-recursive \
+	tags tags-recursive uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-info-am \
+	uninstall-info-recursive uninstall-recursive
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -urN dillo-0.6.6/src/Makefile.am dillo2-0.6.6/src/Makefile.am
--- dillo-0.6.6/src/Makefile.am	2002-05-27 15:27:14.000000000 -0600
+++ dillo2-0.6.6/src/Makefile.am	2003-04-21 12:35:28.000000000 -0600
@@ -25,12 +25,12 @@
 	dw_container.h \
 	dw_embed_gtk.c	\
 	dw_embed_gtk.h	\
+	dw_ext_iterator.h \
+	dw_ext_iterator.c \
 	dw_gtk_scrolled_frame.c \
 	dw_gtk_scrolled_frame.h \
 	dw_gtk_scrolled_window.c \
 	dw_gtk_scrolled_window.h \
-	dw_gtk_statuslabel.c \
-	dw_gtk_statuslabel.h \
 	dw_gtk_viewport.c \
 	dw_gtk_viewport.h \
 	dw_hruler.c \
@@ -99,4 +99,4 @@
 	list.h \
 	pixmaps.h
 
-EXTRA_DIST = pixmaps_old.h chg srch
+EXTRA_DIST = pixmaps_old.h dw_marshal.sh chg srch
diff -urN dillo-0.6.6/src/Makefile.in dillo2-0.6.6/src/Makefile.in
--- dillo-0.6.6/src/Makefile.in	2002-05-29 15:02:56.000000000 -0600
+++ dillo2-0.6.6/src/Makefile.in	2003-04-21 12:35:29.000000000 -0600
@@ -1,6 +1,8 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# @configure_input@
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,7 +12,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-
+@SET_MAKE@
 SHELL = @SHELL@
 
 srcdir = @srcdir@
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -45,142 +43,327 @@
 AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AWK = @AWK@
 CC = @CC@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_CONFIG = @GTK_CONFIG@
-GTK_LIBS = @GTK_LIBS@
+DEPDIR = @DEPDIR@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBJPEG_LIB = @LIBJPEG_LIB@
-MAKEINFO = @MAKEINFO@
 PACKAGE = @PACKAGE@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+STRIP = @STRIP@
 VERSION = @VERSION@
-datadir = @datadir@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 src = @src@
-
 SUBDIRS = IO
 
 bin_PROGRAMS = dillo
 
 dillo_LDADD = IO/libDio.a @LIBJPEG_LIB@
 
-dillo_SOURCES =  	acconfig.h 	chain.h 	chain.c 	commands.c 	commands.h 	cache.c		cache.h		debug.h 	dw.h 	dw.c 	dw_aligned_page.c 	dw_aligned_page.h 	dw_bullet.c 	dw_bullet.h 	dw_button.c 	dw_button.h 	dw_container.c 	dw_container.h 	dw_embed_gtk.c		dw_embed_gtk.h		dw_gtk_scrolled_frame.c 	dw_gtk_scrolled_frame.h 	dw_gtk_scrolled_window.c 	dw_gtk_scrolled_window.h 	dw_gtk_statuslabel.c 	dw_gtk_statuslabel.h 	dw_gtk_viewport.c 	dw_gtk_viewport.h 	dw_hruler.c 	dw_hruler.h 	dw_image.c 	dw_image.h 	dw_list_item.c 	dw_list_item.h 	dw_marshal.c 	dw_marshal.h 	dw_page.c 	dw_page.h 	dw_style.c 	dw_style.h 	dw_table.c 	dw_table.h 	dw_tooltip.c 	dw_tooltip.h 	dw_widget.c 	dw_widget.h 	findtext.c 	findtext.h 	web.c		web.h		progressbar.c 	progressbar.h 	dillo.c 	dillo.h 	bookmark.c 	bookmark.h 	browser.h 	dicache.c 	dicache.h 	dns.c 	dns.h 	gif.c 	jpeg.c 	png.c 	html.c 	html.h 	image.c 	image.h 	misc.c 	misc.h 	interface.h 	interface.c 	history.c 	history.h 	nav.c 	nav.h 	plain.c 	menu.c 	menu.h 	prefs.c 	prefs.h 	colors.c 	colors.h 	bitvec.c 	bitvec.h 	klist.c 	klist.h 	url.c 	url.h 	cookies.c 	cookies.h 	list.h 	pixmaps.h
+dillo_SOURCES = \
+	acconfig.h \
+	chain.h \
+	chain.c \
+	commands.c \
+	commands.h \
+	cache.c	\
+	cache.h	\
+	debug.h \
+	dw.h \
+	dw.c \
+	dw_aligned_page.c \
+	dw_aligned_page.h \
+	dw_bullet.c \
+	dw_bullet.h \
+	dw_button.c \
+	dw_button.h \
+	dw_container.c \
+	dw_container.h \
+	dw_embed_gtk.c	\
+	dw_embed_gtk.h	\
+	dw_ext_iterator.h \
+	dw_ext_iterator.c \
+	dw_gtk_scrolled_frame.c \
+	dw_gtk_scrolled_frame.h \
+	dw_gtk_scrolled_window.c \
+	dw_gtk_scrolled_window.h \
+	dw_gtk_viewport.c \
+	dw_gtk_viewport.h \
+	dw_hruler.c \
+	dw_hruler.h \
+	dw_image.c \
+	dw_image.h \
+	dw_list_item.c \
+	dw_list_item.h \
+	dw_marshal.c \
+	dw_marshal.h \
+	dw_page.c \
+	dw_page.h \
+	dw_style.c \
+	dw_style.h \
+	dw_table.c \
+	dw_table.h \
+	dw_tooltip.c \
+	dw_tooltip.h \
+	dw_widget.c \
+	dw_widget.h \
+	findtext.c \
+	findtext.h \
+	web.c	\
+	web.h	\
+	progressbar.c \
+	progressbar.h \
+	dillo.c \
+	dillo.h \
+	bookmark.c \
+	bookmark.h \
+	browser.h \
+	dicache.c \
+	dicache.h \
+	dns.c \
+	dns.h \
+	gif.c \
+	jpeg.c \
+	png.c \
+	html.c \
+	html.h \
+	image.c \
+	image.h \
+	misc.c \
+	misc.h \
+	interface.h \
+	interface.c \
+	history.c \
+	history.h \
+	nav.c \
+	nav.h \
+	plain.c \
+	menu.c \
+	menu.h \
+	prefs.c \
+	prefs.h \
+	colors.c \
+	colors.h \
+	bitvec.c \
+	bitvec.h \
+	klist.c \
+	klist.h \
+	url.c \
+	url.h \
+	cookies.c \
+	cookies.h \
+	list.h \
+	pixmaps.h
 
 
-EXTRA_DIST = pixmaps_old.h chg srch
+EXTRA_DIST = pixmaps_old.h dw_marshal.sh chg srch
+subdir = src
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-PROGRAMS =  $(bin_PROGRAMS)
-
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = dillo$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_dillo_OBJECTS = chain.$(OBJEXT) commands.$(OBJEXT) cache.$(OBJEXT) \
+	dw.$(OBJEXT) dw_aligned_page.$(OBJEXT) dw_bullet.$(OBJEXT) \
+	dw_button.$(OBJEXT) dw_container.$(OBJEXT) \
+	dw_embed_gtk.$(OBJEXT) dw_ext_iterator.$(OBJEXT) \
+	dw_gtk_scrolled_frame.$(OBJEXT) \
+	dw_gtk_scrolled_window.$(OBJEXT) dw_gtk_viewport.$(OBJEXT) \
+	dw_hruler.$(OBJEXT) dw_image.$(OBJEXT) dw_list_item.$(OBJEXT) \
+	dw_marshal.$(OBJEXT) dw_page.$(OBJEXT) dw_style.$(OBJEXT) \
+	dw_table.$(OBJEXT) dw_tooltip.$(OBJEXT) dw_widget.$(OBJEXT) \
+	findtext.$(OBJEXT) web.$(OBJEXT) progressbar.$(OBJEXT) \
+	dillo.$(OBJEXT) bookmark.$(OBJEXT) dicache.$(OBJEXT) \
+	dns.$(OBJEXT) gif.$(OBJEXT) jpeg.$(OBJEXT) png.$(OBJEXT) \
+	html.$(OBJEXT) image.$(OBJEXT) misc.$(OBJEXT) \
+	interface.$(OBJEXT) history.$(OBJEXT) nav.$(OBJEXT) \
+	plain.$(OBJEXT) menu.$(OBJEXT) prefs.$(OBJEXT) colors.$(OBJEXT) \
+	bitvec.$(OBJEXT) klist.$(OBJEXT) url.$(OBJEXT) \
+	cookies.$(OBJEXT)
+dillo_OBJECTS = $(am_dillo_OBJECTS)
+dillo_DEPENDENCIES = IO/libDio.a
+dillo_LDFLAGS =
 
-DEFS = @DEFS@ -I. -I$(srcdir) -I..
+DEFS = @DEFS@
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-dillo_OBJECTS =  chain.o commands.o cache.o dw.o dw_aligned_page.o \
-dw_bullet.o dw_button.o dw_container.o dw_embed_gtk.o \
-dw_gtk_scrolled_frame.o dw_gtk_scrolled_window.o dw_gtk_statuslabel.o \
-dw_gtk_viewport.o dw_hruler.o dw_image.o dw_list_item.o dw_marshal.o \
-dw_page.o dw_style.o dw_table.o dw_tooltip.o dw_widget.o findtext.o \
-web.o progressbar.o dillo.o bookmark.o dicache.o dns.o gif.o jpeg.o \
-png.o html.o image.o misc.o interface.o history.o nav.o plain.o menu.o \
-prefs.o colors.o bitvec.o klist.o url.o cookies.o
-dillo_DEPENDENCIES =  IO/libDio.a
-dillo_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/bitvec.Po ./$(DEPDIR)/bookmark.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/cache.Po ./$(DEPDIR)/chain.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/colors.Po ./$(DEPDIR)/commands.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/cookies.Po ./$(DEPDIR)/dicache.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dillo.Po ./$(DEPDIR)/dns.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw.Po ./$(DEPDIR)/dw_aligned_page.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_bullet.Po ./$(DEPDIR)/dw_button.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_container.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_embed_gtk.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_ext_iterator.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_gtk_scrolled_frame.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_gtk_scrolled_window.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_gtk_viewport.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_hruler.Po ./$(DEPDIR)/dw_image.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_list_item.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_marshal.Po ./$(DEPDIR)/dw_page.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_style.Po ./$(DEPDIR)/dw_table.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_tooltip.Po ./$(DEPDIR)/dw_widget.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/findtext.Po ./$(DEPDIR)/gif.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/history.Po ./$(DEPDIR)/html.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/image.Po ./$(DEPDIR)/interface.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/jpeg.Po ./$(DEPDIR)/klist.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/menu.Po ./$(DEPDIR)/misc.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/nav.Po ./$(DEPDIR)/plain.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/png.Po ./$(DEPDIR)/prefs.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/progressbar.Po ./$(DEPDIR)/url.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/web.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DIST_COMMON =  Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(dillo_SOURCES)
 
-TAR = tar
-GZIP_ENV = --best
-DEP_FILES =  .deps/bitvec.P .deps/bookmark.P .deps/cache.P .deps/chain.P \
-.deps/colors.P .deps/commands.P .deps/cookies.P .deps/dicache.P \
-.deps/dillo.P .deps/dns.P .deps/dw.P .deps/dw_aligned_page.P \
-.deps/dw_bullet.P .deps/dw_button.P .deps/dw_container.P \
-.deps/dw_embed_gtk.P .deps/dw_gtk_scrolled_frame.P \
-.deps/dw_gtk_scrolled_window.P .deps/dw_gtk_statuslabel.P \
-.deps/dw_gtk_viewport.P .deps/dw_hruler.P .deps/dw_image.P \
-.deps/dw_list_item.P .deps/dw_marshal.P .deps/dw_page.P \
-.deps/dw_style.P .deps/dw_table.P .deps/dw_tooltip.P .deps/dw_widget.P \
-.deps/findtext.P .deps/gif.P .deps/history.P .deps/html.P .deps/image.P \
-.deps/interface.P .deps/jpeg.P .deps/klist.P .deps/menu.P .deps/misc.P \
-.deps/nav.P .deps/plain.P .deps/png.P .deps/prefs.P .deps/progressbar.P \
-.deps/url.P .deps/web.P
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+	uninstall-info-recursive all-recursive install-data-recursive \
+	install-exec-recursive installdirs-recursive install-recursive \
+	uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
 SOURCES = $(dillo_SOURCES)
-OBJECTS = $(dillo_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
+all: all-recursive
 
-mostlyclean-binPROGRAMS:
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-distclean-binPROGRAMS:
-
-maintainer-clean-binPROGRAMS:
-
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  src/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(bindir)
 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-binPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f $(DESTDIR)$(bindir)/$$f; \
 	done
 
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+dillo$(EXEEXT): $(dillo_OBJECTS) $(dillo_DEPENDENCIES) 
+	@rm -f dillo$(EXEEXT)
+	$(LINK) $(dillo_LDFLAGS) $(dillo_OBJECTS) $(dillo_LDADD) $(LIBS)
 
 mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
 
-maintainer-clean-compile:
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitvec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bookmark.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cache.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colors.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commands.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cookies.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dicache.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dillo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dns.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_aligned_page.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_bullet.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_button.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_container.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_embed_gtk.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_ext_iterator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_gtk_scrolled_frame.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_gtk_scrolled_window.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_gtk_viewport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_hruler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_image.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_list_item.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_marshal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_page.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_style.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_table.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_tooltip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dw_widget.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findtext.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/history.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/html.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/image.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interface.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jpeg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/klist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nav.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/png.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progressbar.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/url.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web.Po@am__quote@
 
-dillo: $(dillo_OBJECTS) $(dillo_DEPENDENCIES)
-	@rm -f dillo
-	$(LINK) $(dillo_LDFLAGS) $(dillo_OBJECTS) $(dillo_LDADD) $(LIBS)
+distclean-depend:
+	-rm -rf ./$(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -188,13 +371,8 @@
 # (1) if the variable is set in `config.status', edit `config.status'
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive  \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
-	@set fnord $(MAKEFLAGS); amf=$$2; \
+$(RECURSIVE_TARGETS):
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -214,13 +392,18 @@
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-	@set fnord $(MAKEFLAGS); amf=$$2; \
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
-	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
-	  rev="$$subdir $$rev"; \
-	  test "$$subdir" = "." && dot_seen=yes; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
 	done; \
-	test "$$dot_seen" = "no" && rev=". $$rev"; \
+	rev="$$rev ."; \
 	target=`echo $@ | sed s/-recursive//`; \
 	for subdir in $$rev; do \
 	  echo "Making $$target in $$subdir"; \
@@ -237,181 +420,171 @@
 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 
+ETAGS = etags
+ETAGSFLAGS =
+
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique
 
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-   if test "$$subdir" = .; then :; else \
+	  if test "$$subdir" = .; then :; else \
 	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
-   fi; \
+	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = src
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	@list='$(DISTFILES)'; for file in $$list; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-	for subdir in $(SUBDIRS); do \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d $(distdir)/$$subdir \
 	    || mkdir $(distdir)/$$subdir \
 	    || exit 1; \
-	    chmod 777 $(distdir)/$$subdir; \
-	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$(top_distdir)" \
+	        distdir=../$(distdir)/$$subdir \
+	        distdir) \
 	      || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
 check-am: all-am
 check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-install-exec-am: install-binPROGRAMS
-install-exec: install-exec-recursive
+all-am: Makefile $(PROGRAMS)
+installdirs: installdirs-recursive
+installdirs-am:
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
 
-install-data-am:
+install: install-recursive
+install-exec: install-exec-recursive
 install-data: install-data-recursive
+uninstall: uninstall-recursive
 
 install-am: all-am
 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am: uninstall-binPROGRAMS
-uninstall: uninstall-recursive
-all-am: Makefile $(PROGRAMS)
-all-redirect: all-recursive
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs: installdirs-recursive
-installdirs-am:
-	$(mkinstalldirs)  $(DESTDIR)$(bindir)
-
 
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
 	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-binPROGRAMS mostlyclean-compile \
-		mostlyclean-tags mostlyclean-depend mostlyclean-generic
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
 
-mostlyclean: mostlyclean-recursive
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
 
-clean-am:  clean-binPROGRAMS clean-compile clean-tags clean-depend \
-		clean-generic mostlyclean-am
+distclean: distclean-recursive
 
-clean: clean-recursive
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
 
-distclean-am:  distclean-binPROGRAMS distclean-compile distclean-tags \
-		distclean-depend distclean-generic clean-am
+dvi: dvi-recursive
 
-distclean: distclean-recursive
+dvi-am:
 
-maintainer-clean-am:  maintainer-clean-binPROGRAMS \
-		maintainer-clean-compile maintainer-clean-tags \
-		maintainer-clean-depend maintainer-clean-generic \
-		distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
 
-.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
-maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile install-data-recursive \
-uninstall-data-recursive install-exec-recursive \
-uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
-all-recursive check-recursive installcheck-recursive info-recursive \
-dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir \
-mostlyclean-depend distclean-depend clean-depend \
-maintainer-clean-depend info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs-am installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
 
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-recursive distclean \
+	distclean-compile distclean-depend distclean-generic \
+	distclean-recursive distclean-tags distdir dvi dvi-am \
+	dvi-recursive info info-am info-recursive install install-am \
+	install-binPROGRAMS install-data install-data-am \
+	install-data-recursive install-exec install-exec-am \
+	install-exec-recursive install-info install-info-am \
+	install-info-recursive install-man install-recursive \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am installdirs-recursive maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-recursive \
+	tags tags-recursive uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-info-am \
+	uninstall-info-recursive uninstall-recursive
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff -urN dillo-0.6.6/src/bookmark.c dillo2-0.6.6/src/bookmark.c
--- dillo-0.6.6/src/bookmark.c	2002-04-09 19:04:54.000000000 -0600
+++ dillo2-0.6.6/src/bookmark.c	2003-04-21 12:35:30.000000000 -0600
@@ -93,13 +93,14 @@
 /*
  * ?
  */
-static void Bookmarks_goto_bookmark(GtkWidget *widget, CallbackInfo *CbInfo)
+static gboolean Bookmarks_goto_bookmark(GtkWidget *widget, CallbackInfo *CbInfo)
 {
    if (CbInfo->index >= num_bookmarks) {
       g_warning("bookmark not found!\n");
-      return;
+      return FALSE;
    }
    a_Nav_push(CbInfo->bw, bookmarks[CbInfo->index].url);
+   return TRUE;
 }
 
 /*
@@ -117,8 +118,8 @@
    CbInfo->index = index;
 
    /* accelerator goes here */
-   gtk_signal_connect(GTK_OBJECT (menuitem), "activate",
-                      (GtkSignalFunc)Bookmarks_goto_bookmark, CbInfo);
+   g_signal_connect(G_OBJECT (menuitem), "activate",
+                    G_CALLBACK(Bookmarks_goto_bookmark), CbInfo);
 }
 
 /*
@@ -260,11 +261,12 @@
  */
 static void Bookmarks_load_to_menu(FILE *fp)
 {
-   gchar *title, *url_str;
+   gchar *title, *utf8_title, *url_str;
    DilloUrl *url;
    char buf[4096];
    gint i = 0;
    GtkWidget *menuitem;
+   GError *err = NULL;
 
    rewind(fp);
 
@@ -284,13 +286,19 @@
          continue;
       }
 
+      /* Temporary solution, in future bookmarks.html should be UTF8 */
+      utf8_title = g_convert(title, -1, "utf8", "iso8859-1", NULL, NULL, &err);
+      if (err != NULL) g_warning ("Bookmarks_load_to_menu(): %s\n",
+                                  err->message);
+      g_free(title);
+
       url = a_Url_new(url_str, NULL, 0, 0);
-      menuitem = Bookmarks_insert(title, url);
+      menuitem = Bookmarks_insert(utf8_title, url);
       /* for (i = 0; i < num_bw; i++)
        *    Bookmarks_add_to_menu(browser_window[i], menuitem); */
       Bookmarks_add_to_menu(browser_window[0], menuitem, i);
       g_free(url_str);
-      g_free(title);
+      g_free(utf8_title);
       a_Url_free(url);
       i++;
    }
diff -urN dillo-0.6.6/src/browser.h dillo2-0.6.6/src/browser.h
--- dillo-0.6.6/src/browser.h	2002-03-26 16:26:06.000000000 -0700
+++ dillo2-0.6.6/src/browser.h	2003-04-21 12:35:30.000000000 -0600
@@ -117,7 +117,7 @@
    gboolean nav_expecting;
 
    /* The tag for the idle function that sets button sensitivity. */
-   gint sens_idle_tag;
+   guint sens_idle_tag;
 };
 
 
diff -urN dillo-0.6.6/src/cache.c dillo2-0.6.6/src/cache.c
--- dillo-0.6.6/src/cache.c	2002-04-09 19:23:56.000000000 -0600
+++ dillo2-0.6.6/src/cache.c	2003-04-21 12:35:32.000000000 -0600
@@ -44,6 +44,7 @@
 typedef struct {
    const DilloUrl *Url;      /* Cached Url. Url is used as a primary Key */
    const char *Type;         /* MIME type string */
+   char *Encoding;
    GString *Header;          /* HTTP header */
    const DilloUrl *Location; /* New URI for redirects */
    void *Data;               /* Pointer to raw data */
@@ -135,6 +136,7 @@
    NewClient->Key = ClientKey;
    NewClient->Url = Url;
    NewClient->Buf = NULL;
+   NewClient->Encoding = NULL;
    NewClient->Callback = Callback;
    NewClient->CbData = CbData;
    NewClient->Web    = Web;
@@ -184,6 +186,7 @@
    if ( Client ) {
       ClientQueue = g_slist_remove(ClientQueue, Client);
       a_Web_free(Client->Web);
+      g_free(Client->Encoding);
       g_free(Client);
    }
 }
@@ -198,6 +201,7 @@
 {
    NewEntry->Url = a_Url_dup(Url);
    NewEntry->Type = NULL;
+   NewEntry->Encoding = NULL;
    NewEntry->Header = g_string_new("");
    NewEntry->Location = NULL;
    NewEntry->Data = NULL;
@@ -239,6 +243,7 @@
 {
    a_Url_free((DilloUrl *)entry->Url);
    g_free((gchar *)entry->Type);
+   g_free(entry->Encoding);
    g_string_free(entry->Header, TRUE);
    a_Url_free((DilloUrl *)entry->Location);
    g_free(entry->Data);
@@ -651,6 +656,17 @@
    if ( (Type = Cache_parse_field(header, "Content-Type")) == NULL ) {
      DEBUG_HTTP_MSG("Server didn't send Content-Type in header.\n");
      Type = Cache_get_type_from_data(entry->Data, entry->ValidSize);
+   } else {
+      char *enc;
+      guint i;
+
+      /* Look for a specified encoding */
+      if ((enc = strstr(Type, "charset="))) {
+         for (i = 8; enc[i] != '\0' && enc[i] != ';'; i++)
+            ;
+
+         entry->Encoding = g_strndup(enc + 8, i - 8);
+      }
    }
    entry->Type = Type;
 }
@@ -842,6 +858,10 @@
          EntryHasClients = TRUE;
          ClientWeb = Client->Web; /* It was a (void*) */
 
+         /* Pass on the encoding */
+         if (entry->Encoding && !Client->Encoding)
+            Client->Encoding = g_strdup(entry->Encoding);
+
          /* For root URLs, clear the "expecting for reply..." message */
          if (ClientWeb->flags & WEB_RootUrl && !(entry->Flags & CA_MsgErased)){
             a_Interface_msg(ClientWeb->bw, "");
diff -urN dillo-0.6.6/src/cache.h dillo2-0.6.6/src/cache.h
--- dillo-0.6.6/src/cache.h	2002-02-20 08:54:02.000000000 -0700
+++ dillo2-0.6.6/src/cache.h	2003-04-21 12:35:33.000000000 -0600
@@ -39,6 +39,7 @@
    gint Key;                /* Primary Key for this client */
    const DilloUrl *Url;     /* Pointer to a cache entry Url */
    guchar *Buf;             /* Pointer to cache-data */
+   char *Encoding;          /* A charset encoding obtained from the header */
    guint BufSize;           /* Valid size of cache-data */
    CA_Callback_t Callback;  /* Client function */
    void *CbData;            /* Client function data */
diff -urN dillo-0.6.6/src/commands.c dillo2-0.6.6/src/commands.c
--- dillo-0.6.6/src/commands.c	2002-04-09 19:04:54.000000000 -0600
+++ dillo2-0.6.6/src/commands.c	2003-04-21 12:35:34.000000000 -0600
@@ -97,9 +97,11 @@
 void a_Commands_viewsource_callback (GtkWidget *widget, gpointer client_data)
 {
    BrowserWindow *bw = (BrowserWindow *)client_data;
-   char *buf;
-   gint size, xsize, ysize;
+   gchar *buf, *utf8_buf;
+   gint size, xsize, ysize, written;
    GtkWidget *window, *box1, *button, *scrolled_window, *text;
+   GtkTextBuffer *buffer;
+   GError *err = NULL;
 
    if (bw->viewsource_window)
       gtk_widget_destroy (bw->viewsource_window);
@@ -114,10 +116,6 @@
       gtk_widget_set_usize (window, xsize, ysize);
       gtk_window_set_policy (GTK_WINDOW(window), TRUE, TRUE, FALSE);
 
-      gtk_signal_connect (GTK_OBJECT (window), "destroy",
-                          GTK_SIGNAL_FUNC(gtk_widget_destroyed),
-                          &bw->viewsource_window);
-
       gtk_window_set_title (GTK_WINDOW (window), "View Source");
       gtk_container_border_width (GTK_CONTAINER (window), 0);
 
@@ -132,20 +130,24 @@
                                       GTK_POLICY_ALWAYS);
       gtk_widget_show (scrolled_window);
 
-      text = gtk_text_new (NULL, NULL);
-      gtk_text_set_editable (GTK_TEXT (text), FALSE);
+      text = gtk_text_view_new ();
+      gtk_text_view_set_editable (GTK_TEXT_VIEW(text), FALSE);
+      gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(text), GTK_WRAP_CHAR);
       gtk_container_add (GTK_CONTAINER (scrolled_window), text);
       gtk_widget_show (text);
 
-      gtk_text_freeze (GTK_TEXT (text));
+      buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
       buf = a_Cache_url_read(a_History_get_url(NAV_TOP(bw)), &size);
-      gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL, buf, size);
-      gtk_text_thaw (GTK_TEXT (text));
+      utf8_buf = g_convert(buf, size, "utf8", "iso8859-1", NULL, &written,&err);
+      if (err != NULL) g_warning ("a_Commands_viewsource_callback(): %s\n",
+                                  err->message);
+      gtk_text_buffer_set_text(buffer, utf8_buf, written);
+      g_free (utf8_buf);
 
       button = gtk_button_new_with_label ("close");
-      gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
-                                 GTK_SIGNAL_FUNC(gtk_widget_destroy),
-                                 GTK_OBJECT (window));
+      g_signal_connect_object (G_OBJECT (button), "clicked",
+                               G_CALLBACK(gtk_widget_destroy),
+                               G_OBJECT(window), G_CONNECT_SWAPPED);
       gtk_box_pack_start (GTK_BOX (box1), button, FALSE, FALSE, 0);
       GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
       gtk_widget_grab_default (button);
@@ -211,7 +213,7 @@
 /*
  * Second handler for button-press-event in the toolbar
  */
-void a_Commands_navpress_callback(GtkWidget *widget,
+gboolean a_Commands_navpress_callback(GtkWidget *widget,
                                   GdkEventButton *event,
                                   gpointer client_data)
 {
@@ -231,22 +233,24 @@
          bw->menu_popup.over_back = a_Menu_popup_history_new(bw, -1);
          gtk_menu_popup(GTK_MENU (bw->menu_popup.over_back), NULL, NULL,
                         NULL, NULL, event->button, event->time);
-
+         return TRUE;
       } else if (widget == bw->forw_button) {
          if (bw->menu_popup.over_forw)
             gtk_widget_destroy(bw->menu_popup.over_forw);
          bw->menu_popup.over_forw = a_Menu_popup_history_new(bw, +1);
          gtk_menu_popup(GTK_MENU (bw->menu_popup.over_forw), NULL, NULL,
                         NULL, NULL, event->button, event->time);
+         return TRUE;
       }
       break;
    }
+   return FALSE;
 }
 
 /*
  * Second handler for button-press-event in history menus.
  */
-void a_Commands_historypress_callback(GtkWidget *widget,
+gboolean a_Commands_historypress_callback(GtkWidget *widget,
                                       GdkEventButton *event,
                                       gpointer client_data)
 {
@@ -256,15 +260,19 @@
    case 1:
       /* Open link in the same bw */
       a_Nav_jump_callback(widget, bw, 0);
+      return TRUE;
       break;
    case 2:
       /* Open link in a new bw */
       a_Nav_jump_callback(widget, bw, 1);
+      return TRUE;
       break;
    case 3:
       /* Not used */
       break;
    }
+
+   return FALSE;
 }
 
 /*
diff -urN dillo-0.6.6/src/commands.h dillo2-0.6.6/src/commands.h
--- dillo-0.6.6/src/commands.h	2002-04-09 19:24:40.000000000 -0600
+++ dillo2-0.6.6/src/commands.h	2003-04-21 12:35:34.000000000 -0600
@@ -13,9 +13,9 @@
 void a_Commands_findtext_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_print_callback (GtkWidget *widget, gpointer client_data);
 
-void a_Commands_navpress_callback (
+gboolean a_Commands_navpress_callback (
         GtkWidget *widget, GdkEventButton *event, gpointer client_data);
-void a_Commands_historypress_callback(
+gboolean a_Commands_historypress_callback(
         GtkWidget *widget, GdkEventButton *event, gpointer client_data);
 
 void a_Commands_back_callback (GtkWidget *widget, gpointer client_data);
diff -urN dillo-0.6.6/src/cookies.c dillo2-0.6.6/src/cookies.c
--- dillo-0.6.6/src/cookies.c	2002-05-27 14:47:49.000000000 -0600
+++ dillo2-0.6.6/src/cookies.c	2003-04-21 12:35:37.000000000 -0600
@@ -78,14 +78,13 @@
 static FILE *Cookies_fopen(const char *file, gchar *init_str);
 static CookieControlAction Cookies_control_check(const DilloUrl *url);
 static CookieControlAction Cookies_control_check_domain(const char *domain);
-static void Cookie_control_init();
+static int Cookie_control_init();
 static void Cookies_parse_ports(CookieData_t *cookie, const char *port_str);
 static char *Cookies_build_ports_str(CookieData_t *cookie);
 
 /*
  * Return a file pointer. If the file doesn't exist, try to create it,
  * with the optional 'init_str' as its content.
- * This function is either successful or exits Dillo.
  */
 static FILE *Cookies_fopen(const char *filename, gchar *init_str)
 {
@@ -124,6 +123,10 @@
    }
 }
 
+/*
+ * Initialize the cookies module
+ * (The 'disabled' variable is writable only within a_Cookies_init)
+ */
 void a_Cookies_init()
 {
    CookieData_t *cookie;
@@ -131,7 +134,14 @@
    char *filename;
    char line[LINE_MAXLEN];
 
-   Cookie_control_init();
+   /* Default setting */
+   disabled = TRUE;
+
+   /* Read and parse the cookie control file (cookiesrc) */
+   if (Cookie_control_init() != 0) {
+      DEBUG_MSG(10, "Disabling cookies.\n");
+      return;
+   }
 
    /* Get a stream for the cookies file */
    filename = a_Misc_prepend_user_home(".dillo/cookies");
@@ -139,8 +149,7 @@
    g_free(filename);
 
    if (!file_stream) {
-      /* Can't open the file, so we disable cookies */
-      disabled = TRUE;
+      DEBUG_MSG(10, "ERROR: Can't open ~/.dillo/cookies, disabling cookies\n");
       return;
    }
 
@@ -153,6 +162,8 @@
       return;
    }
 
+   DEBUG_MSG(10, "Enabling cookies as from cookiesrc...\n");
+
    cookies = g_hash_table_new(g_str_hash, g_str_equal);
 
    /* Get all lines in the file */
@@ -976,9 +987,13 @@
 
 
 /*
- * Get the cookie control rules
+ * Get the cookie control rules (from cookiesrc).
+ * Return value:
+ *   0 = Parsed OK, with cookies enabled
+ *   1 = Parsed OK, with cookies disabled
+ *   2 = Can't open the control file
  */
-static void Cookie_control_init()
+static int Cookie_control_init()
 {
    CookieControl cc;
    FILE *stream;
@@ -987,6 +1002,7 @@
    char domain[LINE_MAXLEN];
    char rule[LINE_MAXLEN];
    int i, j;
+   gboolean enabled = FALSE;
 
    /* Get a file pointer */
    filename = a_Misc_prepend_user_home(".dillo/cookiesrc");
@@ -994,7 +1010,7 @@
    g_free(filename);
 
    if (!stream)
-      return;
+      return 2;
 
    /* Get all lines in the file */
    while (!feof(stream)) {
@@ -1045,10 +1061,15 @@
             a_List_add(ccontrol, num_ccontrol, num_ccontrol_max);
             ccontrol[num_ccontrol++] = cc;
          }
+
+         if (cc.action != COOKIE_DENY)
+            enabled = TRUE;
       }
    }
 
    fclose(stream);
+
+   return (enabled ? 0 : 1);
 }
 
 /*
diff -urN dillo-0.6.6/src/dillo.c dillo2-0.6.6/src/dillo.c
--- dillo-0.6.6/src/dillo.c	2002-03-18 08:02:50.000000000 -0700
+++ dillo2-0.6.6/src/dillo.c	2003-04-21 12:35:38.000000000 -0600
@@ -33,7 +33,6 @@
 
 #include "dillo.h"
 #include "misc.h"
-#include "dw_gtk_statuslabel.h"
 #include "nav.h"
 #include "history.h"
 #include "bookmark.h"
@@ -68,7 +67,6 @@
     * todo: implement a cleaner mechanism (in file.c) */
    signal(SIGPIPE, SIG_IGN);
 
-   g_print("Setting locale to %s\n", gtk_set_locale());
    gtk_init(&argc, &argv);
    gdk_rgb_init();
 
diff -urN dillo-0.6.6/src/dns.c dillo2-0.6.6/src/dns.c
--- dillo-0.6.6/src/dns.c	2002-02-14 12:17:08.000000000 -0700
+++ dillo2-0.6.6/src/dns.c	2003-04-21 12:35:39.000000000 -0600
@@ -57,7 +57,7 @@
    gint channel;         /* Index of this channel [0 based] */
    gboolean in_use;      /* boolean to tell if server is doing a lookup */
    gboolean ip_ready;    /* boolean: is IP lookup done? */
-   guint32 ip_addr;      /* IP address */
+   GSList *addr_list;    /* IP address */
    char *hostname;       /* Adress to resolve */
    guint timeout_id;     /* gtk timeout function ID */
 #ifdef G_DNS_THREADED
@@ -67,7 +67,7 @@
 
 typedef struct {
    char *hostname;          /* host name for cache */
-   guint32 ip_addr;         /* address of host */
+   GSList *addr_list;       /* address of host */
 } GDnsCache;
 
 typedef struct {
@@ -93,6 +93,7 @@
 static gint dns_queue_size, dns_queue_size_max;
 /* A list for hostnames that haven't been solved */
 static GSList *PendingHosts = NULL;
+static gboolean ipv6_enabled;
 
 
 /* ----------------------------------------------------------------------
@@ -171,11 +172,11 @@
 /*
  *  Add an IP/hostname pair to Dns-cache
  */
-static void Dns_cache_add(char *hostname, guint32 ip_addr)
+static void Dns_cache_add(char *hostname, GSList *addr_list)
 {
    a_List_add(dns_cache, dns_cache_size, dns_cache_size_max);
    dns_cache[dns_cache_size].hostname = g_strdup(hostname);
-   dns_cache[dns_cache_size].ip_addr = ip_addr;
+   dns_cache[dns_cache_size].addr_list = addr_list;
    ++dns_cache_size;
    DEBUG_MSG(1, "Cache objects: %d\n", dns_cache_size);
 }
@@ -204,13 +205,45 @@
       dns_server[i].channel = i;
       dns_server[i].in_use = FALSE;
       dns_server[i].ip_ready = FALSE;
-      dns_server[i].ip_addr = 0;
+      dns_server[i].addr_list = NULL;
       dns_server[i].hostname = NULL;
       dns_server[i].timeout_id = -1;
 #ifdef G_DNS_THREADED
       dns_server[i].th1 = (pthread_t) -1;
 #endif
    }
+
+#ifdef ENABLE_IPV6
+   {
+      /* If the IPv6 address family is not available there is no point
+	 wasting time trying to connect to v6 addresses. */
+      int fd = socket(AF_INET6, SOCK_STREAM, 0);
+      if (fd >= 0) {
+	 close(fd);
+	 ipv6_enabled = TRUE;
+      }
+   }
+#endif
+}
+
+/*
+ * Allocate a host structure and add it to the list
+ */
+static GSList *note_hosts(GSList *list, int af, struct hostent *host)
+{
+   int i;
+   if (host->h_length > DILLO_ADDR_MAX)
+      return list;
+   for (i = 0; host->h_addr_list[i]; i++) {
+      DilloHost *dh = g_malloc(sizeof(DilloHost));
+      memset(dh, 0, sizeof(dh));
+      dh->af = af;
+      dh->alen = host->h_length;
+      memcpy(&dh->data[0], host->h_addr_list[i], host->h_length);
+      printf("adding address, length %d\n", host->h_length);
+      list = g_slist_append(list, dh);
+   }
+   return list;
 }
 
 /*
@@ -219,13 +252,13 @@
 static void *Dns_server(void *data)
 {
    struct hostent *host;
-   guint32 ip_addr;
    gint channel = GPOINTER_TO_INT(data);
 #ifdef LIBC5
    gint h_err;
    char buff[1024];
    struct hostent sh;
 #endif
+   GSList *hosts = NULL;
 
 #ifdef G_DNS_THREADED
    /* Set this thread to detached state */
@@ -235,6 +268,14 @@
    DEBUG_MSG(3, "Dns_server: starting...\n ch: %d host: %s\n",
              channel, dns_server[channel].hostname);
 
+#ifdef ENABLE_IPV6
+   if (ipv6_enabled) {
+      host = gethostbyname2(dns_server[channel].hostname, AF_INET6);
+      if (host)
+	 hosts = note_hosts(hosts, AF_INET6, host);
+   }
+#endif
+
 #ifdef LIBC5
    host = gethostbyname_r(dns_server[channel].hostname, &sh, buff,
                           sizeof(buff), &h_err);
@@ -242,17 +283,13 @@
    host = gethostbyname(dns_server[channel].hostname);
 #endif
 
-   if (host == NULL) {
-      ip_addr = 0;
-   } else {
-      memcpy(&ip_addr, host->h_addr_list[0], sizeof(ip_addr));
-      ip_addr = ntohl(ip_addr);
-   }
+   if (host)
+      hosts = note_hosts(hosts, AF_INET, host);
 
    /* write hostname to client */
-   DEBUG_MSG(5, "Dns_server [%d]: %s is %x\n", channel,
-             dns_server[channel].hostname, ip_addr);
-   dns_server[channel].ip_addr = ip_addr;
+   DEBUG_MSG(5, "Dns_server [%d]: %s is %p\n", channel,
+             dns_server[channel].hostname, hosts);
+   dns_server[channel].addr_list = hosts;
    dns_server[channel].ip_ready = TRUE;
 
    return NULL;                 /* (avoids a compiler warning) */
@@ -267,8 +304,8 @@
 static void Dns_blocking_server(void)
 {
    struct hostent *host;
-   guint32 ip_addr;
    gint index;
+   GSList *hosts = NULL;
 
    index = 0;
    DEBUG_MSG(3, "Dns_blocking_server: starting...\n");
@@ -278,17 +315,15 @@
    host = gethostbyname(dns_server[index].hostname);
    if (host == NULL) {
       DEBUG_MSG(3, "--> Dns_blocking_server: gethostbyname NULL return\n");
-      ip_addr = 0;
    } else {
       DEBUG_MSG(3, "--> Dns_blocking_server - good return\n");
-      memcpy(&ip_addr, host->h_addr_list[0], sizeof(ip_addr));
-      ip_addr = ntohl(ip_addr);
+      hosts = note_hosts(hosts, AF_INET, host);
    }
 
    /* write IP to server data channel */
-   DEBUG_MSG(3, "Dns_blocking_server: IP of %s is %x\n",
-             dns_server[index].hostname, ip_addr);
-   dns_server[index].ip_addr = ip_addr;
+   DEBUG_MSG(3, "Dns_blocking_server: IP of %s is %p\n",
+             dns_server[index].hostname, hosts);
+   dns_server[index].ip_addr = hosts;
    dns_server[index].ip_ready = TRUE;
 
    DEBUG_MSG(3, "Dns_blocking_server: leaving...\n");
@@ -337,7 +372,7 @@
 
    /* if it hits already resolved, call the Callback inmediately. */
    if (i < dns_cache_size) {
-      a_Dns_ccc(OpSend, 1, Info, &dns_cache[i].ip_addr, NULL);
+      a_Dns_ccc(OpSend, 1, Info, dns_cache[i].addr_list, NULL);
       a_Dns_ccc(OpEnd, 1, Info, NULL, NULL);
       return;
    }
@@ -374,10 +409,10 @@
    for (i = 0; i < dns_queue_size; i++) {
       if (dns_queue[i].channel == channel) {
          Info = dns_queue[i].Info;
-         if ( srv->ip_addr == 0 ) {
+         if ( srv->addr_list == NULL ) {
             a_Dns_ccc(OpAbort, 1, Info, NULL, NULL);
          } else {
-            a_Dns_ccc(OpSend, 1, Info, &srv->ip_addr, NULL);
+            a_Dns_ccc(OpSend, 1, Info, srv->addr_list, NULL);
             a_Dns_ccc(OpEnd, 1, Info, NULL, NULL);
          }
          Dns_queue_remove(i);
@@ -426,9 +461,9 @@
    DnsServer *srv = &dns_server[channel];
 
    if ( srv->ip_ready ){
-      if (srv->ip_addr != 0) {
+      if (srv->addr_list != NULL) {
          /* DNS succeeded, let's cache it */
-         Dns_cache_add(srv->hostname, srv->ip_addr);
+         Dns_cache_add(srv->hostname, srv->addr_list);
       }
       Dns_serve_channel(channel);
       Dns_assign_channels();
diff -urN dillo-0.6.6/src/dns.h dillo2-0.6.6/src/dns.h
--- dillo-0.6.6/src/dns.h	2002-01-08 06:49:14.000000000 -0700
+++ dillo2-0.6.6/src/dns.h	2003-04-21 12:35:39.000000000 -0600
@@ -12,6 +12,15 @@
 void a_Dns_freeall(void);
 void a_Dns_ccc(int Op, int Br, ChainLink *Info, void *Data, void *ExtraData);
 
+#define DILLO_ADDR_MAX 16
+
+typedef struct _DilloHost
+{
+  int af;
+  int alen;
+  char data[DILLO_ADDR_MAX];
+} DilloHost;
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff -urN dillo-0.6.6/src/dw_aligned_page.c dillo2-0.6.6/src/dw_aligned_page.c
--- dillo-0.6.6/src/dw_aligned_page.c	2002-03-18 08:02:50.000000000 -0700
+++ dillo2-0.6.6/src/dw_aligned_page.c	2003-04-21 12:35:40.000000000 -0600
@@ -44,25 +44,27 @@
 /*
  * Standard Gtk+ function.
  */
-GtkType a_Dw_aligned_page_get_type (void)
+GType a_Dw_aligned_page_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwAlignedPage",
-         sizeof (DwAlignedPage),
+      GTypeInfo info = {
          sizeof (DwAlignedPageClass),
-         (GtkClassInitFunc) Dw_aligned_page_class_init,
-         (GtkObjectInitFunc) Dw_aligned_page_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_aligned_page_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwAlignedPage),
+         0,
+         (GInstanceInitFunc) Dw_aligned_page_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_PAGE, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_PAGE, "DwAlignedPage",
+                                    &info, flags);
    }
-
    return type;
 }
 
@@ -96,7 +98,7 @@
    DwAlignedPage *aligned_page = DW_ALIGNED_PAGE (object);
 
    if (aligned_page->list) {
-      if (aligned_page->list->num == 1) {
+      if (aligned_page->list->refcount == 1) {
          /* This is the last page in the array, so the list is removed. */
          g_free (aligned_page->list->pages);
          g_free (aligned_page->list->values);
@@ -106,10 +108,11 @@
             NULL and 0. */
          aligned_page->list->pages[aligned_page->list_pos] = NULL;
          aligned_page->list->values[aligned_page->list_pos] = 0;
+         aligned_page->list->refcount--;
       }
    }
 
-   (* GTK_OBJECT_CLASS(parent_class)->destroy) (object);
+   GTK_OBJECT_CLASS(parent_class)->destroy (object);
 }
 
 
@@ -124,8 +127,9 @@
    DwAlignedPageList *list;
 
    if (ref_page == NULL) {
-      list = g_new(DwAlignedPageList, 1);
+      list = g_new (DwAlignedPageList, 1);
       list->num = 0;
+      list->refcount = 0;
       list->pages = NULL;
       list->values = NULL;
       list->num_pages_max = 4;
@@ -135,9 +139,10 @@
       list = ref_page->list;
 
    list->num++;
-   a_List_add(list->pages, list->num, list->num_pages_max);
+   list->refcount++;
+   a_List_add (list->pages, list->num, list->num_pages_max);
    list->pages[list->num - 1] = aligned_page;
-   a_List_add(list->values, list->num, list->num_values_max);
+   a_List_add (list->values, list->num, list->num_values_max);
    list->values[list->num - 1] = 0;
    aligned_page->list = list;
    aligned_page->list_pos = list->num - 1;
@@ -155,7 +160,7 @@
    int i;
 
    if (aligned_page->list) {
-      klass = DW_ALIGNED_PAGE_CLASS (GTK_OBJECT(aligned_page)->klass);
+      klass = DW_ALIGNED_PAGE_CLASS(G_OBJECT_GET_CLASS(G_OBJECT(aligned_page)));
       aligned_page->list->values[aligned_page->list_pos] =
          klass->get_value (aligned_page);
 
@@ -165,16 +170,17 @@
          aligned_page->list->max_value =
             aligned_page->list->values[aligned_page->list_pos];
 
-         for(i = 0; i < aligned_page->list->num; i++)
+         for (i = 0; i < aligned_page->list->num; i++)
             if (aligned_page->list->pages[i]) {
-               klass = DW_ALIGNED_PAGE_CLASS
-                  (GTK_OBJECT(aligned_page->list->pages[i])->klass);
+               klass = DW_ALIGNED_PAGE_CLASS(G_OBJECT_GET_CLASS(
+                       G_OBJECT(aligned_page->list->pages[i])));
                klass->set_max_value (aligned_page->list->pages[i],
                                      aligned_page->list->max_value);
             }
       } else {
          /* No change, apply old max_value only to this page. */
-         klass = DW_ALIGNED_PAGE_CLASS (GTK_OBJECT(aligned_page)->klass);
+         klass = DW_ALIGNED_PAGE_CLASS(G_OBJECT_GET_CLASS(
+                 G_OBJECT(aligned_page)));
          klass->set_max_value (aligned_page, aligned_page->list->max_value);
       }
    }
diff -urN dillo-0.6.6/src/dw_aligned_page.h dillo2-0.6.6/src/dw_aligned_page.h
--- dillo-0.6.6/src/dw_aligned_page.h	2002-03-13 05:08:40.000000000 -0700
+++ dillo2-0.6.6/src/dw_aligned_page.h	2003-04-21 12:35:40.000000000 -0600
@@ -40,7 +40,10 @@
 
 struct _DwAlignedPageList
 {
-   gint num;
+   gint num;      /* The index of the last page added (minus one). */
+   gint refcount; /* The numbers of non-NULL pages, may be smaller than num.
+                   * The distinction is necessary, because removing is
+                   * simply done by assigning NULL. */
    DwAlignedPage **pages;
    gint32 *values;
    gint num_pages_max;
diff -urN dillo-0.6.6/src/dw_bullet.c dillo2-0.6.6/src/dw_bullet.c
--- dillo-0.6.6/src/dw_bullet.c	2002-03-13 05:08:40.000000000 -0700
+++ dillo2-0.6.6/src/dw_bullet.c	2003-04-21 12:35:40.000000000 -0600
@@ -22,25 +22,27 @@
                                          GdkEventExpose *event);
 
 
-GtkType a_Dw_bullet_get_type (void)
+GType a_Dw_bullet_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwBullet",
-         sizeof (DwBullet),
+      GTypeInfo info = {
          sizeof (DwBulletClass),
-         (GtkClassInitFunc) Dw_bullet_class_init,
-         (GtkObjectInitFunc) Dw_bullet_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_bullet_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwBullet),
+         0,
+         (GInstanceInitFunc) Dw_bullet_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_WIDGET, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_WIDGET, "DwBullet",
+                                    &info, flags);
    }
-
    return type;
 }
 
@@ -89,21 +91,21 @@
    GdkGC *gc;
    GdkWindow *window;
 
-   x = p_Dw_widget_x_world_to_viewport (widget, widget->allocation.x);
-   y = p_Dw_widget_y_world_to_viewport (widget, widget->allocation.y);
+   x = widget->allocation.x;
+   y = widget->allocation.y;
    gc = widget->style->color->gc;
    window = DW_WIDGET_WINDOW (widget);
 
    switch (DW_BULLET(widget)->type) {
    case DW_BULLET_DISC:
-      gdk_draw_arc(window, gc, TRUE, x + 2, y + 1, 4, 4, 0, 360 * 64);
-      gdk_draw_arc(window, gc, FALSE, x + 2, y + 1, 4, 4, 0, 360 * 64);
+      gdk_draw_arc (window, gc, TRUE, x + 2, y + 1, 4, 4, 0, 360 * 64);
+      gdk_draw_arc (window, gc, FALSE, x + 2, y + 1, 4, 4, 0, 360 * 64);
       break;
    case DW_BULLET_CIRCLE:
-      gdk_draw_arc(window, gc, FALSE, x + 1, y, 6, 6, 0, 360 * 64);
+      gdk_draw_arc (window, gc, FALSE, x + 1, y, 6, 6, 0, 360 * 64);
       break;
    case DW_BULLET_SQUARE:
-      gdk_draw_rectangle(window, gc, FALSE, x + 1, y, 6, 6);
+      gdk_draw_rectangle (window, gc, FALSE, x + 1, y, 6, 6);
       break;
    default: /* Should/could the numeric bullets be treated here ? */
       break;
diff -urN dillo-0.6.6/src/dw_button.c dillo2-0.6.6/src/dw_button.c
--- dillo-0.6.6/src/dw_button.c	2002-03-18 08:02:50.000000000 -0700
+++ dillo2-0.6.6/src/dw_button.c	2003-04-21 12:35:41.000000000 -0600
@@ -13,9 +13,10 @@
  * This widget imitates the look and behavior of GtkButton.
  */
 
+#include <gtk/gtk.h>
 #include "dw_button.h"
 #include "dw_gtk_viewport.h"
-#include <gtk/gtk.h>
+#include "dw_marshal.h"
 
 static void Dw_button_init          (DwButton *button);
 static void Dw_button_class_init    (DwButtonClass *klass);
@@ -59,9 +60,16 @@
                                          DwCallback callback,
                                          gpointer callback_data);
 
+static DwIterator* Dw_button_iterator          (DwWidget *widget,
+                                                gint mask);
+static gboolean    Dw_button_iterator_next     (DwIterator *it);
+static DwIterator* Dw_button_iterator_clone    (DwIterator *it);
+
+
 enum
 {
    CLICKED,
+   CLICKED_AT,
    LAST_SIGNAL
 };
 
@@ -72,38 +80,50 @@
 /*
  * Return the type of DwButton
  */
-GtkType a_Dw_button_get_type (void)
+GType a_Dw_button_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwButton",
-         sizeof (DwButton),
+      GTypeInfo info = {
          sizeof (DwButtonClass),
-         (GtkClassInitFunc) Dw_button_class_init,
-         (GtkObjectInitFunc) Dw_button_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_button_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwButton),
+         0,
+         (GInstanceInitFunc) Dw_button_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_CONTAINER, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_CONTAINER, "DwButton",
+                                    &info, flags);
    }
-
    return type;
 }
 
 
 /*
  * Standard Gtk+ function.
- */
-DwWidget* a_Dw_button_new (void)
-{
-   GtkObject *object;
+ *
+ * - "flags" is a mask for the window flags, it should be the mask the
+ *   child uses (e.g. DW_USES_HINT for DwPage, 0 for DwImage). (Will
+ *   hopefully be removed soon.)
+ * - When passing FALSE for "relief", the button will neither have a
+ *   border, nor paint a background.
+ */
+DwWidget* a_Dw_button_new (gint flags,
+                           gboolean relief)
+{
+   DwButton *button;
+
+   button = DW_BUTTON (gtk_object_new (DW_TYPE_BUTTON, NULL));
+   DW_WIDGET_SET_FLAGS (button, flags);
+   button->relief = relief;
 
-   object = gtk_object_new (DW_TYPE_BUTTON, NULL);
-   return DW_WIDGET (object);
+   return DW_WIDGET (button);
 }
 
 
@@ -112,7 +132,6 @@
  */
 static void Dw_button_init (DwButton *button)
 {
-   DW_WIDGET_SET_FLAGS (button, DW_USES_HINTS);
    button->child = NULL;
    button->in_button = FALSE;
    button->pressed = FALSE;
@@ -134,13 +153,24 @@
    parent_class = gtk_type_class (DW_TYPE_CONTAINER);
 
    button_signals[CLICKED] =
-      gtk_signal_new ("clicked",
-                      GTK_RUN_FIRST | GTK_RUN_ACTION,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwButtonClass, clicked),
-                      gtk_marshal_NONE__NONE,
-                      GTK_TYPE_NONE, 0);
-   gtk_object_class_add_signals (object_class, button_signals, LAST_SIGNAL);
+      g_signal_new ("clicked",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwButtonClass, clicked),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__VOID,
+                    G_TYPE_NONE, 0, NULL);
+   button_signals[CLICKED_AT] =
+      g_signal_new ("clicked_at",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+                    G_STRUCT_OFFSET (DwButtonClass, clicked_at),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT,
+                    G_TYPE_NONE,
+                    2, G_TYPE_INT, G_TYPE_INT);
 
    widget_class->size_request = Dw_button_size_request;
    widget_class->get_extremes = Dw_button_get_extremes;
@@ -153,12 +183,14 @@
    widget_class->button_release_event = Dw_button_button_release;
    widget_class->enter_notify_event = Dw_button_enter_notify;
    widget_class->leave_notify_event = Dw_button_leave_notify;
+   widget_class->iterator = Dw_button_iterator;
 
    container_class->add = Dw_button_add;
    container_class->remove = Dw_button_remove;
    container_class->forall = Dw_button_forall;
 
    klass->clicked = NULL;
+   klass->clicked_at = NULL;
 }
 
 
@@ -170,19 +202,22 @@
 {
    DwButton *button = DW_BUTTON (widget);
    DwRequisition child_requisition;
-   GtkStyleClass *styleclass = widget->viewport->style->klass;
+   GtkStyle *style = widget->viewport->style;
 
-   if (button->child)
+   if (button->child) {
       a_Dw_widget_size_request (button->child, &child_requisition);
-   else {
-      child_requisition.width = 0;
-      child_requisition.ascent = 0;
-      child_requisition.descent = 0;
+      *requisition = child_requisition;
+   } else {
+      requisition->width = 0;
+      requisition->ascent = 0;
+      requisition->descent = 0;
    }
 
-   requisition->width = child_requisition.width + 2 * styleclass->xthickness;
-   requisition->ascent = child_requisition.ascent + styleclass->ythickness;
-   requisition->descent = child_requisition.descent + styleclass->ythickness;
+   if (button->relief) {
+      requisition->width += 2 * style->xthickness;
+      requisition->ascent += style->ythickness;
+      requisition->descent += style->ythickness;
+   }
 }
 
 
@@ -194,17 +229,20 @@
 {
    DwButton *button = DW_BUTTON (widget);
    DwExtremes child_extremes;
-   GtkStyleClass *styleclass = widget->viewport->style->klass;
+   GtkStyle *style = widget->viewport->style;
 
-   if (button->child)
+   if (button->child) {
       a_Dw_widget_get_extremes (button->child, &child_extremes);
-   else {
-      child_extremes.min_width = 0;
-      child_extremes.max_width = 0;
+      *extremes = child_extremes;
+   } else {
+      extremes->min_width = 0;
+      extremes->max_width = 0;
    }
 
-   extremes->min_width = child_extremes.min_width + 2 * styleclass->xthickness;
-   extremes->max_width = child_extremes.max_width + 2 * styleclass->xthickness;
+   if (button->relief) {
+      extremes->min_width += 2 * style->xthickness;
+      extremes->max_width += 2 * style->xthickness;
+   }
 }
 
 
@@ -216,14 +254,19 @@
 {
    DwButton *button = DW_BUTTON (widget);
    DwAllocation child_allocation;
-   GtkStyleClass *styleclass = widget->viewport->style->klass;
+   GtkStyle *style = widget->viewport->style;
 
    if (button->child) {
-      child_allocation. x = allocation->x + styleclass->xthickness;
-      child_allocation. y = allocation->y + styleclass->ythickness;
-      child_allocation.width = allocation->width - 2 * styleclass->xthickness;
-      child_allocation.ascent = allocation->ascent - styleclass->ythickness;
-      child_allocation.descent = allocation->descent - styleclass->ythickness;
+      child_allocation = *allocation;
+
+      if (button->relief) {
+         child_allocation.x += style->xthickness;
+         child_allocation.y += style->ythickness;
+         child_allocation.width -= 2 * style->xthickness;
+         child_allocation.ascent -= style->ythickness;
+         child_allocation.descent -= style->ythickness;
+      }
+      
       a_Dw_widget_size_allocate (button->child, &child_allocation);
    }
 }
@@ -240,7 +283,8 @@
    if (button->child)
       a_Dw_widget_set_width
          (button->child,
-          width - 2 * widget->viewport->style->klass->xthickness);
+          width - (button->relief ?
+                   (2 * widget->viewport->style->xthickness) : 0));
 }
 
 
@@ -255,7 +299,8 @@
    if (button->child)
       a_Dw_widget_set_ascent
          (button->child,
-          ascent  - widget->viewport->style->klass->ythickness);
+          ascent  - (button->relief ?
+                     widget->viewport->style->ythickness : 0));
 }
 
 
@@ -270,7 +315,8 @@
    if (button->child)
       a_Dw_widget_set_descent
          (button->child,
-          descent - widget->viewport->style->klass->ythickness);
+          descent - (button->relief ?
+                     widget->viewport->style->ythickness : 0));
 }
 
 
@@ -287,40 +333,45 @@
    GdkRectangle gdk_area;
    DwRectangle child_area;
 
-   if (button->sensitive) {
-      if (button->in_button) {
-         if (button->pressed) {
-            state = GTK_STATE_ACTIVE;
-            shadow = GTK_SHADOW_IN;
+   if (button->relief) {
+      if (button->sensitive) {
+         if (button->in_button) {
+            if (button->pressed) {
+               state = GTK_STATE_ACTIVE;
+               shadow = GTK_SHADOW_IN;
+            } else {
+               state = GTK_STATE_PRELIGHT;
+               shadow = GTK_SHADOW_OUT;
+            }
          } else {
-            state = GTK_STATE_PRELIGHT;
+            state = GTK_STATE_NORMAL;
             shadow = GTK_SHADOW_OUT;
          }
       } else {
-         state = GTK_STATE_NORMAL;
+         state = GTK_STATE_INSENSITIVE;
          shadow = GTK_SHADOW_OUT;
       }
-   } else {
-      state = GTK_STATE_INSENSITIVE;
-      shadow = GTK_SHADOW_OUT;
+      
+      gdk_area.x =
+         p_Dw_widget_x_world_to_viewport (widget,
+                                          area->x + widget->allocation.x);
+      gdk_area.y =
+         p_Dw_widget_y_world_to_viewport (widget,
+                                          area->y + widget->allocation.y);
+      gdk_area.width = area->width;
+      gdk_area.height = area->height;
+      
+      gtk_paint_box (widget->viewport->style, DW_WIDGET_WINDOW (widget),
+                     state, shadow, &gdk_area, widget->viewport,
+                     "buttondefault",
+                     p_Dw_widget_x_world_to_viewport (widget,
+                                                      widget->allocation.x),
+                     p_Dw_widget_y_world_to_viewport (widget,
+                                                      widget->allocation.y),
+                     widget->allocation.width,
+                     widget->allocation.ascent + widget->allocation.descent);
    }
-
-   gdk_area.x =
-      p_Dw_widget_x_world_to_viewport (widget, area->x + widget->allocation.x);
-   gdk_area.y =
-      p_Dw_widget_y_world_to_viewport (widget, area->y + widget->allocation.y);
-   gdk_area.width = area->width;
-   gdk_area.height = area->height;
-
-   gtk_paint_box (widget->viewport->style, DW_WIDGET_WINDOW (widget),
-                  state, shadow, &gdk_area, widget->viewport, "buttondefault",
-                  p_Dw_widget_x_world_to_viewport (widget,
-                                                   widget->allocation.x),
-                  p_Dw_widget_y_world_to_viewport (widget,
-                                                   widget->allocation.y),
-                  widget->allocation.width,
-                  widget->allocation.ascent + widget->allocation.descent);
-
+   
    if (button->child &&
        p_Dw_widget_intersect (button->child, area, &child_area))
       a_Dw_widget_draw (button->child, &child_area, event);
@@ -338,7 +389,8 @@
    DwButton *button = DW_BUTTON (widget);
 
    button->pressed = TRUE;
-   p_Dw_widget_queue_draw (widget);
+   if (button->relief)
+      p_Dw_widget_queue_draw (widget);
    return TRUE;
 }
 
@@ -357,12 +409,40 @@
     *      Dw). This results in a different behavior.
     */
    DwButton *button = DW_BUTTON (widget);
+   gint32 cx, cy;
 
    button->pressed = FALSE;
-   p_Dw_widget_queue_draw (widget);
+   if (button->relief)
+      p_Dw_widget_queue_draw (widget);
 
-   if (button->in_button && button->sensitive)
-      gtk_signal_emit (GTK_OBJECT (widget), button_signals[CLICKED]);
+   if (button->in_button && button->sensitive) {
+      /* simple "click" */
+      g_signal_emit (G_OBJECT (widget), button_signals[CLICKED], 0);
+
+      /* "clicked_at": like "clicked", but position is passed, relative
+       * to the child widget. */
+      if (button->child) {
+         cx = x + widget->allocation.x - button->child->allocation.x;
+         cy = y + widget->allocation.y - button->child->allocation.y;
+         
+         /* If position is outside of the child, clip at the child
+            allocation */
+         if (cx < 0)
+            cx = 0;
+         else if (cx > button->child->allocation.width - 1)
+            cx = button->child->allocation.width - 1;
+
+         if (cy < 0)
+            cy = 0;
+         else if (cy > (button->child->allocation.ascent +
+                       button->child->allocation.descent - 1))
+            cy = (button->child->allocation.ascent +
+                  button->child->allocation.descent - 1);
+
+         g_signal_emit (G_OBJECT (widget), button_signals[CLICKED_AT], 0,
+                        cx, cy);
+      }
+   }
 
    return TRUE;
 }
@@ -378,7 +458,8 @@
    DwButton *button = DW_BUTTON (widget);
 
    button->in_button = TRUE;
-   p_Dw_widget_queue_draw (widget);
+   if (button->relief)
+      p_Dw_widget_queue_draw (widget);
    return TRUE;
 }
 
@@ -392,9 +473,10 @@
 {
    DwButton *button = DW_BUTTON (widget);
 
-   if(button->child == NULL || next_widget != button->child) {
+   if (button->child == NULL || next_widget != button->child) {
       button->in_button = FALSE;
-      p_Dw_widget_queue_draw (widget);
+      if (button->relief)
+         p_Dw_widget_queue_draw (widget);
    }
    return TRUE;
 }
@@ -406,7 +488,7 @@
 static void Dw_button_add (DwContainer *container,
                            DwWidget *widget)
 {
-   DwButton *button = DW_BUTTON(container);
+   DwButton *button = DW_BUTTON (container);
 
    g_return_if_fail (button->child == NULL);
    button->child = widget;
@@ -420,7 +502,7 @@
 static void Dw_button_remove (DwContainer *container,
                               DwWidget *widget)
 {
-   DwButton *button = DW_BUTTON(container);
+   DwButton *button = DW_BUTTON (container);
 
    g_return_if_fail (button->child != NULL);
    g_return_if_fail (widget == button->child);
@@ -435,7 +517,7 @@
                               DwCallback callback,
                               gpointer callback_data)
 {
-   DwButton *button = DW_BUTTON(container);
+   DwButton *button = DW_BUTTON (container);
 
    if (button->child)
       callback (button->child, callback_data);
@@ -451,5 +533,43 @@
                                 gboolean sensitive)
 {
    button->sensitive = sensitive;
-   p_Dw_widget_queue_draw (DW_WIDGET (button));
+   if (button->relief)
+      p_Dw_widget_queue_draw (DW_WIDGET (button));
+}
+
+
+static DwIterator *Dw_button_iterator (DwWidget *widget,
+                                       gint mask)
+{
+   DwIterator *it = g_new (DwIterator, 1);
+   it->widget = widget;
+   it->mask = mask;
+   it->content.type = DW_CONTENT_START;
+   it->next = Dw_button_iterator_next;
+   it->clone = Dw_button_iterator_clone;
+   it->free = p_Dw_iterator_free_std;
+   return it;
 }
+
+
+static gboolean Dw_button_iterator_next (DwIterator *it)
+{
+   if (it->content.type == DW_CONTENT_START &&
+       (it->mask & DW_CONTENT_WIDGET) &&
+       DW_BUTTON(it->widget)->child) {
+      it->content.type = DW_CONTENT_WIDGET;
+      it->content.data.widget = DW_BUTTON(it->widget)->child;
+      return TRUE;
+   } else {
+      it->content.type = DW_CONTENT_END;
+      return FALSE;
+   }
+}
+
+static DwIterator* Dw_button_iterator_clone (DwIterator *it)
+{
+   DwIterator *it2 = g_new (DwIterator, 1);
+   *it2 = *it;
+   return it2;
+}
+
diff -urN dillo-0.6.6/src/dw_button.h dillo2-0.6.6/src/dw_button.h
--- dillo-0.6.6/src/dw_button.h	2002-03-18 08:02:50.000000000 -0700
+++ dillo2-0.6.6/src/dw_button.h	2003-04-21 12:35:41.000000000 -0600
@@ -30,7 +30,7 @@
    DwContainer container;
 
    DwWidget *child;
-   gboolean in_button, pressed, sensitive;
+   gboolean relief, in_button, pressed, sensitive;
 };
 
 
@@ -38,12 +38,16 @@
 {
    DwContainerClass parent_class;
 
-   void (*clicked)  (DwButton *button);
+   void (*clicked)    (DwButton *button);
+   void (*clicked_at) (DwButton *button,
+                       gint32 x,
+                       gint32 y);
 };
 
 
 GtkType    a_Dw_button_get_type      (void);
-DwWidget*  a_Dw_button_new           (void);
+DwWidget*  a_Dw_button_new           (gint flags,
+                                      gboolean relief);
 void       a_Dw_button_set_sensitive (DwButton *button,
                                       gboolean sensitive);
 
diff -urN dillo-0.6.6/src/dw_container.c dillo2-0.6.6/src/dw_container.c
--- dillo-0.6.6/src/dw_container.c	2001-12-22 13:51:08.000000000 -0700
+++ dillo2-0.6.6/src/dw_container.c	2003-04-21 12:35:41.000000000 -0600
@@ -21,25 +21,27 @@
 /*
  * Standard Gtk+ function
  */
-GtkType a_Dw_container_get_type (void)
+GType a_Dw_container_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwContainer",
-         sizeof (DwContainer),
+      GTypeInfo info = {
          sizeof (DwContainerClass),
-         (GtkClassInitFunc) Dw_container_class_init,
-         (GtkObjectInitFunc) Dw_container_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_container_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwContainer),
+         0,
+         (GInstanceInitFunc) Dw_container_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_WIDGET, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_WIDGET, "DwContainer",
+                                    &info, flags);
    }
-
    return type;
 }
 
@@ -94,21 +96,20 @@
                           (DwCallback) gtk_object_destroy,
                           NULL);
 
-   (* GTK_OBJECT_CLASS(parent_class)->destroy) (object);
+   GTK_OBJECT_CLASS(parent_class)->destroy (object);
 }
 
 
 
 /*
- * Add a widget in a "standard" way. Currently not used in dillo,
- * perhaps never needed.
+ * Add a widget in a "standard" way.
  */
 void a_Dw_container_add (DwContainer *container,
                          DwWidget *child)
 {
    DwContainerClass *klass;
 
-   klass = DW_CONTAINER_CLASS (GTK_OBJECT (container)->klass);
+   klass = DW_CONTAINER_CLASS (G_OBJECT_GET_CLASS (G_OBJECT (container)));
    if (klass->add)
       (* (klass->add)) (container, child);
 }
@@ -122,10 +123,23 @@
                             gpointer     callback_data)
 {
    DwContainerClass *klass;
-
-   klass = DW_CONTAINER_CLASS (GTK_OBJECT (container)->klass);
+   
+   klass = DW_CONTAINER_CLASS(G_OBJECT_GET_CLASS(G_OBJECT(container)));
    if (klass->forall)
       (* (klass->forall)) (container, callback, callback_data);
+
+   /* The following code is handy for testing DwIterator: */
+    
+   /*
+   DwIterator *it;
+
+   if ((it = a_Dw_widget_iterator (DW_WIDGET (container),
+                                   DW_CONTENT_WIDGET))) {
+      while (a_Dw_iterator_next(it))
+         callback (it->content.data.widget, callback_data);
+      a_Dw_iterator_free (it);
+   }
+   */
 }
 
 
@@ -138,7 +152,7 @@
 {
    DwContainerClass *klass;
 
-   klass = DW_CONTAINER_CLASS (GTK_OBJECT (container)->klass);
+   klass = DW_CONTAINER_CLASS (G_OBJECT_GET_CLASS (G_OBJECT (container)));
    if (klass->findtext)
       return (* (klass->findtext)) (container, FP, KP, NewKey);
    return 0;
@@ -153,7 +167,7 @@
 {
    DwContainerClass *klass;
 
-   klass = DW_CONTAINER_CLASS (GTK_OBJECT (container)->klass);
+   klass = DW_CONTAINER_CLASS (G_OBJECT_GET_CLASS (G_OBJECT (container)));
    if (klass->remove)
       (* (klass->remove)) (container, child);
 }
diff -urN dillo-0.6.6/src/dw_embed_gtk.c dillo2-0.6.6/src/dw_embed_gtk.c
--- dillo-0.6.6/src/dw_embed_gtk.c	2002-03-13 05:08:42.000000000 -0700
+++ dillo2-0.6.6/src/dw_embed_gtk.c	2003-04-21 12:35:42.000000000 -0600
@@ -17,32 +17,32 @@
                                          DwRectangle *area,
                                          GdkEventExpose *event);
 
-static void Dw_embed_gtk_remove_gtk     (DwEmbedGtk *embed_gtk);
-
 static GtkWidgetClass *parent_class;
 
 /*
  * Standard Gtk+ function
  */
-GtkType a_Dw_embed_gtk_get_type (void)
+GType a_Dw_embed_gtk_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwEmbedGtk",
-         sizeof (DwEmbedGtk),
+      GTypeInfo info = {
          sizeof (DwEmbedGtkClass),
-         (GtkClassInitFunc) Dw_embed_gtk_class_init,
-         (GtkObjectInitFunc) Dw_embed_gtk_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_embed_gtk_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwEmbedGtk),
+         0,
+         (GInstanceInitFunc) Dw_embed_gtk_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_WIDGET, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_WIDGET, "DwEmbedGtk",
+                                    &info, flags);
    }
-
    return type;
 }
 
@@ -102,7 +102,7 @@
    if (embed_gtk->idle_id != -1)
       gtk_idle_remove (embed_gtk->idle_id);
 
-   (* GTK_OBJECT_CLASS(parent_class)->destroy) (object);
+   GTK_OBJECT_CLASS(parent_class)->destroy (object);
 }
 
 
@@ -206,10 +206,11 @@
  * This function is called when the embedded Gtk+ widget is destroyed.
  * Don't use this function directly!
  */
-static void Dw_embed_gtk_remove_gtk (DwEmbedGtk *embed_gtk)
+static gboolean Dw_embed_gtk_remove_gtk (DwEmbedGtk *embed_gtk)
 {
    embed_gtk->child = NULL;
    p_Dw_widget_queue_resize (DW_WIDGET (embed_gtk), 0, TRUE);
+   return FALSE;
 }
 
 
@@ -218,7 +219,7 @@
  * will set the adjustments of the viewport.
  * Don't use this function directly!
  */
-static int Dw_embed_gtk_child_focus_in (DwEmbedGtk *embed_gtk)
+static gboolean Dw_embed_gtk_child_focus_in (DwEmbedGtk *embed_gtk)
 {
    DwWidget *widget;
    GtkLayout *layout;
@@ -227,8 +228,8 @@
    widget = DW_WIDGET (embed_gtk);
    layout = GTK_LAYOUT (widget->viewport);
 
-   vx = layout->xoffset;
-   vy = layout->yoffset;
+   vx = p_Dw_widget_x_viewport_to_world(widget, 0);
+   vy = p_Dw_widget_y_viewport_to_world(widget, 0);
    vw = GTK_WIDGET(layout)->allocation.width;
    vh = GTK_WIDGET(layout)->allocation.height;
 
@@ -274,23 +275,20 @@
    /* This is to recognize size changes of the embedded Gtk+ widget,
       but this simple implementation causes too much page rewraps, so
       it is currently deactivated */
-   gtk_signal_connect_object (GTK_OBJECT (embed_gtk->child),
-                              "size_request",
-                              GTK_SIGNAL_FUNC (Dw_widget_queue_resize),
-                              GTK_OBJECT (embed_gtk));
+   g_signal_connect_object (G_OBJECT (embed_gtk->child), "size_request",
+                            G_CALLBACK(Dw_widget_queue_resize),
+                            G_OBJECT (embed_gtk), 0);
 #endif
 
    /* for setting the adjustments */
-   gtk_signal_connect_object (GTK_OBJECT (embed_gtk->child),
-                              "focus_in_event",
-                              GTK_SIGNAL_FUNC (Dw_embed_gtk_child_focus_in),
-                              GTK_OBJECT (embed_gtk));
+   g_signal_connect_object(G_OBJECT (embed_gtk->child), "focus_in_event",
+                           G_CALLBACK(Dw_embed_gtk_child_focus_in),
+                           G_OBJECT (embed_gtk), G_CONNECT_SWAPPED);
 
    /* todo: An idea: use "remove" signal of DwGtkContainer instead. */
-   gtk_signal_connect_object (GTK_OBJECT (embed_gtk->child),
-                              "destroy",
-                              GTK_SIGNAL_FUNC (Dw_embed_gtk_remove_gtk),
-                              GTK_OBJECT (embed_gtk));
+   g_signal_connect_object(G_OBJECT (embed_gtk->child), "destroy",
+                           G_CALLBACK (Dw_embed_gtk_remove_gtk),
+                           G_OBJECT (embed_gtk), G_CONNECT_SWAPPED);
 
    p_Dw_widget_queue_resize (DW_WIDGET (embed_gtk), 0, TRUE);
 }
diff -urN dillo-0.6.6/src/dw_ext_iterator.c dillo2-0.6.6/src/dw_ext_iterator.c
--- dillo-0.6.6/src/dw_ext_iterator.c	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/src/dw_ext_iterator.c	2003-04-21 12:35:42.000000000 -0600
@@ -0,0 +1,131 @@
+/*
+ * File: dw_ext_iterator.c
+ *
+ * Copyright (C) 2002 Sebastian Geerken <S.Geerken@ping.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+/*
+ * DwExtIterator is an extension of DwIterator, which stores
+ * DwIterator's in a stack, for cases where recursions are not
+ * possible.
+ */
+
+#include "dw_ext_iterator.h"
+#include "list.h"
+
+/*
+ * Create a new DwExtIterator from an existing DwIterator.
+ * The content of the return value will be the content of "it".
+ * NOTES:
+ * (i)  If you want to continue using "it", pass a_Dw_iterator_clone (it).
+ * (ii) The mask of "it" must include DW_CONTENT_WIDGET, but 
+ *      a_Dw_ext_iterator_next will never return widgets.
+ */
+DwExtIterator* a_Dw_ext_iterator_new (DwIterator *it)
+{
+   DwExtIterator *eit = g_new (DwExtIterator, 1);
+   DwWidget *w;
+   int sp;
+
+   eit->stack_top = 0;
+   /* If this widget has parents, we must construct appropiate
+    * iterators. TODO: There should be a faster way instead of
+    * iterating through the parent widgets. */
+   /* NOTE: This has not yet been tested fully! */
+   for (w = it->widget; w->parent != NULL; w = w->parent)
+      eit->stack_top++;
+   eit->stack_max = 4;
+   while (eit->stack_top >= eit->stack_max)
+      eit->stack_max <<= 1;
+
+   /* Construct the iterators. */
+   for (w = it->widget, sp = eit->stack_top - 1;
+       w->parent != NULL;
+       w = w->parent, sp--) {
+      eit->stack[sp] = a_Dw_widget_iterator (w->parent, it->mask);
+      while (TRUE) {
+         while (!a_Dw_iterator_next(eit->stack[sp])) {
+            g_warning ("BUG in DwExtIterator!");
+            return NULL;
+         }
+         if (eit->stack[sp]->content.type == DW_CONTENT_WIDGET &&
+             eit->stack[sp]->content.data.widget == w)
+            break;
+      }
+   }
+
+   eit->stack = g_new (DwIterator*, eit->stack_max);
+   eit->stack[eit->stack_top] = it;
+   eit->content = it->content;
+   return eit;
+}
+
+/*
+ * Move iterator forward and store content it. Returns TRUE on
+ * success.
+ */
+gboolean a_Dw_ext_iterator_next (DwExtIterator *eit)
+{
+   DwIterator *it = eit->stack[eit->stack_top];
+
+   if (a_Dw_iterator_next(it)) {
+      if (it->content.type == DW_CONTENT_WIDGET) {
+         /* Widget: new iterator on stack, to search in this widget. */
+         eit->stack_top++;
+         a_List_add (eit->stack, eit->stack_top, eit->stack_max);
+         eit->stack[eit->stack_top] =
+            a_Dw_widget_iterator (it->content.data.widget, it->mask);
+         return a_Dw_ext_iterator_next (eit);
+      } else {
+         /* Simply return the content of the iterartor. */
+         eit->content = it->content;
+         return TRUE;
+      }
+   } else {
+      /* No more data in the top-most widget. */
+      if (eit->stack_top > 0) {
+         /* Pop iterator from stack, and move to next item in the old one. */
+         a_Dw_iterator_free (it);
+         eit->stack_top--;
+         return a_Dw_ext_iterator_next (eit);
+      } else
+         /* Stack is empty. */
+         return FALSE;
+   }         
+}
+
+/*
+ * Create an exact copy of the iterator, which then can be used
+ * independantly of the original one.
+ */
+DwExtIterator* a_Dw_ext_iterator_clone (DwExtIterator *eit)
+{
+   int i;
+   DwExtIterator *eit2 = g_new (DwExtIterator, 1);
+   eit2->stack_top = eit->stack_top;
+   eit2->stack_max = eit->stack_max;
+   eit2->content = eit->content;
+
+   eit2->stack = g_new (DwIterator*, eit2->stack_max);
+   for (i = 0; i < eit2->stack_top; i++)
+      eit2->stack[i] = a_Dw_iterator_clone (eit->stack[i]);
+
+   return eit2;
+}
+
+/*
+ * Free memory of iterator.
+ */
+void a_Dw_ext_iterator_free (DwExtIterator *eit)
+{
+   int i;
+   for (i = 0; i < eit->stack_top; i++)
+      a_Dw_iterator_clone (eit->stack[i]);
+   g_free (eit->stack);
+   g_free (eit);
+}
diff -urN dillo-0.6.6/src/dw_ext_iterator.h dillo2-0.6.6/src/dw_ext_iterator.h
--- dillo-0.6.6/src/dw_ext_iterator.h	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/src/dw_ext_iterator.h	2003-04-21 12:35:42.000000000 -0600
@@ -0,0 +1,28 @@
+#ifndef __DW_EXT_ITERATOR_H__
+#define __DW_EXT_ITERATOR_H__
+
+#include "dw_widget.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+typedef struct _DwExtIterator
+{
+   DwIterator **stack;
+   gint stack_top;
+   gint stack_max;
+
+   DwContent content;
+} DwExtIterator;
+
+DwExtIterator* a_Dw_ext_iterator_new   (DwIterator *it);
+gboolean       a_Dw_ext_iterator_next  (DwExtIterator *eit);
+DwExtIterator* a_Dw_ext_iterator_clone (DwExtIterator *eit);
+void           a_Dw_ext_iterator_free  (DwExtIterator *eit);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __DW_EXT_ITERATOR_H__ */
diff -urN dillo-0.6.6/src/dw_gtk_scrolled_frame.c dillo2-0.6.6/src/dw_gtk_scrolled_frame.c
--- dillo-0.6.6/src/dw_gtk_scrolled_frame.c	2002-04-30 10:27:51.000000000 -0600
+++ dillo2-0.6.6/src/dw_gtk_scrolled_frame.c	2003-04-21 12:35:44.000000000 -0600
@@ -17,7 +17,9 @@
 
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
+#include <gdk/gdkx.h>
 #include "dw_gtk_scrolled_frame.h"
+#include "dw_marshal.h"
 
 static GtkBinClass *parent_class = NULL;
 
@@ -36,28 +38,21 @@
                                                  GtkRequisition *requisition);
 static void Dw_gtk_scrolled_frame_size_allocate (GtkWidget *widget,
                                                  GtkAllocation *allocation);
-static void Dw_gtk_scrolled_frame_draw          (GtkWidget *widget,
-                                                 GdkRectangle *area);
-static void Dw_gtk_scrolled_frame_draw_focus    (GtkWidget *widget);
-static gint Dw_gtk_scrolled_frame_expose        (GtkWidget *widget,
+static gboolean Dw_gtk_scrolled_frame_expose    (GtkWidget *widget,
                                                  GdkEventExpose *event);
-static gint Dw_gtk_scrolled_frame_key_press     (GtkWidget *widget,
+static gboolean Dw_gtk_scrolled_frame_key_press (GtkWidget *widget,
                                                  GdkEventKey *event);
-static gint Dw_gtk_scrolled_frame_focus_in      (GtkWidget *widget,
-                                                 GdkEventFocus *event);
-static gint Dw_gtk_scrolled_frame_focus_out     (GtkWidget *widget,
-                                                 GdkEventFocus *event);
-static gint Dw_gtk_scrolled_frame_button_press  (GtkWidget *widget,
-                                                 GdkEventButton *event);
-static gint Dw_gtk_scrolled_frame_button_release(GtkWidget *widget,
-                                                 GdkEventButton *event);
-static gint Dw_gtk_scrolled_frame_motion_notify (GtkWidget *widget,
-                                                 GdkEventMotion *event);
+static gboolean Dw_gtk_scrolled_frame_button_press (GtkWidget *widget,
+                                                    GdkEventButton *event);
+static gboolean Dw_gtk_scrolled_frame_button_release(GtkWidget *widget,
+                                                     GdkEventButton *event);
+static gboolean Dw_gtk_scrolled_frame_motion_notify (GtkWidget *widget,
+                                                     GdkEventMotion *event);
 
 /* GtkContainer methods */
 static void Dw_gtk_scrolled_frame_add           (GtkContainer *container,
                                                  GtkWidget *widget);
-static gint Dw_gtk_scrolled_frame_focus         (GtkContainer *container,
+static gboolean Dw_gtk_scrolled_frame_focus     (GtkWidget *widget,
                                                  GtkDirectionType direction);
 
 /* GtkDwScrolledFrame methods */
@@ -95,25 +90,27 @@
 /*
  * Standard Gtk+ function
  */
-GtkType a_Dw_gtk_scrolled_frame_get_type (void)
+GType a_Dw_gtk_scrolled_frame_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "GtkDwScrolledFrame",
-         sizeof (GtkDwScrolledFrame),
+      GTypeInfo info = {
          sizeof (GtkDwScrolledFrameClass),
-         (GtkClassInitFunc) Dw_gtk_scrolled_frame_class_init,
-         (GtkObjectInitFunc) Dw_gtk_scrolled_frame_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_gtk_scrolled_frame_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (GtkDwScrolledFrame),
+         0,
+         (GInstanceInitFunc) Dw_gtk_scrolled_frame_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (GTK_TYPE_BIN, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(GTK_TYPE_BIN, "GtkDwScrolledFrame",
+                                    &info, flags);
    }
-
    return type;
 }
 
@@ -173,35 +170,36 @@
    container_class = (GtkContainerClass*) klass;
 
    frame_signals[SET_SCROLL_ADJUSTMENTS] =
-      gtk_signal_new ("set_scroll_adjustments",
-                      GTK_RUN_LAST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (GtkDwScrolledFrameClass,
-                                         set_scroll_adjustments),
-                      gtk_marshal_NONE__POINTER_POINTER,
-                      GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT,
-                      GTK_TYPE_ADJUSTMENT);
+      g_signal_new ("set_scroll_adjustments",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_LAST,
+                    G_STRUCT_OFFSET (GtkDwScrolledFrameClass,
+                                     set_scroll_adjustments),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__POINTER_POINTER,
+                    GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT,
+                    GTK_TYPE_ADJUSTMENT);
    widget_class->set_scroll_adjustments_signal =
       frame_signals[SET_SCROLL_ADJUSTMENTS];
-
    frame_signals[USER_HCHANGED] =
-      gtk_signal_new ("user_hchanged",
-                      GTK_RUN_LAST | GTK_RUN_ACTION,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (GtkDwScrolledFrameClass,
-                                         user_hchanged),
-                      gtk_marshal_NONE__NONE,
-                      GTK_TYPE_NONE, 0);
+      g_signal_new ("user_hchanged",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+                    G_STRUCT_OFFSET (GtkDwScrolledFrameClass, user_hchanged),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__VOID,
+                    GTK_TYPE_NONE, 0);
    frame_signals[USER_VCHANGED] =
-      gtk_signal_new ("user_vchanged",
-                      GTK_RUN_LAST | GTK_RUN_ACTION,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (GtkDwScrolledFrameClass,
-                                         user_vchanged),
-                      gtk_marshal_NONE__NONE,
-                      GTK_TYPE_NONE, 0);
-
-   gtk_object_class_add_signals (object_class, frame_signals, LAST_SIGNAL);
+      g_signal_new ("user_vchanged",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+                    G_STRUCT_OFFSET (GtkDwScrolledFrameClass, user_vchanged),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__VOID,
+                    GTK_TYPE_NONE, 0);
 
    object_class->destroy = Dw_gtk_scrolled_frame_destroy;
 
@@ -209,21 +207,16 @@
    widget_class->unrealize = Dw_gtk_scrolled_frame_unrealize;
    widget_class->size_request = Dw_gtk_scrolled_frame_size_request;
    widget_class->size_allocate = Dw_gtk_scrolled_frame_size_allocate;
-   widget_class->draw_focus = Dw_gtk_scrolled_frame_draw_focus;
-   widget_class->draw = Dw_gtk_scrolled_frame_draw;
    widget_class->expose_event = Dw_gtk_scrolled_frame_expose;
    widget_class->key_press_event = Dw_gtk_scrolled_frame_key_press;
-   widget_class->focus_in_event = Dw_gtk_scrolled_frame_focus_in;
-   widget_class->focus_out_event = Dw_gtk_scrolled_frame_focus_out;
+   widget_class->focus = Dw_gtk_scrolled_frame_focus;
    widget_class->button_press_event = Dw_gtk_scrolled_frame_button_press;
    widget_class->button_release_event = Dw_gtk_scrolled_frame_button_release;
    widget_class->motion_notify_event = Dw_gtk_scrolled_frame_motion_notify;
 
    container_class->add = Dw_gtk_scrolled_frame_add;
-   container_class->focus = Dw_gtk_scrolled_frame_focus;
 
-   klass->set_scroll_adjustments =
-      Dw_gtk_scrolled_frame_set_scroll_adjustments;
+   klass->set_scroll_adjustments = Dw_gtk_scrolled_frame_set_scroll_adjustments;
    klass->user_hchanged = NULL;
    klass->user_vchanged = NULL;
 }
@@ -246,7 +239,7 @@
    if (frame->move_idle_id != -1)
       gtk_idle_remove (frame->move_idle_id);
 
-   (* GTK_OBJECT_CLASS(parent_class)->destroy) (object);
+   GTK_OBJECT_CLASS(parent_class)->destroy (object);
 }
 
 
@@ -286,6 +279,11 @@
    widget->style = gtk_style_attach (widget->style, widget->window);
    gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
 
+   /* evil workaround */
+   GTK_DW_SCROLLED_FRAME(widget)->vadjustment->step_increment = 10;
+   GTK_DW_SCROLLED_FRAME(widget)->hadjustment->step_increment = 10;
+   /* end evil workaround */
+
    GTK_DW_SCROLLED_FRAME(widget)->drag_cursor = gdk_cursor_new (GDK_FLEUR);
 }
 
@@ -321,11 +319,11 @@
       border_width = GTK_CONTAINER(widget)->border_width;
 
       child_allocation.width =
-         MAX (allocation->width - 2 * (widget->style->klass->xthickness +
+         MAX (allocation->width - 2 * (widget->style->xthickness +
                                        border_width),
               1);
       child_allocation.height =
-         MAX (allocation->height - 2 * (widget->style->klass->ythickness +
+         MAX (allocation->height - 2 * (widget->style->ythickness +
                                         border_width),
               1);
       child_allocation.x = (allocation->width - child_allocation.width) / 2;
@@ -353,10 +351,10 @@
       gtk_widget_size_request (bin->child, &child_requisition);
 
       requisition->width =
-         child_requisition.width + 2 * (widget->style->klass->xthickness +
+         child_requisition.width + 2 * (widget->style->xthickness +
                                         border_width);
       requisition->height =
-         child_requisition.height + 2 * (widget->style->klass->ythickness +
+         child_requisition.height + 2 * (widget->style->ythickness +
                                          border_width);
    } else {
       requisition->width = 100;
@@ -385,7 +383,7 @@
 
          /* "text" is probably next to what we need */
          gtk_paint_focus (widget->style, widget->window,
-                          area, widget, "text",
+                          GTK_STATE_SELECTED, area, widget, "text",
                           border_width, border_width,
                           widget->allocation.width - 2 * border_width - 1,
                           widget->allocation.height - 2 * border_width - 1);
@@ -399,37 +397,15 @@
    }
 }
 
-
 /*
  * Standard Gtk+ function
  */
-static void Dw_gtk_scrolled_frame_draw_focus (GtkWidget *widget)
+static gboolean Dw_gtk_scrolled_frame_expose (GtkWidget *widget,
+                                              GdkEventExpose *event)
 {
-   Dw_gtk_scrolled_frame_paint_shadow (widget, NULL);
-}
+   gboolean ret_val;
 
-
-/*
- * Standard Gtk+ function
- */
-static void Dw_gtk_scrolled_frame_draw (GtkWidget *widget,
-                                        GdkRectangle *area)
-{
-   (* (GTK_WIDGET_CLASS(parent_class)->draw)) (widget, area);
-   Dw_gtk_scrolled_frame_paint_shadow (widget, area);
-}
-
-
-/*
- * Standard Gtk+ function
- */
-static gint Dw_gtk_scrolled_frame_expose (GtkWidget *widget,
-                                          GdkEventExpose *event)
-{
-   gint ret_val;
-
-   ret_val =
-      (* (GTK_WIDGET_CLASS(parent_class)->expose_event)) (widget, event);
+   ret_val = GTK_WIDGET_CLASS(parent_class)->expose_event (widget, event);
    Dw_gtk_scrolled_frame_paint_shadow (widget, &(event->area));
 
    return ret_val;
@@ -439,77 +415,77 @@
 /*
  * Standard Gtk+ function
  */
-static gint Dw_gtk_scrolled_frame_key_press (GtkWidget *widget,
-                                             GdkEventKey *event)
+static gboolean Dw_gtk_scrolled_frame_key_press (GtkWidget *widget,
+                                                 GdkEventKey *event)
 {
-   GtkContainer *container;
    GtkDwScrolledFrame *frame;
 
-   container = GTK_CONTAINER (widget);
    frame = GTK_DW_SCROLLED_FRAME (widget);
 
    switch (event->keyval) {
    case GDK_Up:
-      Dw_gtk_scrolled_frame_move_by(frame, 0,
-                                   - frame->vadjustment->step_increment);
+      Dw_gtk_scrolled_frame_move_by (frame, 0,
+                                     - frame->vadjustment->step_increment);
       return TRUE;
 
    case GDK_Down:
-      Dw_gtk_scrolled_frame_move_by(frame, 0,
-                                   + frame->vadjustment->step_increment);
+      Dw_gtk_scrolled_frame_move_by (frame, 0,
+                                     + frame->vadjustment->step_increment);
       return TRUE;
 
    case GDK_Left:
-      Dw_gtk_scrolled_frame_move_by(frame,
-                                   - frame->hadjustment->step_increment, 0);
+      Dw_gtk_scrolled_frame_move_by (frame,
+                                     - frame->hadjustment->step_increment, 0);
       return TRUE;
 
    case GDK_Right:
-      Dw_gtk_scrolled_frame_move_by(frame,
-                                   + frame->hadjustment->step_increment, 0);
+      Dw_gtk_scrolled_frame_move_by (frame,
+                                     + frame->hadjustment->step_increment, 0);
       return TRUE;
 
    case GDK_Tab:
       if (event->state & GDK_SHIFT_MASK)
-         return gtk_container_focus (container, GTK_DIR_TAB_BACKWARD);
+         return gtk_widget_child_focus (widget, GTK_DIR_TAB_BACKWARD);
       else
-         return gtk_container_focus (container, GTK_DIR_TAB_FORWARD);
+         return gtk_widget_child_focus (widget, GTK_DIR_TAB_FORWARD);
 
    case GDK_b: case GDK_B:
-      if (event->state & (GDK_MOD1_MASK | GDK_MOD2_MASK))
+      if (event->state & GDK_MOD1_MASK)
          return FALSE;
       /* continues */
    case GDK_Page_Up:
       if (event->state & GDK_CONTROL_MASK)
-         Dw_gtk_scrolled_frame_move_by(frame,
-                                      - frame->hadjustment->page_increment, 0);
+         Dw_gtk_scrolled_frame_move_by (frame,
+                                        - frame->hadjustment->page_increment,
+                                        0);
       else
-         Dw_gtk_scrolled_frame_move_by(frame, 0,
-                                      - frame->vadjustment->page_increment);
+         Dw_gtk_scrolled_frame_move_by (frame, 0,
+                                        - frame->vadjustment->page_increment);
       return TRUE;
 
    case GDK_Page_Down:
    case GDK_space:
       if (event->state & GDK_CONTROL_MASK)
-         Dw_gtk_scrolled_frame_move_by(frame,
-                                      + frame->hadjustment->page_increment, 0);
+         Dw_gtk_scrolled_frame_move_by (frame,
+                                        + frame->hadjustment->page_increment,
+                                        0);
       else
-         Dw_gtk_scrolled_frame_move_by(frame, 0,
-                                      + frame->vadjustment->page_increment);
+         Dw_gtk_scrolled_frame_move_by (frame, 0,
+                                        + frame->vadjustment->page_increment);
       return TRUE;
 
    case GDK_Home:
       if (event->state & GDK_CONTROL_MASK)
-         Dw_gtk_scrolled_frame_move_x_to(frame, 0);
+         Dw_gtk_scrolled_frame_move_x_to (frame, 0);
       else
-         Dw_gtk_scrolled_frame_move_y_to(frame, 0);
+         Dw_gtk_scrolled_frame_move_y_to (frame, 0);
       return TRUE;
 
    case GDK_End:
       if (event->state & GDK_CONTROL_MASK)
-         Dw_gtk_scrolled_frame_move_x_to(frame, G_MAXFLOAT);
+         Dw_gtk_scrolled_frame_move_x_to (frame, G_MAXFLOAT);
       else
-         Dw_gtk_scrolled_frame_move_y_to(frame, G_MAXFLOAT);
+         Dw_gtk_scrolled_frame_move_y_to (frame, G_MAXFLOAT);
       return TRUE;
 
    default:
@@ -517,36 +493,11 @@
    }
 }
 
-
-/*
- * Standard Gtk+ function
- */
-static gint Dw_gtk_scrolled_frame_focus_in (GtkWidget *widget,
-                                            GdkEventFocus *event)
-{
-   GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
-   gtk_widget_draw_focus (widget);
-   return FALSE;
-}
-
-
 /*
  * Standard Gtk+ function
  */
-static gint Dw_gtk_scrolled_frame_focus_out (GtkWidget *widget,
-                                             GdkEventFocus *event)
-{
-   GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
-   gtk_widget_draw_focus (widget);
-   return FALSE;
-}
-
-
-/*
- * Standard Gtk+ function
- */
-static gint Dw_gtk_scrolled_frame_button_press (GtkWidget *widget,
-                                                GdkEventButton *event)
+static gboolean Dw_gtk_scrolled_frame_button_press (GtkWidget *widget,
+                                                    GdkEventButton *event)
 {
    GtkDwScrolledFrame *frame;
 
@@ -557,8 +508,8 @@
       frame = GTK_DW_SCROLLED_FRAME (widget);
 
       frame->button2_pressed = TRUE;
-      frame->start_lmx = event->x;
-      frame->start_lmy = event->y;
+      frame->start_lmx = event->x - frame->hadjustment->value;
+      frame->start_lmy = event->y - frame->vadjustment->value;
 
       gdk_pointer_grab (widget->window, FALSE,
                         GDK_BUTTON_RELEASE_MASK | GDK_BUTTON2_MOTION_MASK,
@@ -573,8 +524,8 @@
 /*
  * Standard Gtk+ function
  */
-static gint Dw_gtk_scrolled_frame_button_release (GtkWidget *widget,
-                                                  GdkEventButton *event)
+static gboolean Dw_gtk_scrolled_frame_button_release (GtkWidget *widget,
+                                                      GdkEventButton *event)
 {
    GTK_DW_SCROLLED_FRAME(widget)->button2_pressed = FALSE;
    gdk_pointer_ungrab (event->time);
@@ -585,14 +536,22 @@
 /*
  * Standard Gtk+ function
  */
-static gint Dw_gtk_scrolled_frame_motion_notify (GtkWidget *widget,
-                                                 GdkEventMotion *event)
+static gboolean Dw_gtk_scrolled_frame_motion_notify (GtkWidget *widget,
+                                                     GdkEventMotion *event)
 {
    GtkDwScrolledFrame *frame = GTK_DW_SCROLLED_FRAME (widget);
 
    /* frame->button2_pressed makes sure that the button was pressed
       in the GtkDwScrolledFrame */
    if ((event->state & GDK_BUTTON2_MASK) && frame->button2_pressed) {
+      if (event->window == GTK_LAYOUT(GTK_BIN(frame)->child)->bin_window) {
+         /* Evil evil hack ... Sometimes event->window is
+          * viewport->bin_window and sometimes frame->window, former
+          * gets x and y in world coordinates and latter in viewport
+          * coordinates, really don't know why this happens  -- Medar */
+         event->x -= frame->hadjustment->value;
+         event->y -= frame->vadjustment->value;
+      }
       Dw_gtk_scrolled_frame_move_by (frame,
                                      frame->start_lmx - event->x,
                                      frame->start_lmy - event->y);
@@ -619,12 +578,12 @@
 {
    GtkDwScrolledFrame *frame;
 
-   (* (GTK_CONTAINER_CLASS(parent_class)->add)) (container, widget);
+   GTK_CONTAINER_CLASS(parent_class)->add (container, widget);
 
    frame = GTK_DW_SCROLLED_FRAME (container);
-   if ( !gtk_widget_set_scroll_adjustments(
+   if ( !gtk_widget_set_scroll_adjustments (
            GTK_WIDGET (container), frame->hadjustment, frame->vadjustment) )
-      g_warning ("Dw_gtk_scrolled_frame_set_scroll_adjustments(): "
+      g_warning ("Dw_gtk_scrolled_frame_add(): "
                  "child is non scrollable");
 }
 
@@ -632,8 +591,8 @@
 /*
  * Standard Gtk+ function
  */
-static gint Dw_gtk_scrolled_frame_focus (GtkContainer *container,
-                                         GtkDirectionType direction)
+static gboolean Dw_gtk_scrolled_frame_focus (GtkWidget *widget,
+                                             GtkDirectionType direction)
 {
    /* todo:
     * This crashed if the child is not a container (what will never happen
@@ -641,32 +600,33 @@
     */
    GtkDwScrolledFrame *frame;
 
-   frame = GTK_DW_SCROLLED_FRAME (container);
+   frame = GTK_DW_SCROLLED_FRAME (widget);
 
    switch (direction) {
    case GTK_DIR_TAB_FORWARD:
    case GTK_DIR_RIGHT:
    case GTK_DIR_DOWN:
-      if (container->focus_child == NULL && !GTK_WIDGET_HAS_FOCUS (container)){
+      if (GTK_CONTAINER(widget)->focus_child == NULL &&
+          !GTK_WIDGET_HAS_FOCUS (widget)){
          /* no focus of the GtkDwScrolledFrame or a child widget -> focus */
-         gtk_widget_grab_focus (GTK_WIDGET (container));
+         gtk_widget_grab_focus (widget);
          return TRUE;
       } else
          /* deliver to child */
-         return gtk_container_focus (GTK_CONTAINER (GTK_BIN(container)->child),
-                                     direction);
+         return gtk_widget_child_focus (GTK_BIN(widget)->child,
+                                        direction);
 
    case GTK_DIR_TAB_BACKWARD:
    case GTK_DIR_LEFT:
    case GTK_DIR_UP:
-      if (GTK_WIDGET_HAS_FOCUS (container))
+      if (GTK_WIDGET_HAS_FOCUS (widget))
          /* will focus the widget "before" */
          return FALSE;
       else {
-         if (!gtk_container_focus (GTK_CONTAINER (GTK_BIN(container)->child),
-                                   GTK_DIR_TAB_BACKWARD))
+         if (!gtk_widget_child_focus (GTK_BIN(widget)->child,
+                                      GTK_DIR_TAB_BACKWARD))
             /* first child of the child unfocussed */
-            gtk_widget_grab_focus (GTK_WIDGET (container));
+            gtk_widget_grab_focus (widget);
 
          return TRUE;
       }
@@ -692,9 +652,9 @@
  * Standard Gtk+ function
  */
 static void
-Dw_gtk_scrolled_frame_set_scroll_adjustments(GtkDwScrolledFrame *frame,
-                                             GtkAdjustment *hadjustment,
-                                             GtkAdjustment *vadjustment)
+Dw_gtk_scrolled_frame_set_scroll_adjustments (GtkDwScrolledFrame *frame,
+                                              GtkAdjustment *hadjustment,
+                                              GtkAdjustment *vadjustment)
 {
    GtkBin *bin;
 
@@ -722,7 +682,7 @@
 /*
  * The idle function.
  */
-static gint Dw_gtk_scrolled_frame_move_idle (gpointer data)
+static gboolean Dw_gtk_scrolled_frame_move_idle (gpointer data)
 {
    GtkDwScrolledFrame *frame;
 
@@ -733,12 +693,12 @@
 
    if (frame->moveto_x != frame->hadjustment->value) {
       gtk_adjustment_set_value (frame->hadjustment, frame->moveto_x);
-      gtk_signal_emit (GTK_OBJECT (frame), frame_signals[USER_HCHANGED]);
+      g_signal_emit (G_OBJECT (frame), frame_signals[USER_HCHANGED], 0);
    }
 
    if (frame->moveto_y != frame->vadjustment->value) {
       gtk_adjustment_set_value (frame->vadjustment, frame->moveto_y);
-      gtk_signal_emit (GTK_OBJECT (frame), frame_signals[USER_VCHANGED]);
+      g_signal_emit (G_OBJECT (frame), frame_signals[USER_VCHANGED], 0);
    }
 
    frame->move_idle_id = -1;
@@ -815,6 +775,8 @@
 {
    if (pos < adj->lower)
       return adj->lower;
+   else if (adj->upper < adj->page_size)
+      return 0.0;
    else if (pos > adj->upper - adj->page_size)
       return adj->upper - adj->page_size;
    else
diff -urN dillo-0.6.6/src/dw_gtk_scrolled_window.c dillo2-0.6.6/src/dw_gtk_scrolled_window.c
--- dillo-0.6.6/src/dw_gtk_scrolled_window.c	2002-03-18 08:02:50.000000000 -0700
+++ dillo2-0.6.6/src/dw_gtk_scrolled_window.c	2003-04-21 12:35:45.000000000 -0600
@@ -25,32 +25,34 @@
 static void Dw_gtk_scrolled_window_size_allocate (GtkWidget *widget,
                                                   GtkAllocation *allocation);
 
-static void Dw_gtk_scrolled_window_changed1  (GtkDwScrolledWindow *scrolled);
-static void Dw_gtk_scrolled_window_changed2  (GtkDwScrolledWindow *scrolled);
+static gboolean Dw_gtk_scrolled_window_changed1 (GtkDwScrolledWindow *scrolled);
+static gboolean Dw_gtk_scrolled_window_changed2 (GtkDwScrolledWindow *scrolled);
 
 
 /*
  * Standard Gtk+ function
  */
-GtkType a_Dw_gtk_scrolled_window_get_type (void)
+GType a_Dw_gtk_scrolled_window_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "GtkDwScrolledWindow",
-         sizeof (GtkDwScrolledWindow),
+      GTypeInfo info = {
          sizeof (GtkDwScrolledWindowClass),
-         (GtkClassInitFunc) Dw_gtk_scrolled_window_class_init,
-         (GtkObjectInitFunc) Dw_gtk_scrolled_window_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_gtk_scrolled_window_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (GtkDwScrolledWindow),
+         0,
+         (GInstanceInitFunc) Dw_gtk_scrolled_window_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (GTK_TYPE_SCROLLED_WINDOW, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(GTK_TYPE_SCROLLED_WINDOW,
+                                    "GtkDwScrolledWindow", &info, flags);
    }
-
    return type;
 }
 
@@ -108,20 +110,20 @@
     * users could change the scrollbar adjustments. ...
     */
    for (i = 0; i < sizeof (signals) / sizeof (signals[0]); i++) {
-      gtk_signal_connect_object
-         (GTK_OBJECT (GTK_SCROLLED_WINDOW(scrolled)->vscrollbar),
-          signals[i],  GTK_SIGNAL_FUNC (Dw_gtk_scrolled_window_changed1),
-          GTK_OBJECT (scrolled));
-      gtk_signal_connect_object_after
-         (GTK_OBJECT (GTK_SCROLLED_WINDOW(scrolled)->vscrollbar),
-          signals[i],  GTK_SIGNAL_FUNC (Dw_gtk_scrolled_window_changed2),
-          GTK_OBJECT (scrolled));
+      g_signal_connect_object
+         (G_OBJECT (GTK_SCROLLED_WINDOW(scrolled)->vscrollbar),
+          signals[i], G_CALLBACK(Dw_gtk_scrolled_window_changed1),
+          G_OBJECT (scrolled), G_CONNECT_SWAPPED);
+      g_signal_connect_object
+         (G_OBJECT (GTK_SCROLLED_WINDOW(scrolled)->vscrollbar),
+          signals[i], G_CALLBACK(Dw_gtk_scrolled_window_changed2),
+          G_OBJECT (scrolled), G_CONNECT_SWAPPED | G_CONNECT_AFTER);
    }
 
    /* ... The GtkDwScrolledFrame has a signal for this. */
-   gtk_signal_connect_object (GTK_OBJECT (frame), "user_vchanged",
-                              GTK_SIGNAL_FUNC (Dw_gtk_viewport_remove_anchor),
-                              GTK_OBJECT (viewport));
+   g_signal_connect_object (G_OBJECT(frame), "user_vchanged",
+                            G_CALLBACK(Dw_gtk_viewport_remove_anchor),
+                            G_OBJECT (viewport), G_CONNECT_SWAPPED);
 #if 0
    /* This does not seem to work for GtkLayout's (see also dw_embed_gtk.c): */
    gtk_container_set_focus_hadjustment (GTK_CONTAINER (viewport),
@@ -185,8 +187,10 @@
 
    viewport = GTK_BIN(GTK_BIN(scrolled)->child)->child;
 
-   if ((old_child = GTK_DW_VIEWPORT (viewport)->child))
+   if ((old_child = GTK_DW_VIEWPORT (viewport)->child)) {
       gtk_object_destroy (GTK_OBJECT (old_child));
+      GTK_DW_VIEWPORT (viewport)->child = NULL;
+   }
 
    a_Dw_gtk_viewport_add_dw (GTK_DW_VIEWPORT (viewport), widget);
 }
@@ -243,9 +247,10 @@
  * See also Dw_gtk_scrolled_window_init.
  * Called before possible change, save the old value.
  */
-static void Dw_gtk_scrolled_window_changed1 (GtkDwScrolledWindow *scrolled)
+static gboolean Dw_gtk_scrolled_window_changed1 (GtkDwScrolledWindow *scrolled)
 {
    scrolled->old_vadjustment_value = scrolled->vadjustment->value;
+   return FALSE;
 }
 
 
@@ -253,7 +258,7 @@
  * See also Dw_gtk_scrolled_window_init.
  * Called after possible change, compare old and new values.
  */
-static void Dw_gtk_scrolled_window_changed2 (GtkDwScrolledWindow *scrolled)
+static gboolean Dw_gtk_scrolled_window_changed2 (GtkDwScrolledWindow *scrolled)
 {
    GtkWidget *viewport;
 
@@ -261,4 +266,5 @@
       viewport = GTK_BIN(GTK_BIN(scrolled)->child)->child;
       Dw_gtk_viewport_remove_anchor (GTK_DW_VIEWPORT (viewport));
    }
+   return FALSE;
 }
diff -urN dillo-0.6.6/src/dw_gtk_scrolled_window.h dillo2-0.6.6/src/dw_gtk_scrolled_window.h
--- dillo-0.6.6/src/dw_gtk_scrolled_window.h	2002-01-10 11:59:42.000000000 -0700
+++ dillo2-0.6.6/src/dw_gtk_scrolled_window.h	2003-04-21 12:35:45.000000000 -0600
@@ -39,7 +39,7 @@
 };
 
 
-GtkType    a_Dw_gtk_scrolled_window_get_type (void);
+GType    a_Dw_gtk_scrolled_window_get_type (void);
 GtkWidget* a_Dw_gtk_scrolled_window_new (void);
 void       a_Dw_gtk_scrolled_window_set_dw (
               GtkDwScrolledWindow *scrolled, DwWidget *widget);
diff -urN dillo-0.6.6/src/dw_gtk_viewport.c dillo2-0.6.6/src/dw_gtk_viewport.c
--- dillo-0.6.6/src/dw_gtk_viewport.c	2002-03-13 05:08:43.000000000 -0700
+++ dillo2-0.6.6/src/dw_gtk_viewport.c	2003-04-21 12:35:47.000000000 -0600
@@ -25,47 +25,47 @@
 static void Dw_gtk_viewport_destroy       (GtkObject *object);
 
 /* GtkWidget methods */
-static void Dw_gtk_viewport_realize       (GtkWidget *widget);
-static void Dw_gtk_viewport_unrealize     (GtkWidget *widget);
-static void Dw_gtk_viewport_draw          (GtkWidget *widget,
-                                           GdkRectangle *area);
-static gint Dw_gtk_viewport_expose        (GtkWidget *widget,
-                                           GdkEventExpose *event);
-static gint Dw_gtk_viewport_button_press  (GtkWidget *widget,
-                                           GdkEventButton *event);
-static gint Dw_gtk_viewport_button_release(GtkWidget *widget,
-                                           GdkEventButton *event);
-static gint Dw_gtk_viewport_motion_notify (GtkWidget *widget,
-                                           GdkEventMotion *event);
-static gint Dw_gtk_viewport_enter_notify  (GtkWidget *widget,
-                                           GdkEventCrossing *event);
-static gint Dw_gtk_viewport_leave_notify  (GtkWidget *widget,
-                                           GdkEventCrossing *event);
-static void Dw_gtk_viewport_adj_changed   (GtkAdjustment *adj,
-                                           GtkDwViewport *viewport);
+static void Dw_gtk_viewport_realize            (GtkWidget *widget);
+static void Dw_gtk_viewport_unrealize          (GtkWidget *widget);
+static gboolean Dw_gtk_viewport_expose         (GtkWidget *widget,
+                                                GdkEventExpose *event);
+static gboolean Dw_gtk_viewport_button_press   (GtkWidget *widget,
+                                                GdkEventButton *event);
+static gboolean Dw_gtk_viewport_button_release (GtkWidget *widget,
+                                                GdkEventButton *event);
+static gboolean Dw_gtk_viewport_motion_notify  (GtkWidget *widget,
+                                                GdkEventMotion *event);
+static gboolean Dw_gtk_viewport_enter_notify   (GtkWidget *widget,
+                                                GdkEventCrossing *event);
+static gboolean Dw_gtk_viewport_leave_notify   (GtkWidget *widget,
+                                                GdkEventCrossing *event);
+static gboolean Dw_gtk_viewport_adj_changed    (GtkAdjustment *adj,
+                                                GtkDwViewport *viewport);
 
 /*
  * Standard Gtk+ function
  */
-GtkType a_Dw_gtk_viewport_get_type (void)
+GType a_Dw_gtk_viewport_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "GtkDwViewport",
-         sizeof (GtkDwViewport),
+      GTypeInfo info = {
          sizeof (GtkDwViewportClass),
-         (GtkClassInitFunc) Dw_gtk_viewport_class_init,
-         (GtkObjectInitFunc) Dw_gtk_viewport_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_gtk_viewport_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (GtkDwViewport),
+         0,
+         (GInstanceInitFunc) Dw_gtk_viewport_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (GTK_TYPE_LAYOUT, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(GTK_TYPE_LAYOUT,
+                                    "GtkDwViewport", &info, flags);
    }
-
    return type;
 }
 
@@ -87,12 +87,12 @@
     * however, for more general perposes, the signal function
     * "set_scroll_adjustments" had to be redefined.
     */
-   gtk_signal_connect (GTK_OBJECT (hadjustment), "value_changed",
-                       GTK_SIGNAL_FUNC (Dw_gtk_viewport_adj_changed),
-                       (gpointer) widget);
-   gtk_signal_connect (GTK_OBJECT (vadjustment), "value_changed",
-                       GTK_SIGNAL_FUNC (Dw_gtk_viewport_adj_changed),
-                       (gpointer) widget);
+   g_signal_connect(G_OBJECT(hadjustment), "value_changed",
+                    G_CALLBACK(Dw_gtk_viewport_adj_changed),
+                    widget);
+   g_signal_connect(G_OBJECT(vadjustment), "value_changed",
+                    G_CALLBACK(Dw_gtk_viewport_adj_changed),
+                    widget);
 
    return widget;
 }
@@ -115,11 +115,9 @@
       Look at gtklayout.c */
    GTK_WIDGET_SET_FLAGS (viewport, GTK_APP_PAINTABLE);
 
-   viewport->back_pixmap = NULL;
    viewport->child = NULL;
    viewport->last_entered = NULL;
    viewport->resize_idle_id = -1;
-   viewport->back_pixmap = NULL;
    viewport->anchor = NULL;
    viewport->anchor_idle_id = -1;
 }
@@ -133,7 +131,7 @@
    GtkObjectClass *object_class;
    GtkWidgetClass *widget_class;
 
-   parent_class = gtk_type_class (gtk_layout_get_type ());
+   parent_class = gtk_type_class (GTK_TYPE_LAYOUT);
 
    object_class = (GtkObjectClass*) klass;
    widget_class = (GtkWidgetClass*) klass;
@@ -142,7 +140,6 @@
 
    widget_class->realize = Dw_gtk_viewport_realize;
    widget_class->unrealize = Dw_gtk_viewport_unrealize;
-   widget_class->draw = Dw_gtk_viewport_draw;
    widget_class->expose_event = Dw_gtk_viewport_expose;
    widget_class->button_press_event = Dw_gtk_viewport_button_press;
    widget_class->button_release_event = Dw_gtk_viewport_button_release;
@@ -167,18 +164,20 @@
 
    viewport = GTK_DW_VIEWPORT (object);
 
-   if (viewport->back_pixmap)
-      gdk_pixmap_unref (viewport->back_pixmap);
-   if (viewport->child)
+   if (viewport->child) {
       gtk_object_destroy (GTK_OBJECT (viewport->child));
+      viewport->child = NULL;
+   }
    if (viewport->resize_idle_id)
       gtk_idle_remove (viewport->resize_idle_id);
-   if (viewport->anchor)
+   if (viewport->anchor) {
       g_free (viewport->anchor);
+      viewport->anchor = NULL;
+   }
    if (viewport->anchor_idle_id != -1)
       gtk_idle_remove (viewport->anchor_idle_id);
 
-   (* GTK_OBJECT_CLASS(parent_class)->destroy) (object);
+   GTK_OBJECT_CLASS(parent_class)->destroy (object);
 }
 
 
@@ -195,7 +194,7 @@
 {
    GtkDwViewport *viewport;
 
-   (* (GTK_WIDGET_CLASS(parent_class)->realize)) (widget);
+   GTK_WIDGET_CLASS(parent_class)->realize (widget);
 
    gdk_window_set_events (widget->window,
                           gdk_window_get_events (widget->window)
@@ -204,6 +203,13 @@
                           | GDK_POINTER_MOTION_MASK
                           | GDK_ENTER_NOTIFY_MASK
                           | GDK_LEAVE_NOTIFY_MASK);
+   gdk_window_set_events (GTK_LAYOUT(widget)->bin_window,
+                          gdk_window_get_events (GTK_LAYOUT(widget)->bin_window)
+                          | GDK_BUTTON_PRESS_MASK
+                          | GDK_BUTTON_RELEASE_MASK
+                          | GDK_POINTER_MOTION_MASK
+                          | GDK_ENTER_NOTIFY_MASK
+                          | GDK_LEAVE_NOTIFY_MASK);
 
    viewport = GTK_DW_VIEWPORT (widget);
    if (viewport->child)
@@ -220,7 +226,7 @@
 {
    GtkDwViewport *viewport;
 
-   (* (GTK_WIDGET_CLASS(parent_class)->unrealize)) (widget);
+   GTK_WIDGET_CLASS(parent_class)->unrealize (widget);
 
    viewport = GTK_DW_VIEWPORT (widget);
    if (viewport->child)
@@ -236,9 +242,8 @@
                                    GdkEventExpose *event)
 {
    GtkLayout *layout;
-   DwRectangle parent_area, child_area, intersection;
+   DwRectangle child_area, intersection;
    GtkDwViewport *viewport;
-   gboolean new_back_pixmap;
 
    if (GTK_WIDGET_DRAWABLE (widget)) {
       layout = GTK_LAYOUT (widget);
@@ -247,58 +252,20 @@
       DEBUG_MSG (2, "Drawing (%d, %d), %d x %d\n",
                  area->x, area->y, area->width, area->height);
 
-      /* Make sure the backing pixmap is large enough. */
       if (viewport->child) {
-         if (viewport->back_pixmap)
-            new_back_pixmap =
-               (widget->allocation.width > viewport->back_width ||
-                widget->allocation.height > viewport->back_height);
-         else
-            new_back_pixmap = TRUE;
-
-         if (new_back_pixmap) {
-            if (viewport->back_pixmap)
-               gdk_pixmap_ref (viewport->back_pixmap);
-            viewport->back_pixmap = gdk_pixmap_new (widget->window,
-                                                    widget->allocation.width,
-                                                    widget->allocation.height,
-                                                    viewport->depth);
-            viewport->back_width = widget->allocation.width;
-            viewport->back_height = widget->allocation.height;
-            DEBUG_MSG (1, "   Creating new pixmap, size = %d x %d\n",
-                       widget->allocation.width, widget->allocation.height);
-         }
-
          /* Draw top-level Dw widget. */
-         parent_area.x =
-            p_Dw_widget_x_viewport_to_world (viewport->child, area->x);
-         parent_area.y =
-            p_Dw_widget_y_viewport_to_world (viewport->child, area->y);
-         parent_area.width = area->width;
-         parent_area.height = area->height;
-
          child_area.x = viewport->child->allocation.x;
          child_area.y = viewport->child->allocation.y;
          child_area.width = viewport->child->allocation.width;
          child_area.height = (viewport->child->allocation.ascent +
                               viewport->child->allocation.descent);
 
-         if (p_Dw_rectangle_intersect (&parent_area, &child_area,
+         if (p_Dw_rectangle_intersect ((DwRectangle *)area, &child_area,
                                        &intersection)) {
             intersection.x -= viewport->child->allocation.x;
             intersection.y -= viewport->child->allocation.y;
 
-            /* "Clear" backing pixmap. */
-            gdk_draw_rectangle (viewport->back_pixmap,
-                                viewport->child->style->background_color->gc,
-                                TRUE, area->x, area->y,
-                                area->width, area->height);
-            /* Widgets draw in backing pixmap. */
             a_Dw_widget_draw (viewport->child, &intersection, event);
-            /* Copy backing pixmap into window. */
-            gdk_draw_pixmap (layout->bin_window, widget->style->black_gc,
-                             viewport->back_pixmap, area->x, area->y,
-                             area->x, area->y, area->width, area->height);
          }
       } else
          gdk_window_clear_area (layout->bin_window,
@@ -310,48 +277,32 @@
 /*
  * Standard Gtk+ function
  */
-static void Dw_gtk_viewport_draw (GtkWidget *widget,
-                                  GdkRectangle *area)
-{
-   Dw_gtk_viewport_paint (widget, area, NULL);
-   (* (GTK_WIDGET_CLASS(parent_class)->draw)) (widget, area);
-}
-
-
-/*
- * Standard Gtk+ function
- */
-static gint Dw_gtk_viewport_expose (GtkWidget *widget,
-                                    GdkEventExpose *event)
+static gboolean Dw_gtk_viewport_expose (GtkWidget *widget,
+                                        GdkEventExpose *event)
 {
    Dw_gtk_viewport_paint (widget, &(event->area), event);
-   return (* (GTK_WIDGET_CLASS(parent_class)->expose_event)) (widget, event);
+   return GTK_WIDGET_CLASS(parent_class)->expose_event (widget, event);
 }
 
 
 /*
  * Handle the mouse event and deliver it to the Dw widget.
- * Most is done in a_Dw_widget_mouse_event.
+ * Most is done in Dw_widget_mouse_event.
  */
-static gint Dw_gtk_viewport_mouse_event (GtkWidget *widget,
-                                         gint32 x,
-                                         gint32 y,
-                                         GdkEvent *event)
+static gboolean Dw_gtk_viewport_mouse_event (GtkWidget *widget,
+                                             gint32 x, gint32 y,
+                                             GdkEventAny *event)
 {
    GtkDwViewport *viewport;
    DwWidget *dw_widget;
-   gint32 world_x, world_y;
 
-   if (event == NULL || event->any.window == widget->window) {
+   if (event == NULL || event->window == widget->window ||
+       event->window == GTK_LAYOUT(widget)->bin_window) {
       viewport = GTK_DW_VIEWPORT (widget);
       if (viewport->child) {
-         world_x = x + gtk_layout_get_hadjustment(GTK_LAYOUT(viewport))->value;
-         world_y = y + gtk_layout_get_vadjustment(GTK_LAYOUT(viewport))->value;
          dw_widget =
-            Dw_gtk_viewport_widget_at_point (viewport, world_x, world_y);
-
-         return Dw_widget_mouse_event (dw_widget, widget,
-                                       world_x, world_y, event);
+            Dw_gtk_viewport_widget_at_point (viewport, x, y);
+         return Dw_widget_mouse_event (dw_widget, widget, x, y, event);
       }
    }
 
@@ -362,37 +313,37 @@
 /*
  * Standard Gtk+ function
  */
-static gint Dw_gtk_viewport_button_press (GtkWidget *widget,
-                                          GdkEventButton *event)
+static gboolean Dw_gtk_viewport_button_press (GtkWidget *widget,
+                                              GdkEventButton *event)
 {
    return Dw_gtk_viewport_mouse_event (widget, event->x, event->y,
-                                       (GdkEvent*) event);
+                                       (GdkEventAny*) event);
 }
 
 
 /*
  * Standard Gtk+ function
  */
-static gint Dw_gtk_viewport_button_release (GtkWidget *widget,
-                                            GdkEventButton *event)
+static gboolean Dw_gtk_viewport_button_release (GtkWidget *widget,
+                                                GdkEventButton *event)
 {
    return Dw_gtk_viewport_mouse_event (widget, event->x, event->y,
-                                       (GdkEvent*) event);
+                                       (GdkEventAny*) event);
 }
 
 
 /*
  * Standard Gtk+ function
  */
-static gint Dw_gtk_viewport_motion_notify (GtkWidget *widget,
-                                           GdkEventMotion *event)
+static gboolean Dw_gtk_viewport_motion_notify (GtkWidget *widget,
+                                               GdkEventMotion *event)
 {
    GtkDwViewport *viewport = GTK_DW_VIEWPORT (widget);
 
    viewport->mouse_x = event->x;
    viewport->mouse_y = event->y;
    return Dw_gtk_viewport_mouse_event (widget, event->x, event->y,
-                                       (GdkEvent*) event);
+                                       (GdkEventAny*) event);
 }
 
 
@@ -421,11 +372,12 @@
  * This function is called when the viewport changes, and causes
  * motion_notify events to be simulated.
  */
-static void Dw_gtk_viewport_adj_changed (GtkAdjustment *adj,
-                                         GtkDwViewport *viewport)
+static gboolean Dw_gtk_viewport_adj_changed (GtkAdjustment *adj,
+                                             GtkDwViewport *viewport)
 {
-   Dw_gtk_viewport_mouse_event (GTK_WIDGET (viewport),
-                                viewport->mouse_x, viewport->mouse_y, NULL);
+   return Dw_gtk_viewport_mouse_event (GTK_WIDGET (viewport),
+                                       viewport->mouse_x, viewport->mouse_y,
+                                       NULL);
 }
 
 /**********************
@@ -545,8 +497,9 @@
 
       widget = GTK_WIDGET (viewport);
       scrolled = GTK_SCROLLED_WINDOW (widget->parent->parent);
-      space = GTK_SCROLLED_WINDOW_CLASS(GTK_OBJECT(scrolled)->klass)
-         ->scrollbar_spacing;
+      space = GTK_SCROLLED_WINDOW_CLASS(G_OBJECT_GET_CLASS(
+              G_OBJECT(scrolled)))->scrollbar_spacing;
+      if (space < 0) space = 3; /* Bad solution, check gtkscrolledwindow.c */
       border_width = GTK_CONTAINER(viewport)->border_width;
 
       gtk_widget_size_request (scrolled->vscrollbar, &bar_requisition);
@@ -747,7 +700,7 @@
        g_hash_table_lookup_extended (widget->anchors_table, viewport->anchor,
                                      NULL, &p))
       Dw_gtk_viewport_scroll_to (viewport,
-                                 GPOINTER_TO_INT(p) + widget->allocation.y);
+                                 GPOINTER_TO_INT (p) + widget->allocation.y);
    else {
       if (DW_IS_CONTAINER (widget))
          a_Dw_container_forall (DW_CONTAINER (widget),
@@ -777,7 +730,7 @@
    Dw_gtk_viewport_remove_anchor (viewport);
 
    if (anchor) {
-      viewport->anchor = g_strdup(anchor);
+      viewport->anchor = g_strdup (anchor);
       Dw_gtk_viewport_update_anchor (viewport);
    } else {
       viewport->anchor = NULL;
@@ -813,7 +766,7 @@
 /*
  * Remove anchor and idle function.
  */
-void Dw_gtk_viewport_remove_anchor (GtkDwViewport *viewport)
+gboolean Dw_gtk_viewport_remove_anchor (GtkDwViewport *viewport)
 {
    if (viewport->anchor) {
       g_free (viewport->anchor);
@@ -824,4 +777,5 @@
       gtk_idle_remove (viewport->anchor_idle_id);
       viewport->anchor_idle_id = -1;
    }
+   return TRUE;
 }
diff -urN dillo-0.6.6/src/dw_gtk_viewport.h dillo2-0.6.6/src/dw_gtk_viewport.h
--- dillo-0.6.6/src/dw_gtk_viewport.h	2001-12-22 13:51:08.000000000 -0700
+++ dillo2-0.6.6/src/dw_gtk_viewport.h	2003-04-21 12:35:47.000000000 -0600
@@ -25,8 +25,6 @@
 {
    GtkLayout layout;
 
-   GdkPixmap *back_pixmap;              /* backing pixmap for buffering */
-   gint back_width, back_height;
    gint depth;
 
    DwWidget *child;
@@ -71,7 +69,7 @@
 void           Dw_gtk_viewport_update_anchor    (GtkDwViewport *viewport);
 void           Dw_gtk_viewport_scroll_to        (GtkDwViewport *viewport,
                                                  gint32 y);
-void           Dw_gtk_viewport_remove_anchor    (GtkDwViewport *viewport);
+gboolean       Dw_gtk_viewport_remove_anchor    (GtkDwViewport *viewport);
 
 #ifdef __cplusplus
 }
diff -urN dillo-0.6.6/src/dw_hruler.c dillo2-0.6.6/src/dw_hruler.c
--- dillo-0.6.6/src/dw_hruler.c	2002-03-13 05:08:43.000000000 -0700
+++ dillo2-0.6.6/src/dw_hruler.c	2003-04-21 12:35:48.000000000 -0600
@@ -29,25 +29,27 @@
                                          GdkEventExpose *event);
 
 
-GtkType a_Dw_hruler_get_type (void)
+GType a_Dw_hruler_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwHruler",
-         sizeof (DwHruler),
+      GTypeInfo info = {
          sizeof (DwHrulerClass),
-         (GtkClassInitFunc) Dw_hruler_class_init,
-         (GtkObjectInitFunc) Dw_hruler_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_hruler_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwHruler),
+         0,
+         (GInstanceInitFunc) Dw_hruler_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_WIDGET, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_WIDGET,
+                                    "DwHruler", &info, flags);
    }
-
    return type;
 }
 
@@ -71,7 +73,7 @@
 
    object_class = GTK_OBJECT_CLASS (klass);
 
-   widget_class = (DwWidgetClass*)klass;
+   widget_class = DW_WIDGET_CLASS (klass);
    widget_class->size_request = Dw_hruler_size_request;
    widget_class->draw = Dw_hruler_draw;
 }
diff -urN dillo-0.6.6/src/dw_image.c dillo2-0.6.6/src/dw_image.c
--- dillo-0.6.6/src/dw_image.c	2002-04-09 18:56:26.000000000 -0600
+++ dillo2-0.6.6/src/dw_image.c	2003-04-21 12:35:49.000000000 -0600
@@ -88,25 +88,27 @@
 /*
  * Standard Gtk+ function.
  */
-GtkType a_Dw_image_get_type (void)
+GType a_Dw_image_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwImage",
-         sizeof (DwImage),
+      GTypeInfo info = {
          sizeof (DwImageClass),
-         (GtkClassInitFunc) Dw_image_class_init,
-         (GtkObjectInitFunc) Dw_image_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_image_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwImage),
+         0,
+         (GInstanceInitFunc) Dw_image_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_WIDGET, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_WIDGET,
+                                    "DwImage", &info, flags);
    }
-
    return type;
 }
 
@@ -119,8 +121,9 @@
    GtkObject *object;
 
    object = gtk_object_new (DW_TYPE_IMAGE, NULL);
-   if (alt && alt[0] && prefs.show_alt)
+   if (alt && alt[0] && prefs.show_alt) {
       DW_IMAGE(object)->alt_tooltip = a_Dw_tooltip_new (alt);
+   }
    return DW_WIDGET (object);
 }
 
@@ -154,41 +157,48 @@
    object_class->destroy = Dw_image_destroy;
 
    image_signals[LINK_ENTERED] =
-      gtk_signal_new ("link_entered",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwImageClass, link_entered),
-                      p_Dw_marshal_link_enter,
-                      GTK_TYPE_NONE,
-                      3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);
+      g_signal_new ("link_entered",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwImageClass, link_entered),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT_INT,
+                    GTK_TYPE_NONE,
+                    3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);
    image_signals[LINK_PRESSED] =
-      gtk_signal_new ("link_pressed",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwImageClass, link_pressed),
-                      p_Dw_marshal_link_button,
-                      GTK_TYPE_NONE,
-                      4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
-                      GTK_TYPE_GDK_EVENT);
+      g_signal_new ("link_pressed",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwImageClass, link_pressed),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT_INT_POINTER,
+                    GTK_TYPE_NONE,
+                    4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
+                    GDK_TYPE_EVENT);
    image_signals[LINK_RELEASED] =
-      gtk_signal_new ("link_released",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwImageClass, link_released),
-                      p_Dw_marshal_link_button,
-                      GTK_TYPE_NONE,
-                      4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
-                      GTK_TYPE_GDK_EVENT);
+      g_signal_new ("link_released",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwImageClass, link_released),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT_INT_POINTER,
+                    GTK_TYPE_NONE,
+                    4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
+                    GDK_TYPE_EVENT);
    image_signals[LINK_CLICKED] =
-      gtk_signal_new ("link_clicked",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwImageClass, link_clicked),
-                      p_Dw_marshal_link_button,
-                      GTK_TYPE_NONE,
-                      4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
-                      GTK_TYPE_GDK_EVENT);
-   gtk_object_class_add_signals (object_class, image_signals, LAST_SIGNAL);
+      g_signal_new ("link_clicked",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwImageClass, link_clicked),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT_INT_POINTER,
+                    GTK_TYPE_NONE,
+                    4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
+                    GDK_TYPE_EVENT);
 
    widget_class = (DwWidgetClass*)klass;
    widget_class->size_request = Dw_image_size_request;
@@ -214,11 +224,11 @@
    if (image->scaled_buffer)
       g_free (image->scaled_buffer);
    if (image->usemap_url)
-      a_Url_free(image->usemap_url);
+      a_Url_free (image->usemap_url);
    if (image->url)
-      a_Dicache_unref(image->url, image->version);
+      a_Dicache_unref (image->url, image->version);
 
-   (* GTK_OBJECT_CLASS(parent_class)->destroy) (object);
+   GTK_OBJECT_CLASS(parent_class)->destroy (object);
 }
 
 
@@ -231,11 +241,19 @@
    DwImage *image;
 
    image = DW_IMAGE (widget);
-   requisition->width =
-      image->width + p_Dw_style_box_diff_width (widget->style);
-   requisition->ascent =
-      image->height + p_Dw_style_box_diff_height (widget->style);
-   requisition->descent = 0;
+   if (prefs.halfsize_images) {
+      requisition->width =
+         image->width/2 + p_Dw_style_box_diff_width (widget->style);
+      requisition->ascent =
+         image->height/2 + p_Dw_style_box_diff_height (widget->style);
+      requisition->descent = 0;
+   } else {
+      requisition->width =
+         image->width + p_Dw_style_box_diff_width (widget->style);
+      requisition->ascent =
+         image->height + p_Dw_style_box_diff_height (widget->style);
+      requisition->descent = 0;
+   }
 }
 
 
@@ -276,8 +294,8 @@
    DwImage *image = DW_IMAGE (widget);
    guchar *buffer, *bstart;
 
-   //g_print(">Area x=%d y=%d w=%d h=%d\n", area->x, area->y,
-   //        area->width, area->height);
+   //g_print (">Area x=%d y=%d w=%d h=%d\n", area->x, area->y,
+   //         area->width, area->height);
 
    p_Dw_widget_draw_widget_box (widget, area);
 
@@ -290,8 +308,8 @@
          p_Dw_style_box_diff_height (widget->style);
 
       if (p_Dw_rectangle_intersect (area, &content, &intersection)) {
-         vx = p_Dw_widget_x_world_to_viewport (widget, widget->allocation.x);
-         vy = p_Dw_widget_y_world_to_viewport (widget, widget->allocation.y);
+         vx = widget->allocation.x;
+         vy = widget->allocation.y;
          gc = widget->style->color->gc;
 
          if (image->scaled_buffer)
@@ -304,7 +322,7 @@
                   content.width * (intersection.y -
                                    p_Dw_style_box_offset_y (widget->style)) );
 
-         gdk_draw_rgb_image(
+         gdk_draw_rgb_image (
             DW_WIDGET_WINDOW (widget), gc,
             vx + intersection.x, vy + intersection.y,
             intersection.width, intersection.height, GDK_RGB_DITHER_MAX,
@@ -343,8 +361,8 @@
 
    if (image->hover_link != -1) {
       image->hover_link = -1;
-      gtk_signal_emit (GTK_OBJECT (widget), image_signals[LINK_ENTERED],
-                       -1, -1, -1);
+      g_signal_emit (G_OBJECT (widget), image_signals[LINK_ENTERED], 0,
+                     -1, -1, -1);
    }
 
    return FALSE;
@@ -365,8 +383,8 @@
    Dw_image_find_link (image, x, y, &image->pressed_link, &link_x, &link_y);
 
    if (image->pressed_link >= 0) {
-      gtk_signal_emit (GTK_OBJECT (widget), image_signals[LINK_PRESSED],
-                       image->pressed_link, link_x, link_y, event);
+      g_signal_emit (G_OBJECT (widget), image_signals[LINK_PRESSED], 0,
+                     image->pressed_link, link_x, link_y, event);
       return TRUE;
    } else
       return FALSE;
@@ -389,11 +407,11 @@
    image->pressed_link = -1;
 
    if (link_released >= 0) {
-      gtk_signal_emit (GTK_OBJECT (widget), image_signals[LINK_RELEASED],
-                       link_released, link_x, link_y, event);
+      g_signal_emit (G_OBJECT (widget), image_signals[LINK_RELEASED], 0,
+                     link_released, link_x, link_y, event);
       if (link_pressed == link_released)
-         gtk_signal_emit (GTK_OBJECT (widget), image_signals[LINK_CLICKED],
-                          link_released, link_x, link_y, event);
+         g_signal_emit (G_OBJECT (widget), image_signals[LINK_CLICKED], 0,
+                        link_released, link_x, link_y, event);
       return TRUE;
    } else
       return FALSE;
@@ -419,8 +437,8 @@
 
    /* In case of a ISMAP image, the signal has to be emitted always */
    if (link_x != -1 || link != link_old) {
-      gtk_signal_emit (GTK_OBJECT (widget), image_signals[LINK_ENTERED],
-                       link, link_x, link_y);
+      g_signal_emit (G_OBJECT (widget), image_signals[LINK_ENTERED], 0,
+                     link, link_x, link_y);
       return TRUE;
    } else
       return (link != -1);
@@ -463,14 +481,14 @@
 /*
  * Set or resize a image.
  */
-void a_Dw_image_size(DwImage *image, gint width, gint height)
+void a_Dw_image_size (DwImage *image, gint width, gint height)
 {
    gint Resize = (image->width != width || image->height != height);
 
    image->width = width;
    image->height = height;
-   if ( Resize )
-      p_Dw_widget_queue_resize(DW_WIDGET (image), 0, TRUE);
+   if (Resize)
+      p_Dw_widget_queue_resize (DW_WIDGET (image), 0, TRUE);
 
    if (image->buffer)
       /* if a_Dw_image_set_buffer has been called before */
@@ -481,8 +499,8 @@
  * Called after the RGB line buffer has been copied into the full
  * image buffer. Uses for drawing and scaling.
  */
-void a_Dw_image_draw_row(DwImage *image,
-                         gint Width, gint Height, gint x, gint y)
+void a_Dw_image_draw_row (DwImage *image,
+                          gint Width, gint Height, gint x, gint y)
 {
    DwWidget *widget = DW_WIDGET (image);
    gint dy1, dy2;
@@ -509,8 +527,8 @@
 /*
  * Set the widget buffer to reference the dicache entry buffer
  */
-void a_Dw_image_set_buffer(DwImage *image, guchar *ImageBuffer,
-                           DilloUrl *url, gint version)
+void a_Dw_image_set_buffer (DwImage *image, guchar *ImageBuffer,
+                            DilloUrl *url, gint version)
 {
    image->buffer = ImageBuffer;
    image->url = url;
@@ -538,7 +556,7 @@
    image->map_list = map_list;
 
    if (image->usemap_url)
-      a_Url_free(image->usemap_url);
+      a_Url_free (image->usemap_url);
    image->usemap_url = usemap_url ? a_Url_dup (usemap_url) : NULL;
 }
 
@@ -649,11 +667,11 @@
 {
    list->num_maps = 0;
    list->num_maps_max = 8;
-   list->maps = g_new(DwImageMap, list->num_maps_max);
+   list->maps = g_new (DwImageMap, list->num_maps_max);
 
    list->num_shapes = 0;
    list->num_shapes_max = 8;
-   list->shapes = g_new(DwImageMapShape, list->num_shapes_max);
+   list->shapes = g_new (DwImageMapShape, list->num_shapes_max);
 }
 
 
@@ -684,7 +702,7 @@
                                   DilloUrl *url)
 {
    list->num_maps++;
-   a_List_add(list->maps, list->num_maps, list->num_maps_max);
+   a_List_add (list->maps, list->num_maps, list->num_maps_max);
    list->maps[list->num_maps - 1].url = a_Url_dup (url);
    list->maps[list->num_maps - 1].start_shape = list->num_shapes;
 }
@@ -718,7 +736,7 @@
 
    if (correct_args) {
       list->num_shapes++;
-      a_List_add(list->shapes, list->num_shapes, list->num_shapes_max);
+      a_List_add (list->shapes, list->num_shapes, list->num_shapes_max);
       shape = &list->shapes[list->num_shapes - 1];
       shape->type = type;
       shape->link = link;
diff -urN dillo-0.6.6/src/dw_image.h dillo2-0.6.6/src/dw_image.h
--- dillo-0.6.6/src/dw_image.h	2001-12-22 13:51:08.000000000 -0700
+++ dillo2-0.6.6/src/dw_image.h	2003-04-21 12:35:49.000000000 -0600
@@ -36,6 +36,7 @@
    gint version;
    DwImageType type;
    guchar *buffer;
+   /* true width and height */
    gint width;
    gint height;
 
diff -urN dillo-0.6.6/src/dw_list_item.c dillo2-0.6.6/src/dw_list_item.c
--- dillo-0.6.6/src/dw_list_item.c	2002-03-18 08:02:50.000000000 -0700
+++ dillo2-0.6.6/src/dw_list_item.c	2003-04-21 12:35:50.000000000 -0600
@@ -21,25 +21,27 @@
 /*
  * Standard Gtk+ function.
  */
-GtkType a_Dw_list_item_get_type (void)
+GType a_Dw_list_item_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwListItem",
-         sizeof (DwListItem),
+      GTypeInfo info = {
          sizeof (DwListItemClass),
-         (GtkClassInitFunc) Dw_list_item_class_init,
-         (GtkObjectInitFunc) Dw_list_item_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_list_item_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwListItem),
+         0,
+         (GInstanceInitFunc) Dw_list_item_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_ALIGNED_PAGE, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_ALIGNED_PAGE,
+                                    "DwListItem", &info, flags);
    }
-
    return type;
 }
 
@@ -51,9 +53,9 @@
  */
 DwWidget* a_Dw_list_item_new (DwListItem *ref_list_item)
 {
-   GtkObject *object;
+   GObject *object;
 
-   object = gtk_object_new (DW_TYPE_LIST_ITEM, NULL);
+   object = g_object_new (DW_TYPE_LIST_ITEM, NULL);
    p_Dw_aligned_page_set_ref_page (DW_ALIGNED_PAGE (object),
                                    (DwAlignedPage*)ref_list_item);
    return DW_WIDGET (object);
diff -urN dillo-0.6.6/src/dw_marshal.c dillo2-0.6.6/src/dw_marshal.c
--- dillo-0.6.6/src/dw_marshal.c	2002-03-13 05:08:45.000000000 -0700
+++ dillo2-0.6.6/src/dw_marshal.c	2003-04-21 12:35:50.000000000 -0600
@@ -1,36 +1,252 @@
-#include "dw_marshal.h"
 
+#include	<glib-object.h>
 
-typedef void (*GtkSignal_NONE__INT_INT_INT) (GtkObject * object,
-                                             gint arg1, gint arg2,
-                                             gint arg3, gpointer user_data);
 
-void p_Dw_marshal_NONE__INT_INT_INT (GtkObject * object,
-                                     GtkSignalFunc Func,
-                                     gpointer FuncData, GtkArg * args)
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v)     g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v)      g_value_get_int (v)
+#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
+#define g_marshal_value_peek_long(v)     g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
+#define g_marshal_value_peek_float(v)    g_value_get_float (v)
+#define g_marshal_value_peek_double(v)   g_value_get_double (v)
+#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v)    g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v)   g_value_get_object (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ *          Do not access GValues directly in your code. Instead, use the
+ *          g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
+#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v)     (v)->data[0].v_int
+#define g_marshal_value_peek_flags(v)    (v)->data[0].v_uint
+#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
+#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
+#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:VOID (dw_marshal.list:25) */
+
+/* VOID:POINTER (dw_marshal.list:26) */
+
+/* VOID:POINTER,POINTER (dw_marshal.list:27) */
+void
+p_Dw_marshal_VOID__POINTER_POINTER (GClosure     *closure,
+                                    GValue       *return_value,
+                                    guint         n_param_values,
+                                    const GValue *param_values,
+                                    gpointer      invocation_hint,
+                                    gpointer      marshal_data)
 {
-   GtkSignal_NONE__INT_INT_INT rfunc;
-   rfunc = (GtkSignal_NONE__INT_INT_INT) Func;
-   rfunc (object,
-          GTK_VALUE_INT (args[0]), GTK_VALUE_INT (args[1]),
-          GTK_VALUE_INT (args[2]), FuncData);
+  typedef void (*GMarshalFunc_VOID__POINTER_POINTER) (gpointer     data1,
+                                                      gpointer     arg_1,
+                                                      gpointer     arg_2,
+                                                      gpointer     data2);
+  register GMarshalFunc_VOID__POINTER_POINTER callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_pointer (param_values + 1),
+            g_marshal_value_peek_pointer (param_values + 2),
+            data2);
 }
 
+/* VOID:INT,INT (dw_marshal.list:28) */
+void
+p_Dw_marshal_VOID__INT_INT (GClosure     *closure,
+                            GValue       *return_value,
+                            guint         n_param_values,
+                            const GValue *param_values,
+                            gpointer      invocation_hint,
+                            gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT_INT) (gpointer     data1,
+                                              gint         arg_1,
+                                              gint         arg_2,
+                                              gpointer     data2);
+  register GMarshalFunc_VOID__INT_INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT_INT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int (param_values + 1),
+            g_marshal_value_peek_int (param_values + 2),
+            data2);
+}
+
+/* VOID:INT,INT,INT (dw_marshal.list:29) */
+void
+p_Dw_marshal_VOID__INT_INT_INT (GClosure     *closure,
+                                GValue       *return_value,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint,
+                                gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT_INT_INT) (gpointer     data1,
+                                                  gint         arg_1,
+                                                  gint         arg_2,
+                                                  gint         arg_3,
+                                                  gpointer     data2);
+  register GMarshalFunc_VOID__INT_INT_INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT_INT_INT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int (param_values + 1),
+            g_marshal_value_peek_int (param_values + 2),
+            g_marshal_value_peek_int (param_values + 3),
+            data2);
+}
 
-typedef void (*GtkSignal_NONE__INT_INT_INT_POINTER) (GtkObject * object,
-                                                     gint arg1, gint arg2,
-                                                     gint arg3,
-                                                     gpointer arg4,
-                                                     gpointer user_data);
-
-void p_Dw_marshal_NONE__INT_INT_INT_POINTER (GtkObject * object,
-                                             GtkSignalFunc Func,
-                                             gpointer FuncData, GtkArg * args)
+/* VOID:INT,INT,INT,POINTER (dw_marshal.list:30) */
+void
+p_Dw_marshal_VOID__INT_INT_INT_POINTER (GClosure     *closure,
+                                        GValue       *return_value,
+                                        guint         n_param_values,
+                                        const GValue *param_values,
+                                        gpointer      invocation_hint,
+                                        gpointer      marshal_data)
 {
-   GtkSignal_NONE__INT_INT_INT_POINTER rfunc;
-   rfunc = (GtkSignal_NONE__INT_INT_INT_POINTER) Func;
-   rfunc (object,
-          GTK_VALUE_INT (args[0]), GTK_VALUE_INT (args[1]),
-          GTK_VALUE_INT (args[2]), GTK_VALUE_POINTER (args[3]), FuncData);
+  typedef void (*GMarshalFunc_VOID__INT_INT_INT_POINTER) (gpointer     data1,
+                                                          gint         arg_1,
+                                                          gint         arg_2,
+                                                          gint         arg_3,
+                                                          gpointer     arg_4,
+                                                          gpointer     data2);
+  register GMarshalFunc_VOID__INT_INT_INT_POINTER callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 5);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT_INT_INT_POINTER) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int (param_values + 1),
+            g_marshal_value_peek_int (param_values + 2),
+            g_marshal_value_peek_int (param_values + 3),
+            g_marshal_value_peek_pointer (param_values + 4),
+            data2);
+}
+
+/* VOID:UINT (dw_marshal.list:31) */
+
+/* BOOL:UINT,UINT,POINTER (dw_marshal.list:33) */
+void
+p_Dw_marshal_BOOLEAN__UINT_UINT_POINTER (GClosure     *closure,
+                                         GValue       *return_value,
+                                         guint         n_param_values,
+                                         const GValue *param_values,
+                                         gpointer      invocation_hint,
+                                         gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_UINT_POINTER) (gpointer     data1,
+                                                               guint        arg_1,
+                                                               guint        arg_2,
+                                                               gpointer     arg_3,
+                                                               gpointer     data2);
+  register GMarshalFunc_BOOLEAN__UINT_UINT_POINTER callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__UINT_UINT_POINTER) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_uint (param_values + 1),
+                       g_marshal_value_peek_uint (param_values + 2),
+                       g_marshal_value_peek_pointer (param_values + 3),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
 }
 
diff -urN dillo-0.6.6/src/dw_marshal.h dillo2-0.6.6/src/dw_marshal.h
--- dillo-0.6.6/src/dw_marshal.h	2002-03-13 05:08:46.000000000 -0700
+++ dillo2-0.6.6/src/dw_marshal.h	2003-04-21 12:35:50.000000000 -0600
@@ -1,21 +1,62 @@
-#ifndef __DW_MARSHAL_H__
-#define __DW_MARSHAL_H__
 
-#include <gtk/gtktypeutils.h>
-#include <gtk/gtkobject.h>
+#ifndef __p_Dw_marshal_MARSHAL_H__
+#define __p_Dw_marshal_MARSHAL_H__
 
-void p_Dw_marshal_NONE__INT_INT_INT (GtkObject * object,
-                                     GtkSignalFunc Func,
-                                     gpointer FuncData, GtkArg * args);
-void p_Dw_marshal_NONE__INT_INT_INT_POINTER (GtkObject * object,
-                                             GtkSignalFunc Func,
-                                             gpointer FuncData, GtkArg * args);
-
-/*
- * Marshal fuctions for standard link signals.
- */
-#define p_Dw_marshal_link_enter  p_Dw_marshal_NONE__INT_INT_INT
-#define p_Dw_marshal_link_button p_Dw_marshal_NONE__INT_INT_INT_POINTER
+#include	<glib-object.h>
 
+G_BEGIN_DECLS
+
+/* VOID:VOID (dw_marshal.list:25) */
+#define p_Dw_marshal_VOID__VOID	g_cclosure_marshal_VOID__VOID
+
+/* VOID:POINTER (dw_marshal.list:26) */
+#define p_Dw_marshal_VOID__POINTER	g_cclosure_marshal_VOID__POINTER
+
+/* VOID:POINTER,POINTER (dw_marshal.list:27) */
+extern void p_Dw_marshal_VOID__POINTER_POINTER (GClosure     *closure,
+                                                GValue       *return_value,
+                                                guint         n_param_values,
+                                                const GValue *param_values,
+                                                gpointer      invocation_hint,
+                                                gpointer      marshal_data);
+
+/* VOID:INT,INT (dw_marshal.list:28) */
+extern void p_Dw_marshal_VOID__INT_INT (GClosure     *closure,
+                                        GValue       *return_value,
+                                        guint         n_param_values,
+                                        const GValue *param_values,
+                                        gpointer      invocation_hint,
+                                        gpointer      marshal_data);
+
+/* VOID:INT,INT,INT (dw_marshal.list:29) */
+extern void p_Dw_marshal_VOID__INT_INT_INT (GClosure     *closure,
+                                            GValue       *return_value,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint,
+                                            gpointer      marshal_data);
+
+/* VOID:INT,INT,INT,POINTER (dw_marshal.list:30) */
+extern void p_Dw_marshal_VOID__INT_INT_INT_POINTER (GClosure     *closure,
+                                                    GValue       *return_value,
+                                                    guint         n_param_values,
+                                                    const GValue *param_values,
+                                                    gpointer      invocation_hint,
+                                                    gpointer      marshal_data);
+
+/* VOID:UINT (dw_marshal.list:31) */
+#define p_Dw_marshal_VOID__UINT	g_cclosure_marshal_VOID__UINT
+
+/* BOOL:UINT,UINT,POINTER (dw_marshal.list:33) */
+extern void p_Dw_marshal_BOOLEAN__UINT_UINT_POINTER (GClosure     *closure,
+                                                     GValue       *return_value,
+                                                     guint         n_param_values,
+                                                     const GValue *param_values,
+                                                     gpointer      invocation_hint,
+                                                     gpointer      marshal_data);
+#define p_Dw_marshal_BOOL__UINT_UINT_POINTER	p_Dw_marshal_BOOLEAN__UINT_UINT_POINTER
+
+G_END_DECLS
+
+#endif /* __p_Dw_marshal_MARSHAL_H__ */
 
-#endif /* __DW_MARSHAL_H__ */
diff -urN dillo-0.6.6/src/dw_marshal.list dillo2-0.6.6/src/dw_marshal.list
--- dillo-0.6.6/src/dw_marshal.list	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/src/dw_marshal.list	2003-04-21 12:35:28.000000000 -0600
@@ -0,0 +1,33 @@
+# see glib-genmarshal(1) for a detailed description of the file format,
+# possible parameter types are:
+#   VOID        indicates   no   return   type,  or  no  extra
+#               parameters. if VOID is used as  the  parameter
+#               list, no additional parameters may be present.
+#   BOOLEAN     for boolean types (gboolean)
+#   CHAR        for signed char types (gchar)
+#   UCHAR       for unsigned char types (guchar)
+#   INT         for signed integer types (gint)
+#   UINT        for unsigned integer types (guint)
+#   LONG        for signed long integer types (glong)
+#   ULONG       for unsigned long integer types (gulong)
+#   ENUM        for enumeration types (gint)
+#   FLAGS       for flag enumeration types (guint)
+#   FLOAT       for single-precision float types (gfloat)
+#   DOUBLE      for double-precision float types (gdouble)
+#   STRING      for string types (gchar*)
+#   BOXED       for boxed (anonymous but reference counted) types (GBoxed*)
+#   POINTER     for anonymous pointer types (gpointer)
+#   PARAM       for GParamSpec or derived types  (GParamSpec*)
+#   OBJECT      for GObject or derived types (GObject*)
+#   NONE        deprecated alias for VOID
+#   BOOL        deprecated alias for BOOLEAN
+
+VOID: VOID
+VOID: POINTER
+VOID: POINTER, POINTER
+VOID: INT, INT
+VOID: INT, INT, INT
+VOID: INT, INT, INT, POINTER
+VOID: UINT
+
+BOOL: UINT, UINT, POINTER
diff -urN dillo-0.6.6/src/dw_marshal.sh dillo2-0.6.6/src/dw_marshal.sh
--- dillo-0.6.6/src/dw_marshal.sh	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/src/dw_marshal.sh	2003-04-21 12:35:45.000000000 -0600
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+glib-genmarshal --body --stdinc --prefix=p_Dw_marshal dw_marshal.list > dw_marshal.c
+glib-genmarshal --header --stdinc --prefix=p_Dw_marshal dw_marshal.list > dw_marshal.h
diff -urN dillo-0.6.6/src/dw_page.c dillo2-0.6.6/src/dw_page.c
--- dillo-0.6.6/src/dw_page.c	2002-04-05 08:18:17.000000000 -0700
+++ dillo2-0.6.6/src/dw_page.c	2003-04-21 14:22:14.000000000 -0600
@@ -53,19 +53,19 @@
 static void Dw_page_draw              (DwWidget *page,
                                        DwRectangle *area,
                                        GdkEventExpose *event);
-static gint Dw_page_button_press      (DwWidget *widget,
+static gboolean Dw_page_button_press  (DwWidget *widget,
                                        gint32 x,
                                        gint32 y,
                                        GdkEventButton *event);
-static gint Dw_page_button_release    (DwWidget *widget,
+static gboolean Dw_page_button_release(DwWidget *widget,
                                        gint32 x,
                                        gint32 y,
                                        GdkEventButton *event);
-static gint Dw_page_motion_notify     (DwWidget *widget,
+static gboolean Dw_page_motion_notify (DwWidget *widget,
                                        gint32 x,
                                        gint32 y,
                                        GdkEventMotion *event);
-static gint Dw_page_leave_notify      (DwWidget *widget,
+static gboolean Dw_page_leave_notify  (DwWidget *widget,
                                        DwWidget *next_widget,
                                        GdkEventMotion *event);
 
@@ -77,10 +77,15 @@
 static void Dw_page_forall            (DwContainer *container,
                                        DwCallback callback,
                                        gpointer callback_data);
-static gint Dw_page_findtext          (DwContainer *container,
+static gboolean Dw_page_findtext      (DwContainer *container,
                                        gpointer FP, gpointer KP,
                                        gchar *NewKey);
 
+static DwIterator* Dw_page_iterator          (DwWidget *widget,
+                                              gint mask);
+static gboolean    Dw_page_iterator_next     (DwIterator *it);
+static DwIterator* Dw_page_iterator_clone    (DwIterator *it);
+
 static void Dw_page_rewrap            (DwPage *page);
 
 /*
@@ -117,25 +122,27 @@
 /*
  * Return the type of DwPage
  */
-GtkType a_Dw_page_get_type (void)
+GType a_Dw_page_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwPage",
-         sizeof (DwPage),
+      GTypeInfo info = {
          sizeof (DwPageClass),
-         (GtkClassInitFunc) Dw_page_class_init,
-         (GtkObjectInitFunc) Dw_page_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_page_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwPage),
+         0,
+         (GInstanceInitFunc) Dw_page_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_CONTAINER, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_CONTAINER, "DwPage",
+                                    &info, flags);
    }
-
    return type;
 }
 
@@ -189,6 +196,8 @@
    page->avail_width = 100;
    page->avail_ascent = 100;
    page->avail_descent = 0;
+
+   page->context = gdk_pango_context_get();
 }
 
 /*
@@ -211,41 +220,48 @@
     * --SG
     */
    page_signals[LINK_ENTERED] =
-      gtk_signal_new ("link_entered",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwPageClass, link_entered),
-                      p_Dw_marshal_link_enter,
-                      GTK_TYPE_NONE,
-                      3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);
+      g_signal_new ("link_entered",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwPageClass, link_entered),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT_INT,
+                    GTK_TYPE_NONE,
+                    3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);
    page_signals[LINK_PRESSED] =
-      gtk_signal_new ("link_pressed",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwPageClass, link_pressed),
-                      p_Dw_marshal_link_button,
-                      GTK_TYPE_NONE,
-                      4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
-                      GTK_TYPE_GDK_EVENT);
+      g_signal_new ("link_pressed",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwPageClass, link_pressed),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT_INT_POINTER,
+                    GTK_TYPE_NONE,
+                    4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
+                    GDK_TYPE_EVENT);
    page_signals[LINK_RELEASED] =
-      gtk_signal_new ("link_released",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwPageClass, link_released),
-                      p_Dw_marshal_link_button,
-                      GTK_TYPE_NONE,
-                      4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
-                      GTK_TYPE_GDK_EVENT);
+      g_signal_new ("link_released",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwPageClass, link_released),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT_INT_POINTER,
+                    GTK_TYPE_NONE,
+                    4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
+                    GDK_TYPE_EVENT);
    page_signals[LINK_CLICKED] =
-      gtk_signal_new ("link_clicked",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwPageClass, link_clicked),
-                      p_Dw_marshal_link_button,
-                      GTK_TYPE_NONE,
-                      4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
-                      GTK_TYPE_GDK_EVENT);
-   gtk_object_class_add_signals (object_class, page_signals, LAST_SIGNAL);
+      g_signal_new ("link_clicked",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwPageClass, link_clicked),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__INT_INT_INT_POINTER,
+                    GTK_TYPE_NONE,
+                    4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
+                    GDK_TYPE_EVENT);
 
    object_class->destroy = Dw_page_destroy;
 
@@ -262,6 +278,7 @@
    widget_class->button_release_event = Dw_page_button_release;
    widget_class->motion_notify_event = Dw_page_motion_notify;
    widget_class->leave_notify_event = Dw_page_leave_notify;
+   widget_class->iterator = Dw_page_iterator;
 
    container_class->add = Dw_page_add;
    container_class->remove = Dw_page_remove;
@@ -284,16 +301,16 @@
    DwPageWord *word;
    gint i;
 
-   DEBUG_MSG(10, "Dw_page_destroy\n");
+   DEBUG_MSG (10, "Dw_page_destroy\n");
 
    for (i = 0; i < page->num_words; i++) {
       word = &page->words[i];
-      if (word->content_type == DW_PAGE_CONTENT_WIDGET)
-         gtk_object_unref(GTK_OBJECT(word->content.widget));
-      else if (word->content_type == DW_PAGE_CONTENT_TEXT)
-         g_free(word->content.text);
-      else if (word->content_type == DW_PAGE_CONTENT_ANCHOR)
-         g_free(word->content.anchor);
+      if (word->content.type == DW_CONTENT_WIDGET)
+         gtk_object_unref (GTK_OBJECT(word->content.data.widget));
+      else if (word->content.type == DW_CONTENT_TEXT) {
+	 g_free(word->content.data.text.str);
+      } else if (word->content.type == DW_CONTENT_ANCHOR)
+         g_free (word->content.data.anchor);
 
       a_Dw_style_unref (word->style);
       a_Dw_style_unref (word->space_style);
@@ -307,7 +324,7 @@
    page->num_words = 0;
    page->num_lines = 0;
 
-   (* GTK_OBJECT_CLASS(parent_class)->destroy) (object);
+   GTK_OBJECT_CLASS(parent_class)->destroy (object);
 }
 
 
@@ -325,7 +342,7 @@
    DwPageLine *last_line;
    gint height;
 
-   Dw_page_rewrap(page);
+   Dw_page_rewrap (page);
 
    if (page->num_lines > 0) {
       last_line = &page->lines[page->num_lines - 1];
@@ -357,22 +374,24 @@
 static void Dw_page_get_word_extremes (DwPageWord *word,
                                        DwExtremes *extremes)
 {
-   if (word->content_type == DW_PAGE_CONTENT_WIDGET) {
-      if (DW_WIDGET_USES_HINTS (word->content.widget))
-         a_Dw_widget_get_extremes (word->content.widget, extremes);
+   if (word->content.type == DW_CONTENT_WIDGET) {
+      if (DW_WIDGET_USES_HINTS (word->content.data.widget))
+         a_Dw_widget_get_extremes (word->content.data.widget, extremes);
       else {
-         if (DW_STYLE_IS_PERCENTAGE (word->content.widget->style->width)) {
+         if (DW_STYLE_IS_PERCENTAGE
+             (word->content.data.widget->style->width)) {
             extremes->min_width = 0;
-            if (DW_WIDGET_HAS_CONTENT (word->content.widget))
+            if (DW_WIDGET_HAS_CONTENT (word->content.data.widget))
                extremes->max_width = DW_INFINITY;
             else
                extremes->max_width = 0;
-         } else if (DW_STYLE_IS_LENGTH (word->content.widget->style->width)) {
+         } else if (DW_STYLE_IS_LENGTH
+                    (word->content.data.widget->style->width)) {
             extremes->min_width = extremes->max_width =
-               DW_STYLE_GET_LENGTH(word->content.widget->style->width,
-                                   word->style->font);
+               DW_STYLE_GET_LENGTH (word->content.data.widget->style->width,
+                                    word->style->font);
          } else
-            a_Dw_widget_get_extremes (word->content.widget, extremes);
+            a_Dw_widget_get_extremes (word->content.data.widget, extremes);
       }
    } else {
       extremes->min_width = word->size.width;
@@ -449,21 +468,21 @@
             par_max += word_extremes.max_width + word->orig_space;
 
             DEBUG_MSG (1, "      word \"%s\": max_width = %d\n",
-                       word->content_type == DW_PAGE_CONTENT_TEXT ?
+                       word->content.type == DW_CONTENT_TEXT ?
                        word->content.text : "<no text>",
                        word_extremes.max_width);
          }
 
          if ( ( line->last_word > line->first_word &&
-                page->words[line->last_word - 1].content_type
-                == DW_PAGE_CONTENT_BREAK ) ||
+                page->words[line->last_word - 1].content.type
+                == DW_CONTENT_BREAK ) ||
               line_index == page->num_lines - 1 ) {
             word = &page->words[line->last_word - 1];
             par_max -= word->orig_space;
 
             DEBUG_MSG (2, "   par_max = %d, after word %d (\"%s\")\n",
                        par_max, line->last_word - 1,
-                       word->content_type == DW_PAGE_CONTENT_TEXT ?
+                       word->content.type == DW_CONTENT_TEXT ?
                        word->content.text : "<no text>");
 
             if (extremes->max_width < par_max)
@@ -508,13 +527,13 @@
 
    for (line_index = 0; line_index < page->num_lines; line_index++) {
       line = &(page->lines[line_index]);
-      x_cursor = Dw_page_line_total_x_offset(page, line);
+      x_cursor = Dw_page_line_total_x_offset (page, line);
 
       for (word_index = line->first_word; word_index < line->last_word;
            word_index++) {
          word = &(page->words[word_index]);
 
-         if (word->content_type == DW_PAGE_CONTENT_WIDGET) {
+         if (word->content.type == DW_CONTENT_WIDGET) {
 
             /* todo: justification within the line is done here! */
             child_allocation.x = x_cursor + allocation->x;
@@ -527,7 +546,7 @@
             child_allocation.width = word->size.width;
             child_allocation.ascent = word->size.ascent;
             child_allocation.descent = word->size.descent;
-            a_Dw_widget_size_allocate (word->content.widget,
+            a_Dw_widget_size_allocate (word->content.data.widget,
                                        &child_allocation);
          }
 
@@ -550,7 +569,7 @@
       if (page->wrap_ref == -1)
          page->wrap_ref = ref;
       else
-         page->wrap_ref = MIN(page->wrap_ref, ref);
+         page->wrap_ref = MIN (page->wrap_ref, ref);
    }
 }
 
@@ -644,11 +663,11 @@
 
    page = DW_PAGE (container);
 
-   for(word_index = 0; word_index < page->num_words; word_index++) {
+   for (word_index = 0; word_index < page->num_words; word_index++) {
       word = &page->words[word_index];
 
-      if (word->content_type == DW_PAGE_CONTENT_WIDGET)
-         (*callback) (word->content.widget, callback_data);
+      if (word->content.type == DW_CONTENT_WIDGET)
+         (*callback) (word->content.data.widget, callback_data);
    }
 }
 
@@ -667,7 +686,7 @@
    DwExtremes word_extremes;
 
    avail_width =
-      page->avail_width - p_Dw_style_box_diff_width(widget->style)
+      page->avail_width - p_Dw_style_box_diff_width (widget->style)
       - page->inner_padding;
    if (prefs.limit_text_width &&
        avail_width > widget->viewport->allocation.width - 10)
@@ -684,7 +703,7 @@
 
       if (page->num_words > 0) {
          last_word = &page->words[word_ind - 1];
-         if (last_word->content_type == DW_PAGE_CONTENT_BREAK) {
+         if (last_word->content.type == DW_CONTENT_BREAK) {
             /* last word is a break */
             new_line = TRUE;
             new_par = TRUE;
@@ -740,7 +759,7 @@
    if (new_line) {
       /* Add a new line. */
       page->num_lines++;
-      a_List_add(page->lines, page->num_lines, page->num_lines_max);
+      a_List_add (page->lines, page->num_lines, page->num_lines_max);
 
       last_line = &page->lines[page->num_lines - 1];
 
@@ -804,8 +823,8 @@
    Dw_page_get_word_extremes (word, &word_extremes);
    last_space = (word_ind > 0) ? page->words[word_ind - 1].orig_space : 0;
 
-   if (word->content_type == DW_PAGE_CONTENT_BREAK)
-      last_line->break_space = MAX (word->content.break_space,
+   if (word->content.type == DW_CONTENT_BREAK)
+      last_line->break_space = MAX (word->content.data.break_space,
                                     last_line->break_space);
 
    page->last_line_width += word->size.width;
@@ -824,7 +843,7 @@
 
    /* Finally, justify the line. Breaks are ignored, since the HTML
     * parser sometimes assignes the wrong style to them. (todo: ) */
-   if (word->content_type != DW_PAGE_CONTENT_BREAK) {
+   if (word->content.type != DW_CONTENT_BREAK) {
       switch (word->style->text_align) {
       case DW_STYLE_TEXT_ALIGN_LEFT:
       case DW_STYLE_TEXT_ALIGN_JUSTIFY:  /* see some lines above */
@@ -873,9 +892,9 @@
    gint32 avail_width, avail_ascent, avail_descent;
 
    avail_width =
-      page->avail_width - p_Dw_style_box_diff_width(DW_WIDGET(page)->style);
+      page->avail_width - p_Dw_style_box_diff_width (DW_WIDGET(page)->style);
    avail_ascent =
-      page->avail_ascent - p_Dw_style_box_diff_height(DW_WIDGET(page)->style);
+      page->avail_ascent - p_Dw_style_box_diff_height (DW_WIDGET(page)->style);
    avail_descent = page->avail_descent;
 
    if (DW_WIDGET_USES_HINTS (widget)) {
@@ -901,7 +920,7 @@
       if (widget->style->height == DW_STYLE_UNDEF_LENGTH) {
          size->ascent = requisition.ascent;
          size->descent = requisition.descent;
-      } else if (DW_STYLE_IS_LENGTH (widget->style->width)) {
+      } else if (DW_STYLE_IS_LENGTH (widget->style->height)) {
          size->ascent =
             DW_STYLE_GET_LENGTH (widget->style->height, widget->style->font)
             + p_Dw_style_box_diff_height (widget->style);
@@ -922,7 +941,7 @@
  * either when the viewport is resized, or when the size changes on one
  * of the child widgets.
  */
-static void Dw_page_rewrap(DwPage *page)
+static void Dw_page_rewrap (DwPage *page)
 {
    DwWidget *widget;
    gint word_index;
@@ -944,15 +963,16 @@
    for (; word_index < page->num_words; word_index++) {
       word = &page->words[word_index];
 
-      if (word->content_type == DW_PAGE_CONTENT_WIDGET)
-         Dw_page_calc_widget_size (page, word->content.widget, &word->size);
-      Dw_page_word_wrap(page, word_index);
-      if (word->content_type == DW_PAGE_CONTENT_WIDGET)
-         word->content.widget->parent_ref = page->num_lines - 1;
-
-      if ( word->content_type == DW_PAGE_CONTENT_ANCHOR ) {
-         p_Dw_widget_set_anchor(widget, word->content.anchor,
-                                page->lines[page->num_lines - 1].top);
+      if (word->content.type == DW_CONTENT_WIDGET)
+         Dw_page_calc_widget_size (page, word->content.data.widget,
+                                   &word->size);
+      Dw_page_word_wrap (page, word_index);
+      if (word->content.type == DW_CONTENT_WIDGET)
+         word->content.data.widget->parent_ref = page->num_lines - 1;
+
+      if ( word->content.type == DW_CONTENT_ANCHOR ) {
+         p_Dw_widget_set_anchor (widget, word->content.data.anchor,
+                                 page->lines[page->num_lines - 1].top);
       }
    }
 }
@@ -987,90 +1007,116 @@
 
    widget = DW_WIDGET (page);
    window = DW_WIDGET_WINDOW (widget);
-   x_cursor =
-      p_Dw_widget_x_world_to_viewport (widget,
-                                       widget->allocation.x +
-                                       Dw_page_line_total_x_offset(page,line));
-   y_cursor =
-      p_Dw_widget_y_world_to_viewport (widget,
-                                       widget->allocation.y
-                                       + line->top + line->ascent);
+   x_cursor = widget->allocation.x + Dw_page_line_total_x_offset(page, line);
+   y_cursor = widget->allocation.y + line->top + line->ascent;
 
    for (word_index = line->first_word; word_index < line->last_word;
         word_index++) {
       word = &page->words[word_index];
       diff = 0;
-      switch (word->content_type) {
-      case DW_PAGE_CONTENT_TEXT:
+      switch (word->content.type) {
+      case DW_CONTENT_TEXT:
          /* Adjust the text baseline if the word is <SUP>-ed or <SUB>-ed */
          if (word->style->SubSup == TEXT_SUB)
             diff = word->size.ascent / 2;
          else if (word->style->SubSup == TEXT_SUP)
             diff -= word->size.ascent / 3;
 
-         gdk_draw_string(window,
-                         word->style->font->font,
-                         word->style->color->gc,
-                         x_cursor,
-                         y_cursor + diff,
-                         word->content.text);
+	 {
+	   GList *items;
+	   PangoGlyphString *glyphs;
+	   PangoAttrList *attr_list;
+	   PangoAttribute *attr;
+	   size_t len;
+
+	   glyphs = pango_glyph_string_new();
+
+	   attr_list = pango_attr_list_new();
+	   
+	   attr = pango_attr_font_desc_new(word->style->font->font_desc);
+	   attr->start_index = 0;
+	   attr->end_index = 1;
+	   pango_attr_list_insert(attr_list, attr);
+
+	   len = strlen(word->content.data.text.str);
+
+	   /* Shape the text into glyphs */
+	   items = pango_itemize(page->context, word->content.data.text.str, 0, len, attr_list, NULL);
+	   pango_shape(word->content.data.text.str, len, &(((PangoItem *)items->data)->analysis), glyphs);
+	   
+	   while (items)
+	     {
+	       GList *next = items->next;
+	       pango_item_free (items->data);
+	       g_list_free_1 (items);
+	       items = next;
+	     }
+	   
+	   gdk_draw_glyphs(window, word->style->color->gc,
+			   word->content.data.text.font,
+			   x_cursor, y_cursor + diff,
+			   glyphs);
+
+	   pango_attr_list_unref(attr_list);
+	   pango_glyph_string_free(glyphs);
+	 }
 
          /* underline */
          if (word->style->uline)
-            gdk_draw_line(window,
-                          word->style->color->gc,
-                          x_cursor,
-                          y_cursor + 1 + diff,
-                          x_cursor + word->size.width - 1,
-                          y_cursor + 1 + diff);
+            gdk_draw_line (window,
+                           word->style->color->gc,
+                           x_cursor,
+                           y_cursor + 1 + diff,
+                           x_cursor + word->size.width - 1,
+                           y_cursor + 1 + diff);
          if (word_index + 1 < line->last_word && word->space_style->uline)
-            gdk_draw_line(window,
-                          word->style->color->gc,
-                          x_cursor + word->size.width,
-                          y_cursor + 1 + diff,
-                          x_cursor + word->size.width + word->eff_space - 1,
-                          y_cursor + 1 + diff);
+            gdk_draw_line (window,
+                           word->style->color->gc,
+                           x_cursor + word->size.width,
+                           y_cursor + 1 + diff,
+                           x_cursor + word->size.width + word->eff_space - 1,
+                           y_cursor + 1 + diff);
 
          /* strike-through */
          if (word->style->strike)
-            gdk_draw_line(window,
-                          word->style->color->gc,
-                          x_cursor,
-                          y_cursor - word->size.ascent / 2 + diff,
-                          x_cursor + word->size.width - 1,
-                          y_cursor - word->size.ascent / 2 + diff);
+            gdk_draw_line (window,
+                           word->style->color->gc,
+                           x_cursor,
+                           y_cursor - word->size.ascent / 2 + diff,
+                           x_cursor + word->size.width - 1,
+                           y_cursor - word->size.ascent / 2 + diff);
          if (word_index + 1 < line->last_word && word->space_style->strike)
-            gdk_draw_line(window,
-                          word->style->color->gc,
-                          x_cursor + word->size.width,
-                          y_cursor - word->size.ascent / 2 + diff,
-                          x_cursor + word->size.width + word->eff_space - 1,
-                          y_cursor - word->size.ascent / 2 + diff);
+            gdk_draw_line (window,
+                           word->style->color->gc,
+                           x_cursor + word->size.width,
+                           y_cursor - word->size.ascent / 2 + diff,
+                           x_cursor + word->size.width + word->eff_space - 1,
+                           y_cursor - word->size.ascent / 2 + diff);
 
          break;
 
-      case DW_PAGE_CONTENT_WIDGET:
-         child = word->content.widget;
+      case DW_CONTENT_WIDGET:
+         child = word->content.data.widget;
          if (p_Dw_widget_intersect (child, area, &child_area))
             a_Dw_widget_draw (child, &child_area, event);
 
          break;
 
-      case DW_PAGE_CONTENT_ANCHOR: case DW_PAGE_CONTENT_BREAK:
+      case DW_CONTENT_ANCHOR: case DW_CONTENT_BREAK:
          /* nothing - an anchor/break isn't seen */
          /* BUG: sometimes anchors have x_space;
           * we subtract that just in case --EG */
          x_cursor -= word->size.width + word->eff_space;
 #if 0
          /* Useful for testing: draw breaks. */
-         if (word->content_type == DW_PAGE_CONTENT_BREAK)
+         if (word->content.type == DW_CONTENT_BREAK)
             gdk_draw_rectangle (window, word->style->color->gc, TRUE,
-                                Dw_widget_x_world_to_viewport(widget,
+                                Dw_widget_x_world_to_viewport (widget,
                                    widget->allocation.x +
                                       Dw_page_line_total_x_offset(page, line)),
                                 y_cursor + line->descent,
                                 widget->allocation.width -
-                                   Dw_style_box_diff_width(widget->style),
+                                   Dw_style_box_diff_width (widget->style),
                                 word->content.break_space);
 #endif
          break;
@@ -1086,7 +1132,7 @@
 /*
  * Find the first line index that includes y, relative to top of widget.
  */
-static gint Dw_page_find_line_index(DwPage *page, gint y)
+static gint Dw_page_find_line_index (DwPage *page, gint y)
 {
    gint max_index = page->num_lines - 1;
    gint step, index, low = 0;
@@ -1129,7 +1175,7 @@
    p_Dw_widget_draw_widget_box (widget, area);
 
    page = DW_PAGE (widget);
-   line_index = Dw_page_find_line_index(page, area->y);
+   line_index = Dw_page_find_line_index (page, area->y);
 
    for (; line_index < page->num_lines; line_index++) {
       line = &(page->lines[line_index]);
@@ -1144,20 +1190,20 @@
 /*
  * Find a link given a coordinate location relative to the window
  */
-static gint Dw_page_find_link(DwPage *page, gint x, gint y)
+static gint Dw_page_find_link (DwPage *page, gint x, gint y)
 {
    gint line_index, word_index;
    gint x_cursor, last_x_cursor;
    DwPageLine *line;
    DwPageWord *word;
 
-   if ( (line_index = Dw_page_find_line_index(page, y)) >= page->num_lines )
+   if ( (line_index = Dw_page_find_line_index (page, y)) >= page->num_lines )
       return -1;
    line = &page->lines[line_index];
    if (line->top + line->ascent + line->descent <= y)
       return -1;
 
-   x_cursor = Dw_page_line_total_x_offset(page, line);
+   x_cursor = Dw_page_line_total_x_offset (page, line);
    for (word_index = line->first_word; word_index < line->last_word;
         word_index++) {
       word = &page->words[word_index];
@@ -1174,22 +1220,20 @@
 /*
  * Standard Dw function.
  */
-static gint Dw_page_button_press  (DwWidget *widget,
-                                   gint32 x,
-                                   gint32 y,
-                                   GdkEventButton *event)
+static gboolean Dw_page_button_press (DwWidget *widget, gint32 x, gint32 y,
+                                      GdkEventButton *event)
 {
    DwPage *page = DW_PAGE (widget);
 
 #ifdef VERBOSE
-   g_print("Dw_page_button_press: button (%d, %d) +%d\n",
-           x, y, button->button);
+   g_print ("Dw_page_button_press: button (%d, %d) +%d\n",
+            x, y, event->button);
 #endif
 
-   page->link_pressed = Dw_page_find_link(page, x, y);
+   page->link_pressed = Dw_page_find_link (page, x, y);
    if (page->link_pressed >= 0) {
-      gtk_signal_emit (GTK_OBJECT (widget), page_signals[LINK_PRESSED],
-                       page->link_pressed, -1, -1, event);
+      g_signal_emit (G_OBJECT (widget), page_signals[LINK_PRESSED], 0,
+                     page->link_pressed, -1, -1, event);
       return TRUE;
    } else
       return FALSE;
@@ -1199,42 +1243,40 @@
 /*
  * Standard Dw function.
  */
-static gint Dw_page_button_release(DwWidget *widget,
-                                   gint32 x,
-                                   gint32 y,
-                                   GdkEventButton *event)
+static gboolean Dw_page_button_release (DwWidget *widget, gint32 x, gint32 y,
+                                        GdkEventButton *event)
 {
    DwPage *page = DW_PAGE (widget);
    gint link_pressed, link_released;
 
 #ifdef VERBOSE
-   g_print("Dw_page_button_release: button (%d, %d) +%d\n",
-           x, y, event->button);
+   g_print ("Dw_page_button_release: button (%d, %d) +%d\n",
+            x, y, event->button);
 #endif
 
    link_pressed = page->link_pressed;
-   link_released = Dw_page_find_link(page, x, y);
+   link_released = Dw_page_find_link (page, x, y);
    page->link_pressed = -1;
 
    if (link_released >= 0) {
-      gtk_signal_emit (GTK_OBJECT (widget), page_signals[LINK_RELEASED],
-                       link_released, -1, -1, event);
+      g_signal_emit (G_OBJECT (widget), page_signals[LINK_RELEASED], 0,
+                     link_released, -1, -1, event);
 
       if (link_pressed == link_released) {
-         gtk_signal_emit (GTK_OBJECT (widget), page_signals[LINK_CLICKED],
-                          link_released, -1, -1, event);
+         g_signal_emit (G_OBJECT (widget), page_signals[LINK_CLICKED], 0,
+                        link_released, -1, -1, event);
       }
 
       return TRUE;
-   } else
-      return FALSE;
+   }
+   return FALSE;
 }
 
 
 /*
  * Standard Dw function.
  */
-static gint Dw_page_motion_notify (DwWidget *widget,
+static gboolean Dw_page_motion_notify (DwWidget *widget,
                                    gint32 x,
                                    gint32 y,
                                    GdkEventMotion *event)
@@ -1243,15 +1285,15 @@
    gint link, link_old;
 
    link_old = page->hover_link;
-   link = Dw_page_find_link(page, x, y);
+   link = Dw_page_find_link (page, x, y);
    page->hover_link = link;
 
    if (link != link_old) {
-      gtk_signal_emit (GTK_OBJECT (widget), page_signals[LINK_ENTERED],
-                       link, -1, -1);
+      g_signal_emit (G_OBJECT (widget), page_signals[LINK_ENTERED], 0,
+                     link, -1, -1);
       return TRUE;
-   } else
-      return (link != -1);
+   }
+   return (link != -1);
 }
 
 
@@ -1266,8 +1308,8 @@
 
    if (page->hover_link != -1) {
       page->hover_link = -1;
-      gtk_signal_emit (GTK_OBJECT (widget), page_signals[LINK_ENTERED],
-                       -1, -1, -1);
+      g_signal_emit (G_OBJECT (widget), page_signals[LINK_ENTERED], 0,
+                     -1, -1, -1);
    }
 
    return FALSE;
@@ -1277,16 +1319,16 @@
 /*
  * Add a new word (text, widget etc.) to a page.
  */
-static DwPageWord *Dw_page_add_word(DwPage *page,
-                                    gint width,
-                                    gint ascent,
-                                    gint descent,
-                                    DwStyle *style)
+static DwPageWord *Dw_page_add_word (DwPage *page,
+                                     gint width,
+                                     gint ascent,
+                                     gint descent,
+                                     DwStyle *style)
 {
    DwPageWord *word;
 
    page->num_words++;
-   a_List_add(page->words, page->num_words, page->num_words_max);
+   a_List_add (page->words, page->num_words, page->num_words_max);
 
    word = &page->words[page->num_words - 1];
    word->size.width = width;
@@ -1308,14 +1350,55 @@
  * Add a word to the page structure. Stashes the argument pointer in
  * the page data structure so that it will be deallocated on destroy.
  */
-void a_Dw_page_add_text(DwPage *page, char *text, DwStyle *style)
+void a_Dw_page_add_text (DwPage *page, char *text, DwStyle *style)
 {
    DwPageWord *word;
-   gint width, ascent, descent;
+   gint width, ascent, descent, len;
+   GList *items;
+   PangoGlyphString *glyphs;
+   PangoRectangle rect;
+   PangoFont *font;
+   PangoAttrList *attr_list;
+   PangoAttribute *attr;
+
+   if (*text == '\0')
+      return;
+
+   if (!g_utf8_validate(text, -1, NULL)) {
+      g_warning("Invalid UTF-8\n");
+   }
+
+   glyphs = pango_glyph_string_new();
+   len = strlen(text);
+
+   attr_list = pango_attr_list_new();
 
-   width = gdk_string_width(style->font->font, text);
-   ascent = style->font->font->ascent;
-   descent = style->font->font->descent;
+   attr = pango_attr_font_desc_new(style->font->font_desc);
+   attr->start_index = 0;
+   attr->end_index = 1;
+   pango_attr_list_insert(attr_list, attr);
+
+   /* Shape the text into glyphs */
+   items = pango_itemize(page->context, text, 0, len, attr_list, NULL);
+   pango_shape(text, len, &(((PangoItem *)items->data)->analysis), glyphs);
+
+   while (items)
+     {
+       GList *next = items->next;
+       pango_item_free (items->data);
+       g_list_free_1 (items);
+       items = next;
+     }
+
+   font = pango_context_load_font(page->context, style->font->font_desc);
+
+   /* Get the sizes */
+   pango_glyph_string_extents(glyphs, font, NULL, &rect);
+   width = rect.width / PANGO_SCALE;
+   ascent = PANGO_ASCENT(rect) / PANGO_SCALE;
+   descent = PANGO_DESCENT(rect) / PANGO_SCALE;
+
+   pango_glyph_string_free(glyphs);
 
    /* In case of a sub or super script we increase the word's height and
     * potentially the line's height.
@@ -1325,10 +1408,13 @@
    else if (style->SubSup == TEXT_SUP)
       ascent += (ascent / 3);
 
-   word = Dw_page_add_word(page, width, ascent, descent, style);
-   word->content_type = DW_PAGE_CONTENT_TEXT;
-   word->content.text = text;
+   word = Dw_page_add_word (page, width, ascent, descent, style);
+   word->content.type = DW_CONTENT_TEXT;
+   word->content.data.text.str = text;
+   word->content.data.text.font = font;
    Dw_page_word_wrap (page, page->num_words - 1);
+
+   pango_attr_list_unref(attr_list);
 }
 
 /*
@@ -1345,13 +1431,14 @@
    a_Dw_widget_set_style (widget, style);
 
    Dw_page_calc_widget_size (page, widget, &size);
-   word = Dw_page_add_word(page, size.width, size.ascent, size.descent, style);
+   word =
+      Dw_page_add_word (page, size.width, size.ascent, size.descent, style);
 
-   word->content_type = DW_PAGE_CONTENT_WIDGET;
-   word->content.widget = widget;
+   word->content.type = DW_CONTENT_WIDGET;
+   word->content.data.widget = widget;
 
    Dw_page_word_wrap (page, page->num_words - 1);
-   word->content.widget->parent_ref = page->num_lines - 1;
+   word->content.data.widget->parent_ref = page->num_lines - 1;
 }
 
 
@@ -1359,24 +1446,24 @@
  * Add an anchor to the page. name is copied, so no strdup is neccessary for
  * the caller.
  */
-void a_Dw_page_add_anchor(DwPage *page, const char *name, DwStyle *style)
+void a_Dw_page_add_anchor (DwPage *page, const char *name, DwStyle *style)
 {
    DwPageWord *word;
 
-   word = Dw_page_add_word(page, 0, 0, 0, style);
-   word->content_type = DW_PAGE_CONTENT_ANCHOR;
-   word->content.anchor = g_strdup(name);
+   word = Dw_page_add_word (page, 0, 0, 0, style);
+   word->content.type = DW_CONTENT_ANCHOR;
+   word->content.data.anchor = g_strdup (name);
    Dw_page_word_wrap (page, page->num_words - 1);
 
-   p_Dw_widget_set_anchor(DW_WIDGET(page), word->content.anchor,
-                          page->lines[page->num_lines - 1].top);
+   p_Dw_widget_set_anchor (DW_WIDGET(page), word->content.data.anchor,
+                           page->lines[page->num_lines - 1].top);
 }
 
 
 /*
  * ?
  */
-void a_Dw_page_add_space(DwPage *page, DwStyle *style)
+void a_Dw_page_add_space (DwPage *page, DwStyle *style)
 {
    gint nl, nw;
    gint space;
@@ -1400,7 +1487,7 @@
 /*
  * Cause a paragraph break
  */
-void a_Dw_page_add_parbreak(DwPage *page, gint space, DwStyle *style)
+void a_Dw_page_add_parbreak (DwPage *page, gint space, DwStyle *style)
 {
    DwPageWord *word, *word2;
    DwWidget *widget;
@@ -1421,25 +1508,25 @@
          way that the space is in any case visible. */
 
       /* Find the widget where to adjust the break_space. */
-      for (widget = DW_WIDGET(page);
+      for (widget = DW_WIDGET (page);
            widget->parent && DW_IS_PAGE (widget->parent);
            widget = widget->parent) {
-         page2 = DW_PAGE(widget->parent);
+         page2 = DW_PAGE (widget->parent);
          if (page2->list_item)
-            isfirst = (page2->words[1].content_type == DW_PAGE_CONTENT_WIDGET
-                       && page2->words[1].content.widget == widget);
+            isfirst = (page2->words[1].content.type == DW_CONTENT_WIDGET
+                       && page2->words[1].content.data.widget == widget);
          else
-            isfirst = (page2->words[0].content_type == DW_PAGE_CONTENT_WIDGET
-                        && page2->words[0].content.widget == widget);
+            isfirst = (page2->words[0].content.type == DW_CONTENT_WIDGET
+                        && page2->words[0].content.data.widget == widget);
          if (!isfirst) {
             /* The page we searched for has been found. */
             lineno = widget->parent_ref;
             if (lineno > 0 &&
                 (word2 = &page2->words[page2->lines[lineno - 1].first_word]) &&
-                word2->content_type == DW_PAGE_CONTENT_BREAK) {
-               if(word2->content.break_space < space) {
-                  word2->content.break_space = space;
-                  p_Dw_widget_queue_resize (DW_WIDGET(page2), lineno, FALSE);
+                word2->content.type == DW_CONTENT_BREAK) {
+               if (word2->content.data.break_space < space) {
+                  word2->content.data.break_space = space;
+                  p_Dw_widget_queue_resize (DW_WIDGET (page2), lineno, FALSE);
                   page2->must_queue_resize = FALSE;
                }
             }
@@ -1453,14 +1540,15 @@
 
    /* Another break before? */
    if ((word = &page->words[page->num_words - 1]) &&
-       word->content_type == DW_PAGE_CONTENT_BREAK) {
-      word->content.break_space = MAX (word->content.break_space, space);
+       word->content.type == DW_CONTENT_BREAK) {
+      word->content.data.break_space =
+         MAX (word->content.data.break_space, space);
       return;
    }
 
-   word = Dw_page_add_word(page, 0, 0, 0, style);
-   word->content_type = DW_PAGE_CONTENT_BREAK;
-   word->content.break_space = space;
+   word = Dw_page_add_word (page, 0, 0, 0, style);
+   word->content.type = DW_CONTENT_BREAK;
+   word->content.data.break_space = space;
    Dw_page_word_wrap (page, page->num_words - 1);
 }
 
@@ -1471,10 +1559,11 @@
 {
    DwPageWord *word;
 
-   word = Dw_page_add_word(page, 0, style->font->font->ascent,
-                           style->font->font->descent, style);
-   word->content_type = DW_PAGE_CONTENT_BREAK;
-   word->content.break_space = 0;
+   /* word = Dw_page_add_word (page, 0, style->font->font->ascent,
+                            style->font->font->descent, style); */
+   word = Dw_page_add_word(page, 0, 0, 0, style);
+   word->content.type = DW_CONTENT_BREAK;
+   word->content.data.break_space = 0;
    word->style = style;
    //a_Dw_style_ref (style);
    Dw_page_word_wrap (page, page->num_words - 1);
@@ -1504,7 +1593,7 @@
 void a_Dw_page_flush (DwPage *page)
 {
    if (page->must_queue_resize) {
-      p_Dw_widget_queue_resize (DW_WIDGET(page), -1, TRUE);
+      p_Dw_widget_queue_resize (DW_WIDGET (page), -1, TRUE);
       page->must_queue_resize = FALSE;
    }
 }
@@ -1514,9 +1603,9 @@
  * Find the text in the page.
  * (Standar DwContainer function)    -- todo: move near forall
  */
-static gint Dw_page_findtext(DwContainer *container,
-                             gpointer FP, gpointer KP,
-                             gchar *NewKey)
+static gboolean Dw_page_findtext (DwContainer *container,
+                                  gpointer FP, gpointer KP,
+                                  gchar *NewKey)
 {
    gint i;
    DwPageWord *word;
@@ -1525,7 +1614,7 @@
 
    g_return_val_if_fail ((DW_WIDGET(page))->viewport != NULL, 0);
    if (!NewKey || !*NewKey)
-      return 0;
+      return FALSE;
 
    if ( !(F = *(FindData**)FP) )
       *(FindData **)FP = F = g_new0(FindData, 1);
@@ -1555,17 +1644,17 @@
       case F_Seek:
          for (   ; F->WordNum < page->num_words; F->WordNum++) {
             word = &page->words[F->WordNum];
-            if (word->content_type == DW_PAGE_CONTENT_TEXT &&
-                a_Findtext_compare(word->content.text, F->Key)) {
+            if (word->content.type == DW_CONTENT_TEXT &&
+                a_Findtext_compare(word->content.data.text.str, F->Key)) {
                F->State = F_GetPos;
                break;
-            } else if (word->content_type == DW_PAGE_CONTENT_WIDGET &&
-                       DW_IS_CONTAINER (word->content.widget)) {
+            } else if (word->content.type == DW_CONTENT_WIDGET &&
+                       DW_IS_CONTAINER (word->content.data.widget)) {
                if ( a_Dw_container_findtext(
-                       DW_CONTAINER(word->content.widget),
+                       DW_CONTAINER(word->content.data.widget),
                        (gpointer)&F->next, (gpointer)F->Key, NewKey) ) {
                   F->State = F_Seek;
-                  return 1;
+                  return TRUE;
                }
             }
          }
@@ -1585,17 +1674,58 @@
          a_Dw_widget_scroll_to(DW_WIDGET (page), F->Key->y_pos);
          //g_print(">>>[Wn %d]\n", F->WordNum);
          F->State = F_Seek;
-         return 1;
+         return TRUE;
       case F_End:
          /* free memory */
          if (!KP && F->Key)
             a_Findtext_key_free(F->Key);
          g_free(F);
          *(FindData **)FP = NULL;
-         return 0;
+         return FALSE;
       }
    }
 
    /* compiler happiness */
-   return 0;
+   return FALSE;
 }
+
+
+static DwIterator *Dw_page_iterator (DwWidget *widget,
+                                     gint mask)
+{
+   DwIteratorInt *it = g_new (DwIteratorInt, 1);
+   it->it.widget = widget;
+   it->it.mask = mask;
+   it->it.content.type = DW_CONTENT_START;
+   it->it.next = Dw_page_iterator_next;
+   it->it.clone = Dw_page_iterator_clone;
+   it->it.free = p_Dw_iterator_free_std;
+   it->pos = -1;
+   return (DwIterator*)it;
+}
+
+static gboolean Dw_page_iterator_next (DwIterator *it)
+{
+   DwPage *page = DW_PAGE (it->widget);
+   DwIteratorInt *ii = (DwIteratorInt*)it;
+
+   do {
+      ii->pos++;
+      if (ii->pos >= page->num_words) {
+         it->content.type = DW_CONTENT_END;
+         return FALSE;
+      }
+   } while ((page->words[ii->pos].content.type & it->mask) == 0);
+
+   it->content = page->words[ii->pos].content;
+   return TRUE;
+}
+
+
+static DwIterator* Dw_page_iterator_clone (DwIterator *it)
+{
+   DwIteratorInt *it2 = g_new (DwIteratorInt, 1);
+   *it2 = *(DwIteratorInt*)it;
+   return (DwIterator*)it2;
+}
+
diff -urN dillo-0.6.6/src/dw_page.h dillo2-0.6.6/src/dw_page.h
--- dillo-0.6.6/src/dw_page.h	2002-03-11 09:45:00.000000000 -0700
+++ dillo2-0.6.6/src/dw_page.h	2003-04-21 12:35:55.000000000 -0600
@@ -46,10 +46,6 @@
                              paragraph start */
 };
 
-#define DW_PAGE_CONTENT_TEXT   0
-#define DW_PAGE_CONTENT_WIDGET 1
-#define DW_PAGE_CONTENT_ANCHOR 2
-#define DW_PAGE_CONTENT_BREAK  3
 
 struct _DwPageWord {
    /* todo: perhaps add a x_left? */
@@ -59,15 +55,7 @@
    gint32 eff_space;  /* effective space, set by Dw_page_word_wrap,
                          used for drawing etc. */
 
-   /* This is a variant record (i.e. it could point to a widget
-    * instead of just being text). */
-   gint content_type;
-   union {
-      char *text;
-      DwWidget *widget;
-      char *anchor;
-      gint break_space;
-   } content;
+   DwContent content;
 
    DwStyle *style;
    DwStyle *space_style; /* initially the same as of the word, later
@@ -109,6 +97,8 @@
 
    /* The link under the button */
    gint hover_link;
+
+   PangoContext *context;
 };
 
 
diff -urN dillo-0.6.6/src/dw_style.c dillo2-0.6.6/src/dw_style.c
--- dillo-0.6.6/src/dw_style.c	2002-05-27 19:14:03.000000000 -0600
+++ dillo2-0.6.6/src/dw_style.c	2003-04-21 12:35:56.000000000 -0600
@@ -241,51 +241,36 @@
  */
 static void Dw_style_font_realize (DwStyleFont *font, gboolean try_all)
 {
-   char fontname[256], *ItalicChar;
+   PangoLayout *layout;
 
-   ItalicChar = prefs.use_oblique ? "o" : "i";
-   sprintf (fontname, "-*-%s-%s-%s-*-*-%d-*-75-75-*-*-iso8859-1",
-            font->name,
-            font->bold ? "bold" : "medium",
-            font->italic ? ItalicChar : "r",
-            font->size);
-   font->font = gdk_font_load(fontname);
-
-   if (font->font == NULL && font->italic) {
-      sprintf(fontname, "-*-%s-%s-%s-*-*-%d-*-75-75-*-*-iso8859-1",
-              font->name,
-              font->bold ? "bold" : "medium",
-              (*ItalicChar == 'o') ? "i" : "o",
-              font->size);
-      font->font = gdk_font_load(fontname);
-   }
-
-   if (try_all) {
-      if (font->font == NULL) {
-         /* Can't load the font - substitute the default instead. */
-         font->font =
-            gdk_font_load
-            ("-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1");
-      }
+   font->font_desc = pango_font_description_new();
 
-      if (font->font == NULL) {
-         /* Try another platform-font that should be available. (iPaq) */
-         font->font =
-            gdk_font_load
-            ("-misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1");
-      }
+   if (font->font_desc) {
+      pango_font_description_set_family(font->font_desc, font->name);
 
-      if (font->font == NULL) {
-         /* Can't load any suitable font!  */
-         g_warning ("Can't load any ISO8859-1 font!?! :(");
-         font->font =
-            gdk_font_load("-adobe-helvetica-*-*-*--*-*-*-*-*-*-*-*");
+      if(font->italic) {
+         pango_font_description_set_style(font->font_desc,
+                                          (prefs.use_oblique ?
+                                           PANGO_STYLE_OBLIQUE :
+                                           PANGO_STYLE_ITALIC));
       }
-   }
 
-   if (font->font) {
-      font->space_width = gdk_char_width (font->font, ' ');
-      font->x_height = gdk_char_height (font->font, 'x');
+      if(font->bold)
+         pango_font_description_set_weight(font->font_desc, PANGO_WEIGHT_BOLD);
+
+      pango_font_description_set_size(font->font_desc,
+                                      PANGO_SCALE * font->size);
+
+      /* Get space width */
+      layout = pango_layout_new(gdk_pango_context_get());
+      pango_layout_set_font_description(layout, font->font_desc);
+      pango_layout_set_text(layout, " ", 1);
+      pango_layout_get_pixel_size(layout, &font->space_width, NULL);
+
+      /* Get x_height */
+      pango_layout_set_text(layout, "x", 1);
+      pango_layout_get_pixel_size(layout, NULL, &font->x_height);
+      g_object_unref(layout);
    }
 }
 
@@ -300,7 +285,7 @@
    return (font1->size == font2->size &&
            EQUIV (font1->bold, font2->bold) &&
            EQUIV (font1->italic, font2->italic) &&
-           strcmp(font1->name, font2->name) == 0);
+           strcmp (font1->name, font2->name) == 0);
 }
 
 
@@ -347,7 +332,7 @@
       font->ref_count = 0;
 
       Dw_style_font_realize (font, try_all);
-      if (font->font) {
+      if (font->font_desc) {
          g_hash_table_insert (fonts_table, font, font);
          return font;
       } else {
@@ -386,10 +371,10 @@
    char *comma, *list, *current;
 
    font_attrs2 = *font_attrs;
-   current = list = g_strdup(font_attrs->name);
+   current = list = g_strdup (font_attrs->name);
 
    while (current && (font == NULL)) {
-      comma = strchr(current, ',');
+      comma = strchr (current, ',');
       if (comma) *comma = 0;
 
       font_attrs2.name = current;
@@ -425,7 +410,7 @@
 {
    g_hash_table_remove (fonts_table, font);
    g_free (font->name);
-   gdk_font_unref (font->font);
+   pango_font_description_free(font->font_desc);
    g_free (font);
 }
 
@@ -642,7 +627,7 @@
    color->red = red;
    color->green = green;
    color->blue = blue;
-   gdk_color_alloc(gdk_window_get_colormap (window), color);
+   gdk_color_alloc (gdk_window_get_colormap (window), color);
 
    *gc = gdk_gc_new (window);
    gdk_gc_set_foreground (*gc, color);
@@ -657,7 +642,7 @@
 {
    DwStyleColor *color;
 
-   color = g_hash_table_lookup (colors_table, GINT_TO_POINTER(color_val));
+   color = g_hash_table_lookup (colors_table, GINT_TO_POINTER (color_val));
    if (color == NULL) {
       color = g_new (DwStyleColor, 1);
       color->ref_count = 0;
@@ -665,7 +650,7 @@
 
       Dw_style_color_create (color_val, window,
                              &color->color, &color->gc, 0);
-      g_hash_table_insert (colors_table, GINT_TO_POINTER(color_val), color);
+      g_hash_table_insert (colors_table, GINT_TO_POINTER (color_val), color);
    }
 
    return color;
@@ -676,7 +661,7 @@
  */
 static void Dw_style_color_remove (DwStyleColor *color)
 {
-   g_hash_table_remove (colors_table, GINT_TO_POINTER(color->color_val));
+   g_hash_table_remove (colors_table, GINT_TO_POINTER (color->color_val));
    gdk_gc_destroy (color->gc);
    g_free (color);
 }
@@ -691,7 +676,8 @@
 {
    DwStyleShadedColor *color;
 
-   color = g_hash_table_lookup(shaded_colors_table,GINT_TO_POINTER(color_val));
+   color =
+      g_hash_table_lookup (shaded_colors_table, GINT_TO_POINTER (color_val));
    if (color == NULL) {
       color = g_new (DwStyleShadedColor, 1);
       color->ref_count = 0;
@@ -704,7 +690,7 @@
       Dw_style_color_create (color_val, window,
                              &color->color_light, &color->gc_light, +1);
       g_hash_table_insert (shaded_colors_table,
-                           GINT_TO_POINTER(color_val), color);
+                           GINT_TO_POINTER (color_val), color);
    }
 
    return color;
@@ -715,7 +701,8 @@
  */
 static void Dw_style_shaded_color_remove (DwStyleShadedColor *color)
 {
-   g_hash_table_remove(shaded_colors_table, GINT_TO_POINTER(color->color_val));
+   g_hash_table_remove (shaded_colors_table,
+                        GINT_TO_POINTER (color->color_val));
    gdk_gc_destroy (color->gc);
    gdk_gc_destroy (color->gc_dark);
    gdk_gc_destroy (color->gc_light);
@@ -785,8 +772,6 @@
 
 void p_Dw_style_draw_border (GdkWindow *window,
                              GdkRectangle *area,
-                             gint32 vx,
-                             gint32 vy,
                              gint32 x,
                              gint32 y,
                              gint32 width,
@@ -797,8 +782,8 @@
    GdkGC *top_gc, *right_gc, *bottom_gc, *left_gc;
    gint32 xb1, yb1, xb2, yb2, xp1, yp1, xp2, yp2;
 
-   xb1 = x + style->margin.left - vx;
-   yb1 = y + style->margin.top - vy;
+   xb1 = x + style->margin.left;
+   yb1 = y + style->margin.top;
    xb2 = xb1 + width - style->margin.left - style->margin.right;
    yb2 = yb1 + height - style->margin.top - style->margin.bottom;
 
@@ -865,8 +850,6 @@
  */
 void p_Dw_style_draw_background (GdkWindow *window,
                                  GdkRectangle *area,
-                                 gint32 vx,
-                                 gint32 vy,
                                  gint32 x,
                                  gint32 y,
                                  gint32 width,
@@ -876,8 +859,8 @@
    DwRectangle dw_area, bg_area, intersection;
 
    if (style->background_color) {
-      dw_area.x = area->x + vx;
-      dw_area.y = area->y + vy;
+      dw_area.x = area->x;
+      dw_area.y = area->y;
       dw_area.width = area->width;
       dw_area.height = area->height;
 
@@ -892,7 +875,7 @@
 
       if (p_Dw_rectangle_intersect (&dw_area, &bg_area, &intersection))
          gdk_draw_rectangle (window, style->background_color->gc, TRUE,
-                             intersection.x - vx, intersection.y - vy,
+                             intersection.x, intersection.y,
                              intersection.width, intersection.height);
    }
 }
diff -urN dillo-0.6.6/src/dw_style.h dillo2-0.6.6/src/dw_style.h
--- dillo-0.6.6/src/dw_style.h	2002-04-05 08:18:19.000000000 -0700
+++ dillo2-0.6.6/src/dw_style.h	2003-04-21 12:35:57.000000000 -0600
@@ -1,7 +1,7 @@
 #ifndef __DW_STYLE_H__
 #define __DW_STYLE_H__
 
-#include <gdk/gdktypes.h>
+#include <gdk/gdk.h>
 
 #define TEXT_SUB 0
 #define TEXT_SUP 1
@@ -77,11 +77,8 @@
    gchar bold;
    gchar italic;
 
-#ifdef USE_TYPE1
-   gint t1fontid;
-#else
-   GdkFont *font;
-#endif
+   PangoFontDescription *font_desc;
+
    gint space_width;
    gint x_height;
 };
@@ -168,8 +165,6 @@
 
 void p_Dw_style_draw_border     (GdkWindow *window,
                                  GdkRectangle *area,
-                                 gint32 vx,
-                                 gint32 vy,
                                  gint32 x,
                                  gint32 y,
                                  gint32 width,
@@ -177,8 +172,6 @@
                                  DwStyle *style);
 void p_Dw_style_draw_background (GdkWindow *window,
                                  GdkRectangle *area,
-                                 gint32 vx,
-                                 gint32 vy,
                                  gint32 x,
                                  gint32 y,
                                  gint32 width,
diff -urN dillo-0.6.6/src/dw_table.c dillo2-0.6.6/src/dw_table.c
--- dillo-0.6.6/src/dw_table.c	2002-03-28 11:06:40.000000000 -0700
+++ dillo2-0.6.6/src/dw_table.c	2003-04-21 12:36:01.000000000 -0600
@@ -77,6 +77,12 @@
                                     gpointer FP, gpointer KP,
                                     gchar *NewKey);
 
+static DwIterator* Dw_table_iterator          (DwWidget *widget,
+                                               gint mask);
+static gboolean    Dw_table_iterator_next     (DwIterator *it);
+static DwIterator* Dw_table_iterator_clone    (DwIterator *it);
+
+
 static void Dw_table_realloc_children (DwTable *table);
 
 static void Dw_table_sub_create          (DwTable *table);
@@ -106,25 +112,27 @@
 /*
  * Standard Gtk+ function.
  */
-GtkType a_Dw_table_get_type (void)
+GType a_Dw_table_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwTable",
-         sizeof (DwTable),
+      GTypeInfo info = {
          sizeof (DwTableClass),
-         (GtkClassInitFunc) Dw_table_class_init,
-         (GtkObjectInitFunc) Dw_table_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_table_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwTable),
+         0,
+         (GInstanceInitFunc) Dw_table_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (DW_TYPE_CONTAINER, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(DW_TYPE_CONTAINER, "DwTable",
+                                    &info, flags);
    }
-
    return type;
 }
 
@@ -197,6 +205,7 @@
    widget_class->set_ascent = Dw_table_set_ascent;
    widget_class->set_descent = Dw_table_set_descent;
    widget_class->draw = Dw_table_draw;
+   widget_class->iterator = Dw_table_iterator;
 
    container_class->add = Dw_table_add;
    container_class->remove = Dw_table_remove;
@@ -233,7 +242,7 @@
    if (table->sub)
       Dw_table_sub_free (table->sub);
 
-   (* GTK_OBJECT_CLASS(parent_class)->destroy) (object);
+   GTK_OBJECT_CLASS(parent_class)->destroy (object);
 }
 
 
@@ -508,7 +517,8 @@
 
    offx = p_Dw_style_box_offset_x (widget->style);
    offy = p_Dw_style_box_offset_y (widget->style);
-   width = widget->allocation.width - p_Dw_style_box_diff_width(widget->style);
+   width =
+      widget->allocation.width - p_Dw_style_box_diff_width (widget->style);
    for (i = 0; i < table->num_rows; i++)
       if (table->row_style[i])
          p_Dw_widget_draw_box (widget, table->row_style[i], area,
@@ -1070,7 +1080,7 @@
    if (sub->table->sub == sub) {
       /* Adjust width argument of the table (fixed, percentages
          later in the code). */
-      widget = DW_WIDGET(sub->table);
+      widget = DW_WIDGET (sub->table);
       if (DW_STYLE_IS_LENGTH (widget->style->width)) {
          col_width = DW_STYLE_GET_LENGTH (widget->style->width,
                                           widget->style->font);
@@ -1232,7 +1242,7 @@
                  "(total = %d)\n",
                  sub->start_col, sub->end_col, width, total_width);
 
-      border_spacing = DW_WIDGET(sub->table)->style->border_spacing;
+      border_spacing = DW_WIDGET (sub->table)->style->border_spacing;
       diff =  (sub->num_subs - 1) * border_spacing;
       avail_width = width - diff;
 
@@ -1441,3 +1451,52 @@
       g_free (sub_extremes);
    }
 }
+
+
+static DwIterator *Dw_table_iterator (DwWidget *widget,
+                                      gint mask)
+{
+   DwIteratorInt *it = g_new (DwIteratorInt, 1);
+   it->it.widget = widget;
+   it->it.mask = mask;
+   it->it.content.type = DW_CONTENT_START;
+   it->it.next = Dw_table_iterator_next;
+   it->it.clone = Dw_table_iterator_clone;
+   it->it.free = p_Dw_iterator_free_std;
+   it->pos = -1;
+   return (DwIterator*)it;
+}
+
+static gboolean Dw_table_iterator_next (DwIterator *it)
+{
+   DwTable *table = DW_TABLE (it->widget);
+   DwIteratorInt *ii = (DwIteratorInt*)it;
+
+   /* tables only contain widgets: */
+   if ((it->mask & DW_CONTENT_WIDGET) == 0) {
+      it->content.type = DW_CONTENT_END;
+      return FALSE;
+   }
+
+   do {
+      ii->pos++;
+      if (ii->pos >= table->num_children) {
+         it->content.type = DW_CONTENT_END;
+         return FALSE;
+      }
+   } while (table->children[ii->pos] == NULL ||
+            table->children[ii->pos]->type != DW_TABLE_CELL);
+
+   it->content.type = DW_CONTENT_WIDGET;
+   it->content.data.widget = table->children[ii->pos]->data.cell.widget;
+   return TRUE;
+}
+
+static DwIterator* Dw_table_iterator_clone (DwIterator *it)
+{
+   DwIteratorInt *it2 = g_new (DwIteratorInt, 1);
+   *it2 = *(DwIteratorInt*)it;
+   return (DwIterator*)it2;
+}
+
+
diff -urN dillo-0.6.6/src/dw_tooltip.c dillo2-0.6.6/src/dw_tooltip.c
--- dillo-0.6.6/src/dw_tooltip.c	2001-12-22 13:51:09.000000000 -0700
+++ dillo2-0.6.6/src/dw_tooltip.c	2003-04-21 12:36:01.000000000 -0600
@@ -15,6 +15,13 @@
 #include <gtk/gtk.h>
 #include "dw_tooltip.h"
 
+/* The amount of space around the text, including the border. */
+#define PADDING 4
+
+/* The difference between pointer position and upper left corner of the 
+ * tooltip. */
+#define DIFF 10
+
 static gint Dw_tooltip_draw (DwTooltip *tooltip);
 
 /*
@@ -49,8 +56,8 @@
 void a_Dw_tooltip_on_enter (DwTooltip *tooltip)
 {
    a_Dw_tooltip_on_leave (tooltip);
-   tooltip->timeout_id = gtk_timeout_add(500, (GtkFunction)Dw_tooltip_draw,
-                                         tooltip);
+   tooltip->timeout_id = gtk_timeout_add (500, (GtkFunction)Dw_tooltip_draw,
+                                          tooltip);
 }
 
 
@@ -60,12 +67,12 @@
 void a_Dw_tooltip_on_leave (DwTooltip *tooltip)
 {
    if (tooltip->timeout_id != -1) {
-      gtk_timeout_remove(tooltip->timeout_id);
+      gtk_timeout_remove (tooltip->timeout_id);
       tooltip->timeout_id = -1;
    }
 
    if (tooltip->window != NULL) {
-      gtk_widget_destroy(tooltip->window);
+      gtk_widget_destroy (tooltip->window);
       tooltip->window = NULL;
    }
 }
@@ -80,36 +87,69 @@
 }
 
 /*
+ * Connected to the expose_event signal
+ */
+static gint Dw_tooltip_expose (GtkWidget *window)
+{
+   gtk_widget_ensure_style (window);
+   gtk_paint_flat_box(window->style, window->window,
+                      GTK_STATE_NORMAL, GTK_SHADOW_OUT,
+                      NULL, GTK_WIDGET(window), "tooltip",
+                      0, 0, -1, -1);
+   return FALSE;
+}
+
+/*
  *  Draw the tooltip. Called as a timeout function.
  */
 static gint Dw_tooltip_draw (DwTooltip *tooltip)
 {
-   GtkStyle *style;
-   gint x, y, width, ascent, descent;
-
-   gdk_window_get_pointer (NULL, &x, &y, NULL);
+   GtkWidget *label;
+   gint x, y, px, py, screen_w, screen_h, ttw, tth;
 
    tooltip->window = gtk_window_new(GTK_WINDOW_POPUP);
    gtk_widget_set_app_paintable (tooltip->window, TRUE);
    gtk_widget_set_name (tooltip->window, "gtk-tooltips");
-   gtk_widget_ensure_style (tooltip->window);
-   style = tooltip->window->style;
-   width = gdk_string_width (style->font, tooltip->text);
-   ascent = style->font->ascent;
-   descent = style->font->descent;
-   gtk_widget_set_usize (tooltip->window, width + 8, ascent + descent + 8);
-
-   gtk_widget_popup(tooltip->window, x + 10, y + 10);
-   style = tooltip->window->style;
-   gtk_paint_flat_box(style, tooltip->window->window,
-                      GTK_STATE_NORMAL, GTK_SHADOW_OUT,
-                      NULL, GTK_WIDGET(tooltip->window), "tooltip",
-                      0, 0, -1, -1);
-   gtk_paint_string(style, tooltip->window->window,
-                    GTK_STATE_NORMAL,
-                    NULL, GTK_WIDGET(tooltip->window), "tooltip",
-                    4, ascent + 4,
-                    tooltip->text);
+   gtk_container_set_border_width (GTK_CONTAINER (tooltip->window), PADDING);
+   g_signal_connect(G_OBJECT(tooltip->window), "expose_event",
+                    G_CALLBACK(Dw_tooltip_expose), NULL);
+
+   label = gtk_label_new(tooltip->text);
+   gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+   gtk_misc_set_alignment (GTK_MISC (label), 0.5, 0.5);
+   gtk_widget_show (label);
+
+   gtk_container_add (GTK_CONTAINER(tooltip->window), label);
+   /* Realize the window, so we can get it's size */
+   gtk_widget_realize (GTK_WIDGET(tooltip->window));
+
+   gdk_drawable_get_size (GDK_DRAWABLE (tooltip->window->window), &ttw, &tth);
+   gdk_window_get_pointer (NULL, &px, &py, NULL);
+   x = px + DIFF;
+   y = py + DIFF;
+
+   screen_w = gdk_screen_width();
+   screen_h = gdk_screen_height();
+
+   if (ttw >= screen_w)
+      /* If the width of a tooltips does not fit into the screen, put
+       * them at x = 0. (Yes, that's far from perfect ...) */
+      x = 0;
+   else if (x + ttw > screen_w)
+      /* If they would otherwise reach out of the screen, move them
+       * a bit left. */
+      x = screen_w - ttw;
+
+   /* The case that the height of a tooltip of the screen is greater
+    * that the screen height is ignored ;-) If the tooltip reaches
+    * out of the screen at the bottom, it is displayed *above* the
+    * pointer: to process events properly, it is necessary to keep
+    * the pointer out of the tooltip. */
+   if (y + tth > screen_h)
+      y = py - tth - DIFF;
+
+   gtk_window_move(GTK_WINDOW(tooltip->window), x, y);
+   gtk_widget_show(tooltip->window);
 
    tooltip->timeout_id = -1;
    return FALSE;
diff -urN dillo-0.6.6/src/dw_widget.c dillo2-0.6.6/src/dw_widget.c
--- dillo-0.6.6/src/dw_widget.c	2002-03-18 08:02:50.000000000 -0700
+++ dillo2-0.6.6/src/dw_widget.c	2003-04-21 12:36:03.000000000 -0600
@@ -13,11 +13,11 @@
 #include "dw_widget.h"
 #include "dw_container.h"
 #include "dw_gtk_viewport.h"
+#include "dw_marshal.h"
 
 static void Dw_widget_init                (DwWidget *widget);
 static void Dw_widget_class_init          (DwWidgetClass *klass);
 
-static void Dw_widget_shutdown            (GtkObject *object);
 static void Dw_widget_destroy             (GtkObject *object);
 
 static void Dw_widget_real_size_request      (DwWidget *widget,
@@ -86,25 +86,27 @@
 /*
  * Standard Gtk+ function
  */
-GtkType a_Dw_widget_get_type (void)
+GType a_Dw_widget_get_type (void)
 {
-   static GtkType type = 0;
+   static GType type = 0;
 
    if (!type) {
-      GtkTypeInfo info = {
-         "DwWidget",
-         sizeof (DwWidget),
+      GTypeInfo info = {
          sizeof (DwWidgetClass),
-         (GtkClassInitFunc) Dw_widget_class_init,
-         (GtkObjectInitFunc) Dw_widget_init,
-         (GtkArgSetFunc) NULL,
-         (GtkArgGetFunc) NULL,
-         (GtkClassInitFunc) NULL
+         (GBaseInitFunc) NULL,
+         (GBaseFinalizeFunc) NULL,
+         (GClassInitFunc) Dw_widget_class_init,
+         (GClassFinalizeFunc) NULL,
+         (gconstpointer) NULL,
+         sizeof (DwWidget),
+         0,
+         (GInstanceInitFunc) Dw_widget_init,
+         (GTypeValueTable *) NULL
       };
-
-      type = gtk_type_unique (GTK_TYPE_OBJECT, &info);
+      GTypeFlags flags = 0;
+      type = g_type_register_static(GTK_TYPE_OBJECT, "DwWidget",
+                                    &info, flags);
    }
-
    return type;
 }
 
@@ -138,114 +140,129 @@
 {
    GtkObjectClass *object_class;
 
-   parent_class = gtk_type_class (gtk_object_get_type ());
+   parent_class = gtk_type_class (GTK_TYPE_OBJECT);
 
    object_class = GTK_OBJECT_CLASS (klass);
 
    widget_signals[SIZE_REQUEST] =
-      gtk_signal_new ("size_request",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwWidgetClass, size_request),
-                      gtk_marshal_NONE__POINTER,
-                      GTK_TYPE_NONE,
-                      1, GTK_TYPE_POINTER);
+      g_signal_new ("size_request",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwWidgetClass, size_request),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__POINTER,
+                    GTK_TYPE_NONE,
+                    1, GTK_TYPE_POINTER);
    widget_signals[SIZE_ALLOCATE] =
-      gtk_signal_new ("size_allocate",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwWidgetClass, size_allocate),
-                      gtk_marshal_NONE__POINTER,
-                      GTK_TYPE_NONE,
-                      1, GTK_TYPE_POINTER);
+      g_signal_new ("size_allocate",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwWidgetClass, size_allocate),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__POINTER,
+                    GTK_TYPE_NONE,
+                    1, GTK_TYPE_POINTER);
    widget_signals[SET_WIDTH] =
-      gtk_signal_new ("set_width",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwWidgetClass, set_width),
-                      gtk_marshal_NONE__POINTER,
-                      GTK_TYPE_NONE,
-                      1, GTK_TYPE_UINT);
+      g_signal_new ("set_width",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwWidgetClass, set_width),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__UINT,
+                    GTK_TYPE_NONE,
+                    1, GTK_TYPE_UINT);
    widget_signals[SET_ASCENT] =
-      gtk_signal_new ("set_ascent",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwWidgetClass, set_ascent),
-                      gtk_marshal_NONE__POINTER,
-                      GTK_TYPE_NONE,
-                      1, GTK_TYPE_UINT);
+      g_signal_new ("set_ascent",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwWidgetClass, set_ascent),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__UINT,
+                    GTK_TYPE_NONE,
+                    1, GTK_TYPE_UINT);
    widget_signals[SET_DESCENT] =
-      gtk_signal_new ("set_descent",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwWidgetClass, set_descent),
-                      gtk_marshal_NONE__POINTER,
-                      GTK_TYPE_NONE,
-                      1, GTK_TYPE_UINT);
+      g_signal_new ("set_descent",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwWidgetClass, set_descent),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__UINT,
+                    GTK_TYPE_NONE,
+                    1, GTK_TYPE_UINT);
    widget_signals[DRAW] =
-      gtk_signal_new ("draw",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwWidgetClass, draw),
-                      gtk_marshal_NONE__POINTER,
-                      GTK_TYPE_NONE,
-                      2, GTK_TYPE_POINTER, GTK_TYPE_GDK_EVENT);
+      g_signal_new ("draw",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwWidgetClass, draw),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__POINTER_POINTER,
+                    GTK_TYPE_NONE,
+                    2, GTK_TYPE_POINTER, GDK_TYPE_EVENT);
    widget_signals[REALIZE] =
-      gtk_signal_new ("realize",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwWidgetClass, realize),
-                      gtk_marshal_NONE__NONE,
-                      GTK_TYPE_NONE, 0);
+      g_signal_new ("realize",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwWidgetClass, realize),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__VOID,
+                    GTK_TYPE_NONE, 0);
    widget_signals[UNREALIZE] =
-      gtk_signal_new ("unrealize",
-                      GTK_RUN_FIRST,
-                      object_class->type,
-                      GTK_SIGNAL_OFFSET (DwWidgetClass, unrealize),
-                      gtk_marshal_NONE__NONE,
-                      GTK_TYPE_NONE, 0);
-  widget_signals[BUTTON_PRESS_EVENT] =
-     gtk_signal_new ("button_press_event",
-                     GTK_RUN_LAST,
-                     object_class->type,
-                     GTK_SIGNAL_OFFSET (DwWidgetClass, button_press_event),
-                     gtk_marshal_BOOL__POINTER,
-                     GTK_TYPE_BOOL,
-                     3, GTK_TYPE_UINT, GTK_TYPE_UINT, GTK_TYPE_GDK_EVENT);
-  widget_signals[BUTTON_RELEASE_EVENT] =
-     gtk_signal_new ("button_release_event",
-                     GTK_RUN_LAST,
-                     object_class->type,
-                     GTK_SIGNAL_OFFSET (DwWidgetClass, button_release_event),
-                     gtk_marshal_BOOL__POINTER,
-                     GTK_TYPE_BOOL,
-                     3, GTK_TYPE_UINT, GTK_TYPE_UINT, GTK_TYPE_GDK_EVENT);
-  widget_signals[MOTION_NOTIFY_EVENT] =
-     gtk_signal_new ("motion_notify_event",
-                     GTK_RUN_LAST,
-                     object_class->type,
-                     GTK_SIGNAL_OFFSET (DwWidgetClass, motion_notify_event),
-                     gtk_marshal_BOOL__POINTER,
-                     GTK_TYPE_BOOL,
-                     3, GTK_TYPE_UINT, GTK_TYPE_UINT, GTK_TYPE_GDK_EVENT);
-  widget_signals[ENTER_NOTIFY_EVENT] =
-     gtk_signal_new ("enter_notify_event",
-                     GTK_RUN_LAST,
-                     object_class->type,
-                     GTK_SIGNAL_OFFSET (DwWidgetClass, enter_notify_event),
-                     gtk_marshal_BOOL__POINTER,
-                     GTK_TYPE_BOOL,
-                     3, GTK_TYPE_UINT, GTK_TYPE_UINT, GTK_TYPE_GDK_EVENT);
-  widget_signals[LEAVE_NOTIFY_EVENT] =
-     gtk_signal_new ("leave_notify_event",
-                     GTK_RUN_LAST,
-                     object_class->type,
-                     GTK_SIGNAL_OFFSET (DwWidgetClass, leave_notify_event),
-                     gtk_marshal_BOOL__POINTER,
-                     GTK_TYPE_BOOL,
-                     3, GTK_TYPE_UINT, GTK_TYPE_UINT, GTK_TYPE_GDK_EVENT);
+      g_signal_new ("unrealize",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_FIRST,
+                    G_STRUCT_OFFSET (DwWidgetClass, unrealize),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_VOID__VOID,
+                    GTK_TYPE_NONE, 0);
+   widget_signals[BUTTON_PRESS_EVENT] =
+      g_signal_new ("button_press_event",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_LAST,
+                    G_STRUCT_OFFSET (DwWidgetClass, button_press_event),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_BOOL__UINT_UINT_POINTER,
+                    GTK_TYPE_BOOL,
+                    3, GTK_TYPE_UINT, GTK_TYPE_UINT, GDK_TYPE_EVENT);
+   widget_signals[BUTTON_RELEASE_EVENT] =
+      g_signal_new ("button_release_event",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_LAST,
+                    G_STRUCT_OFFSET (DwWidgetClass, button_release_event),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_BOOL__UINT_UINT_POINTER,
+                    GTK_TYPE_BOOL,
+                    3, GTK_TYPE_UINT, GTK_TYPE_UINT, GDK_TYPE_EVENT);
+   widget_signals[MOTION_NOTIFY_EVENT] =
+      g_signal_new ("motion_notify_event",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_LAST,
+                    G_STRUCT_OFFSET (DwWidgetClass, motion_notify_event),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_BOOL__UINT_UINT_POINTER,
+                    GTK_TYPE_BOOL,
+                    3, GTK_TYPE_UINT, GTK_TYPE_UINT, GDK_TYPE_EVENT);
+   widget_signals[LEAVE_NOTIFY_EVENT] =
+      g_signal_new ("leave_notify_event",
+                    G_TYPE_FROM_CLASS(object_class),
+                    G_SIGNAL_RUN_LAST,
+                    G_STRUCT_OFFSET (DwWidgetClass, leave_notify_event),
+                    NULL,
+                    NULL,
+                    p_Dw_marshal_BOOL__UINT_UINT_POINTER,
+                    GTK_TYPE_BOOL,
+                    3, GTK_TYPE_UINT, GTK_TYPE_UINT, GDK_TYPE_EVENT);
 
-   object_class->shutdown = Dw_widget_shutdown;
    object_class->destroy = Dw_widget_destroy;
 
    klass->size_request = Dw_widget_real_size_request;
@@ -264,27 +281,7 @@
    klass->motion_notify_event = Dw_widget_real_motion_notify;
    klass->enter_notify_event = Dw_widget_real_enter_notify;
    klass->leave_notify_event = Dw_widget_real_leave_notify;
-}
-
-
-
-/*
- * Standard Gtk+ function
- */
-static void Dw_widget_shutdown (GtkObject *object)
-{
-   DwWidget *widget;
-
-   widget = DW_WIDGET (object);
-
-   a_Dw_widget_unrealize (widget);
-
-   if (widget->parent)
-      Dw_container_remove (DW_CONTAINER (widget->parent), widget);
-   else
-      Dw_gtk_viewport_remove_dw (GTK_DW_VIEWPORT (widget->viewport));
-
-   parent_class->shutdown (object);
+   klass->iterator = NULL;
 }
 
 /*
@@ -296,7 +293,7 @@
 
    widget = DW_WIDGET (object);
    if (widget->anchors_table) {
-      g_hash_table_destroy(widget->anchors_table);
+      g_hash_table_destroy (widget->anchors_table);
    }
 
    /* The widget the pointer is in? */
@@ -318,7 +315,7 @@
                                          DwRequisition *requisition)
 {
    g_warning ("DwWidget::size_request not implemented for `%s'",
-              gtk_type_name (GTK_OBJECT_TYPE (widget)));
+              g_type_name (GTK_OBJECT_TYPE (widget)));
 
    /* return random size to prevent crashes*/
    requisition->width = 50;
@@ -484,8 +481,8 @@
 {
    if (DW_WIDGET_NEEDS_RESIZE (widget)) {
       /* todo: check requisition == &(widget->requisition) and do what? */
-      gtk_signal_emit (GTK_OBJECT (widget), widget_signals[SIZE_REQUEST],
-                       requisition);
+      g_signal_emit (G_OBJECT (widget), widget_signals[SIZE_REQUEST],
+                     0, requisition);
       widget->requisition = *requisition;
       DW_WIDGET_UNSET_FLAGS (widget, DW_NEEDS_RESIZE);
    } else
@@ -501,7 +498,7 @@
    DwWidgetClass *klass;
 
    if (DW_WIDGET_EXTREMES_CHANGED (widget)) {
-      klass =  DW_WIDGET_CLASS (GTK_OBJECT(widget)->klass);
+      klass = DW_WIDGET_GET_CLASS(widget);
       (* (klass->get_extremes)) (widget, extremes);
       widget->extremes = *extremes;
       DW_WIDGET_UNSET_FLAGS (widget, DW_EXTREMES_CHANGED);
@@ -523,8 +520,8 @@
        allocation->ascent != widget->allocation.ascent ||
        allocation->descent != widget->allocation.descent) {
 
-      gtk_signal_emit (GTK_OBJECT (widget), widget_signals[SIZE_ALLOCATE],
-                       allocation);
+      g_signal_emit (G_OBJECT (widget), widget_signals[SIZE_ALLOCATE], 0,
+                     allocation);
       widget->allocation = *allocation;
    }
 
@@ -535,21 +532,21 @@
 void a_Dw_widget_set_width (DwWidget *widget,
                             gint32 width)
 {
-   gtk_signal_emit (GTK_OBJECT (widget), widget_signals[SET_WIDTH], width);
+   g_signal_emit (G_OBJECT (widget), widget_signals[SET_WIDTH], 0, width);
 }
 
 
 void a_Dw_widget_set_ascent (DwWidget *widget,
                              gint32 ascent)
 {
-   gtk_signal_emit (GTK_OBJECT (widget), widget_signals[SET_ASCENT], ascent);
+   g_signal_emit (G_OBJECT (widget), widget_signals[SET_ASCENT], 0, ascent);
 }
 
 
 void a_Dw_widget_set_descent (DwWidget *widget,
                               gint32 descent)
 {
-   gtk_signal_emit (GTK_OBJECT (widget), widget_signals[SET_DESCENT], descent);
+   g_signal_emit (G_OBJECT (widget), widget_signals[SET_DESCENT], 0, descent);
 }
 
 
@@ -557,15 +554,14 @@
                        DwRectangle *area,
                        GdkEventExpose *event)
 {
-   gtk_signal_emit (GTK_OBJECT (widget), widget_signals[DRAW],
-                    area, event);
+   g_signal_emit (G_OBJECT (widget), widget_signals[DRAW], 0, area, event);
 }
 
 
 void a_Dw_widget_realize (DwWidget *widget)
 {
    if (!DW_WIDGET_REALIZED (widget)) {
-      gtk_signal_emit (GTK_OBJECT (widget), widget_signals[REALIZE]);
+      g_signal_emit (G_OBJECT (widget), widget_signals[REALIZE], 0);
       DW_WIDGET_SET_FLAGS (widget, DW_REALIZED);
 
       if (DW_IS_CONTAINER (widget))
@@ -576,8 +572,8 @@
       Dw_widget_update_cursor (widget);
 
       if (widget->parent == NULL && widget->style->background_color != NULL)
-         gdk_window_set_background(GTK_LAYOUT(widget->viewport)->bin_window,
-                                   &widget->style->background_color->color);
+         gdk_window_set_background (GTK_LAYOUT(widget->viewport)->bin_window,
+                                    &widget->style->background_color->color);
    }
 }
 
@@ -586,7 +582,7 @@
 {
    if (DW_WIDGET_REALIZED (widget)) {
       a_Dw_widget_set_cursor (widget, NULL);
-      gtk_signal_emit (GTK_OBJECT (widget), widget_signals[UNREALIZE]);
+      g_signal_emit (G_OBJECT (widget), widget_signals[UNREALIZE], 0);
       DW_WIDGET_UNSET_FLAGS (widget, DW_REALIZED);
 
       if (DW_IS_CONTAINER (widget))
@@ -608,11 +604,11 @@
  * soon be the case when GDK_MOTION_NOTIFY events are simulated as a
  * result of viewport changes (bug #94)
  */
-gint Dw_widget_mouse_event (DwWidget *widget,
-                            GtkWidget *viewwidget,
-                            gint32 x,
-                            gint32 y,
-                            GdkEvent *event)
+gboolean Dw_widget_mouse_event (DwWidget *widget,
+                                GtkWidget *viewwidget,
+                                gint32 x,
+                                gint32 y,
+                                GdkEventAny *event)
 {
    /* todo: implement as signals */
    gint (*function)();
@@ -642,30 +638,30 @@
        * viewport->last_entered => anchestor => (current) widget */
       track_len = 0;
       if (viewport->last_entered)
-         for(w1 = viewport->last_entered; w1 != ancestor; w1 = w1->parent)
+         for (w1 = viewport->last_entered; w1 != ancestor; w1 = w1->parent)
             track_len++;
       if (ancestor)
          track_len++; /* for the ancestor */
       if (widget)
-         for(w1 = widget; w1 != ancestor; w1 = w1->parent)
+         for (w1 = widget; w1 != ancestor; w1 = w1->parent)
             track_len++;
 
       track = g_new (DwWidget*, track_len);
       i = 0;
       if (viewport->last_entered)
-         for(w1 = viewport->last_entered; w1 != ancestor; w1 = w1->parent)
+         for (w1 = viewport->last_entered; w1 != ancestor; w1 = w1->parent)
             track[i++] = w1;
       if (ancestor)
          track[i++] = ancestor;
       if (widget) {
          i = track_len - 1;
-         for(w1 = widget; w1 != ancestor; w1 = w1->parent)
+         for (w1 = widget; w1 != ancestor; w1 = w1->parent)
             track[i--] = w1;
       }
 
       /* Send events to all events on the track */
       for (i = 0; i < track_len; i++) {
-         klass = DW_WIDGET_CLASS (GTK_OBJECT(track[i])->klass);
+         klass = DW_WIDGET_GET_CLASS(track[i]);
          if (i != 0)
             klass->enter_notify_event (track[i], track[i - 1],
                                        (GdkEventMotion*) event);
@@ -683,7 +679,7 @@
    event_type = event ? event->type : GDK_MOTION_NOTIFY;
 
    while (widget) {
-      klass = DW_WIDGET_CLASS (GTK_OBJECT (widget)->klass);
+      klass = DW_WIDGET_GET_CLASS(widget);
 
       switch (event_type) {
       case GDK_BUTTON_PRESS:
@@ -736,8 +732,8 @@
    if (widget->parent == NULL &&
        DW_WIDGET_REALIZED (widget) &&
        widget->style->background_color != NULL)
-      gdk_window_set_background(GTK_LAYOUT(widget->viewport)->bin_window,
-                                &widget->style->background_color->color);
+      gdk_window_set_background (GTK_LAYOUT(widget->viewport)->bin_window,
+                                 &widget->style->background_color->color);
 }
 
 
@@ -801,6 +797,30 @@
                               pos + widget->allocation.y);
 }
 
+/*
+ * Retreive an iterator pointing before the first content element
+ * of the widget.
+ */
+DwIterator* a_Dw_widget_iterator (DwWidget *widget,
+                                  gint mask)
+{
+   DwWidgetClass *klass = DW_WIDGET_GET_CLASS(widget);
+   if(klass->iterator)
+      return klass->iterator(widget, mask);
+   else
+      return NULL;
+}
+
+/*
+ * ...
+ */
+void p_Dw_iterator_free_std (DwIterator *it)
+{
+   g_free (it);
+}
+
+
+
 
 /*
  * ...
@@ -908,8 +928,8 @@
 void p_Dw_widget_set_parent (DwWidget *widget,
                              DwWidget *parent)
 {
-   gtk_object_ref(GTK_OBJECT (widget));
-   gtk_object_sink(GTK_OBJECT (widget));
+   gtk_object_ref (GTK_OBJECT (widget));
+   gtk_object_sink (GTK_OBJECT (widget));
    widget->parent = parent;
    widget->viewport = parent->viewport;
    /*widget->window = parent->window;*/
@@ -981,34 +1001,28 @@
  * (of course) viewport coordinates, the return value is TRUE iff the
  * intersection is not empty.
  */
-static gboolean Dw_widget_intersect_viewport (DwWidget *widget,
-                                              gint32 x,
-                                              gint32 y,
-                                              gint32 width,
-                                              gint32 height,
+static gboolean Dw_widget_intersect_viewport (DwWidget *widget, gint x, gint y,
+                                              gint width, gint height,
                                               GdkRectangle *gdk_intersection)
 {
-   GtkLayout *layout;
    DwRectangle widget_area, viewport_area, intersection;
 
    g_return_val_if_fail (widget && widget->viewport, FALSE);
 
-   layout = GTK_LAYOUT (widget->viewport);
-
    widget_area.x = widget->allocation.x + x;
    widget_area.y = widget->allocation.y + y;
    widget_area.width = width;
    widget_area.height = height;
 
-   viewport_area.x = layout->xoffset;
-   viewport_area.y = layout->yoffset;
+   viewport_area.x = p_Dw_widget_x_viewport_to_world(widget, 0);
+   viewport_area.y = p_Dw_widget_y_viewport_to_world(widget, 0);
    viewport_area.width = widget->viewport->allocation.width;
    viewport_area.height = widget->viewport->allocation.height;
 
    if (p_Dw_rectangle_intersect (&widget_area, &viewport_area,
                                  &intersection)) {
-      gdk_intersection->x = intersection.x - layout->xoffset;
-      gdk_intersection->y = intersection.y - layout->yoffset;
+      gdk_intersection->x = intersection.x;
+      gdk_intersection->y = intersection.y;
       gdk_intersection->width = intersection.width;
       gdk_intersection->height = intersection.height;
       return TRUE;
@@ -1107,7 +1121,7 @@
    GtkDwViewport *viewport;
    DwWidgetClass *klass;
 
-   klass =  (DwWidgetClass*)(((GtkObject*)widget)->klass);
+   klass = DW_WIDGET_GET_CLASS(widget);
    DW_WIDGET_SET_FLAGS (widget, DW_NEEDS_RESIZE);
    if (klass->mark_size_change)
       klass->mark_size_change (widget, ref);
@@ -1121,7 +1135,7 @@
    for (widget2 = widget->parent, child = widget;
         widget2;
         child = widget2, widget2 = widget2->parent) {
-      klass =  (DwWidgetClass*)(((GtkObject*)widget2)->klass);
+      klass = DW_WIDGET_GET_CLASS(widget2);
       DW_WIDGET_SET_FLAGS (widget2, DW_NEEDS_RESIZE);
       if (klass->mark_size_change)
          klass->mark_size_change (widget2, child->parent_ref);
@@ -1150,10 +1164,10 @@
 void p_Dw_widget_set_anchor (DwWidget *widget, gchar *name, int pos)
 {
    if (widget->anchors_table == NULL)
-      widget->anchors_table = g_hash_table_new(g_str_hash, g_str_equal);
+      widget->anchors_table = g_hash_table_new (g_str_hash, g_str_equal);
 
-   g_hash_table_insert(widget->anchors_table, name, GINT_TO_POINTER(pos));
-   Dw_gtk_viewport_update_anchor(GTK_DW_VIEWPORT (widget->viewport));
+   g_hash_table_insert (widget->anchors_table, name, GINT_TO_POINTER (pos));
+   Dw_gtk_viewport_update_anchor (GTK_DW_VIEWPORT (widget->viewport));
 }
 
 
@@ -1171,27 +1185,19 @@
                            gint32 height)
 {
    GdkRectangle gdk_area;
-   gint32 vx, vy;
-
-   if (Dw_widget_intersect_viewport (widget, area->x, area->y,
-                                     area->width, area->height, &gdk_area)) {
-      vx = p_Dw_widget_x_viewport_to_world (widget, 0);
-      vy = p_Dw_widget_y_viewport_to_world (widget, 0);
 
+   if (Dw_widget_intersect_viewport (widget, x, y, width, height, &gdk_area)) {
       p_Dw_style_draw_border (DW_WIDGET_WINDOW (widget), &gdk_area,
-                              vx, vy,
                               widget->allocation.x + x,
                               widget->allocation.y + y,
-                              width, height,
-                              style);
+                              width, height, style);
 
-      if (style->background_color)
+      if (style->background_color) {
          p_Dw_style_draw_background (DW_WIDGET_WINDOW (widget), &gdk_area,
-                                     vx, vy,
                                      widget->allocation.x + x,
                                      widget->allocation.y + y,
-                                     width, height,
-                                     style);
+                                     width, height, style);
+      }
    }
 }
 
@@ -1203,15 +1209,10 @@
                                   DwRectangle *area)
 {
    GdkRectangle gdk_area;
-   gint32 vx, vy;
-
-   if (Dw_widget_intersect_viewport (widget, area->x, area->y,
-                                     area->width, area->height, &gdk_area)) {
-      vx = p_Dw_widget_x_viewport_to_world (widget, 0);
-      vy = p_Dw_widget_y_viewport_to_world (widget, 0);
 
+   if (Dw_widget_intersect_viewport (widget, area->x, area->y, area->width,
+            area->height, &gdk_area)) {
       p_Dw_style_draw_border (DW_WIDGET_WINDOW (widget), &gdk_area,
-                              vx, vy,
                               widget->allocation.x,
                               widget->allocation.y,
                               widget->allocation.width,
@@ -1228,14 +1229,14 @@
        *   *not* necessary to draw the background if
        *   widget->style->background_color is NULL (shining through).
        */
-      if (widget->parent && widget->style->background_color)
+      if (widget->parent && widget->style->background_color) {
          p_Dw_style_draw_background (DW_WIDGET_WINDOW (widget), &gdk_area,
-                                     vx, vy,
                                      widget->allocation.x,
                                      widget->allocation.y,
                                      widget->allocation.width,
                                      widget->allocation.ascent
                                      + widget->allocation.descent,
                                      widget->style);
+      }
    }
 }
diff -urN dillo-0.6.6/src/dw_widget.h dillo2-0.6.6/src/dw_widget.h
--- dillo-0.6.6/src/dw_widget.h	2002-03-13 05:08:57.000000000 -0700
+++ dillo2-0.6.6/src/dw_widget.h	2003-04-21 14:22:14.000000000 -0600
@@ -15,6 +15,7 @@
 #define DW_WIDGET(obj)          GTK_CHECK_CAST (obj, DW_TYPE_WIDGET, DwWidget)
 #define DW_WIDGET_CLASS(klass)  GTK_CHECK_CLASS_CAST (klass, DW_TYPE_WIDGET, \
                                    DwWidgetClass)
+#define DW_WIDGET_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), DW_TYPE_WIDGET, DwWidgetClass))
 #define DW_IS_WIDGET(obj)       GTK_CHECK_TYPE (obj, DW_TYPE_WIDGET)
 
 
@@ -42,13 +43,28 @@
 #define DW_USES_HINTS        (1 << 4)
 #define DW_HAS_CONTENT       (1 << 5)
 
-#define DW_WIDGET_WINDOW(widget) \
-   (((GtkDwViewport*)(widget)->viewport)->back_pixmap)
+
+/* content types for iterator data */
+typedef enum
+{
+   DW_CONTENT_START  = 0x01,
+   DW_CONTENT_END    = 0x01,
+   DW_CONTENT_TEXT   = 0x02,
+   DW_CONTENT_WIDGET = 0x04,
+   DW_CONTENT_ANCHOR = 0x08,
+   DW_CONTENT_BREAK  = 0x10,
+   DW_CONTENT_ALL    = 0xff
+} DwContentType;
+
+#define DW_WIDGET_WINDOW(widget) (((GtkLayout*)(widget)->viewport)->bin_window)
 
 typedef struct _DwRectangle             DwRectangle;
 typedef struct _DwAllocation            DwAllocation;
 typedef struct _DwRequisition           DwRequisition;
 typedef struct _DwExtremes              DwExtremes;
+typedef struct _DwContent               DwContent;
+typedef struct _DwIterator              DwIterator;
+typedef struct _DwIteratorInt           DwIteratorInt;
 
 typedef struct _DwWidget                DwWidget;
 typedef struct _DwWidgetClass           DwWidgetClass;
@@ -89,6 +105,57 @@
    gint32 max_width;
 };
 
+
+struct _DwContent
+{
+   DwContentType type;
+   union {
+      struct {
+	 char *str;
+	 PangoFont *font;
+      } text;
+      DwWidget *widget;  
+      char *anchor;
+      gint break_space;
+   } data;
+};
+
+struct _DwIterator
+{
+   DwWidget *widget;
+   gint mask;
+   
+   /* the current data, after first call of next */
+   DwContent content;
+
+   /* for simplicity, static stuff is put into the structure */
+
+   /*
+    * Move iterator forward and store content it. Returns TRUE on
+    * success.
+    */
+   gboolean    (*next)    (DwIterator*);
+
+   /*
+    * Create an exact copy of the iterator, which then can be used
+    * independantly of the original one.
+    */
+   DwIterator* (*clone)    (DwIterator*);
+
+   /*
+    * Free memory of iterator.
+    */
+   void        (*free)     (DwIterator*);
+};
+
+/* This iterator type is quite commonly used. */
+struct _DwIteratorInt
+{
+   DwIterator it;
+   int pos;
+};
+
+
 struct _DwWidget
 {
    GtkObject object;
@@ -172,6 +239,9 @@
    gint (*leave_notify_event)   (DwWidget *widget,
                                  DwWidget *next_widget,
                                  GdkEventMotion *event);
+
+   DwIterator* (*iterator)       (DwWidget*,
+                                  gint32 mask);
 };
 
 
@@ -205,6 +275,15 @@
 void    a_Dw_widget_scroll_to       (DwWidget *widget,
                                      int pos);
 
+/* iterators */
+DwIterator* a_Dw_widget_iterator   (DwWidget *widget,
+                                    gint mask);
+#define     a_Dw_iterator_next(it)  ((it) ? (it)->next(it) : FALSE)
+#define     a_Dw_iterator_clone(it) ((it) ? (it)->clone(it) : NULL)
+#define     a_Dw_iterator_free(it)  ((it) ? (it)->next(it) : (void)0)
+
+void        p_Dw_iterator_free_std (DwIterator *it);
+
 /* Only for Dw module */
 gint    p_Dw_rectangle_intersect      (DwRectangle *src1,
                                        DwRectangle *src2,
@@ -228,7 +307,7 @@
                                      GtkWidget *viewwidget,
                                      gint32 x,
                                      gint32 y,
-                                     GdkEvent *event);
+                                     GdkEventAny *event);
 void    p_Dw_widget_queue_draw        (DwWidget *widget);
 void    p_Dw_widget_queue_draw_area   (DwWidget *widget,
                                        gint32 x,
diff -urN dillo-0.6.6/src/html.c dillo2-0.6.6/src/html.c
--- dillo-0.6.6/src/html.c	2002-05-26 10:36:41.000000000 -0600
+++ dillo2-0.6.6/src/html.c	2003-04-21 12:36:16.000000000 -0600
@@ -48,7 +48,7 @@
 #include "prefs.h"
 #include "misc.h"
 
-//#define DEBUG_LEVEL 3
+#define DEBUG_LEVEL 10
 #include "debug.h"
 
 typedef void (*TagFunct) (DilloHtml *Html, char *Tag, gint Tagsize);
@@ -75,6 +75,16 @@
 static void Html_callback(int Op, CacheClient_t *Client);
 static DilloHtml *Html_new(BrowserWindow *bw, const DilloUrl *url);
 static void Html_tag_open_input(DilloHtml *html, char *tag, gint tagsize);
+static void Html_add_input(DilloHtmlForm *form,
+                           DilloHtmlInputType type,
+                           GtkWidget *widget,
+                           const char *name,
+                           const char *init_str,
+                           DilloHtmlSelect *select,
+                           gboolean init_val);
+static gboolean Html_submit_form(GtkWidget *submit, DilloHtmlLB *html_lb,
+                             gint click_x, gint click_y);
+static gboolean Html_reset_form(GtkWidget *reset, DilloHtmlLB *html_lb);
 
 
 /*
@@ -135,7 +145,7 @@
 /*
  * Free the memory used by the linkblock
  */
-static void Html_lb_free(void *lb)
+static gboolean Html_lb_free(GtkWidget *widget, void *lb)
 {
    gint i, j, k;
    DilloHtmlForm *form;
@@ -173,6 +183,8 @@
    a_Dw_image_map_list_free(&html_lb->maps);
 
    g_free(html_lb);
+
+   return FALSE;
 }
 
 
@@ -194,7 +206,7 @@
  * Handle the status function generated by the dw scroller,
  * and show the url in the browser status-bar.
  */
-static void Html_handle_status(DwWidget *widget, gint link, gint x, gint y,
+static gboolean Html_handle_status(DwWidget *widget, gint link, gint x, gint y,
                                DilloHtmlLB *lb)
 {
    DilloUrl *url;
@@ -212,28 +224,32 @@
          a_Interface_msg(lb->bw, "");
       a_Dw_widget_set_cursor (widget, NULL);
    }
+
+   return FALSE;
 }
 
 /*
  * Popup the link menu ("link_pressed" callback of the page)
  */
-static void Html_link_menu(DwWidget *widget, gint link, gint x, gint y,
-                           GdkEventButton *event, DilloHtmlLB *lb)
+static gboolean Html_link_menu(DwWidget *widget, gint link, gint x, gint y,
+                               GdkEventButton *event, DilloHtmlLB *lb)
 {
    if (event->button == 3) {
       Html_set_link_coordinates(lb, link, x, y);
       a_Menu_popup_set_url(lb->bw, lb->links[link]);
       gtk_menu_popup(GTK_MENU(lb->bw->menu_popup.over_link), NULL, NULL,
                      NULL, NULL, event->button, event->time);
+      return TRUE;
    }
+   return FALSE;
 }
 
 
 /*
  * Activate a link ("link_clicked" callback of the page)
  */
-static void Html_link_clicked(DwWidget *widget, gint link, gint x, gint y,
-                              GdkEventButton *event, DilloHtmlLB *lb)
+static gboolean Html_link_clicked(DwWidget *widget, gint link, gint x, gint y,
+                                  GdkEventButton *event, DilloHtmlLB *lb)
 {
    DwPage *page;
    DwStyle *old_style, style_attrs;
@@ -280,36 +296,35 @@
       }
    }
    /* end workaround */
+   return TRUE;
 }
 
 /*
  * Popup the page menu ("button_press_event" callback of the viewport)
  */
-static int Html_page_menu(GtkWidget *viewport, GdkEventButton *event,
-                          BrowserWindow *bw)
+static gboolean Html_page_menu(GtkWidget *viewport, GdkEventButton *event,
+                               BrowserWindow *bw)
 {
    if (event->button == 3) {
       a_Menu_popup_set_url(bw, a_History_get_url(NAV_TOP(bw)));
       gtk_menu_popup(GTK_MENU(bw->menu_popup.over_page), NULL, NULL,
                      NULL, NULL, event->button, event->time);
       return TRUE;
-   } else
-      return FALSE;
+   }
+   return FALSE;
 }
 
 /*
  * Connect all signals of a page or an image.
  */
-static void Html_connect_signals(DilloHtml *html, GtkObject *widget)
+static void Html_connect_signals(DilloHtml *html, GObject *object)
 {
-   gtk_signal_connect (widget, "link_entered",
-                       GTK_SIGNAL_FUNC(Html_handle_status),
-                       (gpointer)html->linkblock);
-   gtk_signal_connect (widget, "link_pressed", GTK_SIGNAL_FUNC(Html_link_menu),
-                       (gpointer)html->linkblock);
-   gtk_signal_connect (widget, "link_clicked",
-                       GTK_SIGNAL_FUNC(Html_link_clicked),
-                       (gpointer)html->linkblock);
+   g_signal_connect (object, "link_entered",
+                     G_CALLBACK(Html_handle_status), html->linkblock);
+   g_signal_connect (object, "link_pressed",
+                     G_CALLBACK(Html_link_menu), html->linkblock);
+   g_signal_connect (object, "link_clicked",
+                     G_CALLBACK(Html_link_clicked), html->linkblock);
 }
 
 
@@ -452,7 +467,7 @@
    a_Dw_style_unref (style);
 
    /* Handle it when the user clicks on a link */
-   Html_connect_signals(html, GTK_OBJECT(page));
+   Html_connect_signals(html, G_OBJECT(page));
 }
 
 /*
@@ -528,16 +543,14 @@
    html->stack[0].table_cell_style = NULL;
 
    /* Handle it when the user clicks on a link */
-   Html_connect_signals(html, GTK_OBJECT(widget));
+   Html_connect_signals(html, G_OBJECT(widget));
 
-   gtk_signal_connect_while_alive (
-      GTK_OBJECT(GTK_BIN(html->bw->docwin)->child), "button_press_event",
-      GTK_SIGNAL_FUNC(Html_page_menu), (gpointer)html->bw, GTK_OBJECT (page));
+   g_signal_connect(G_OBJECT(GTK_BIN(html->bw->docwin)->child),
+                    "button_press_event", G_CALLBACK(Html_page_menu), html->bw);
 
    /* Destroy the linkblock when the DwPage is destroyed */
-   gtk_signal_connect_object(GTK_OBJECT(page), "destroy",
-                             GTK_SIGNAL_FUNC(Html_lb_free),
-                             (gpointer)html->linkblock);
+   g_signal_connect(G_OBJECT(page), "destroy", G_CALLBACK(Html_lb_free),
+                    html->linkblock);
 }
 
 /*
@@ -550,6 +563,10 @@
    html = g_new(DilloHtml, 1);
 
    html->Start_Ofs = 0;
+   html->utf8_offset = 0;
+   html->utf8_buf = g_string_new("");
+   html->Encoding = NULL;
+
    html->dw = NULL;
    html->bw = bw;
    html->linkblock = Html_lb_new(bw, url);
@@ -708,7 +725,7 @@
          /* Numeric token */
          base = (token[2] == 'x' || token[2] == 'X') ? 16 : 10;
          isocode = strtol(token + 2 + (base==16), NULL, base);
-         return (isocode > 0 && isocode <= 255) ? isocode : -1;
+         return isocode > 0 ? isocode : -1;
       } else {
          /* Search for named entity */
          name = g_strndup(token + 1, eoe - token - 1);
@@ -726,23 +743,41 @@
  */
 static char *Html_parse_entities(gchar *token, gint toksize)
 {
-   gchar *new_str;
-   gint i, j, isocode;
+   GString *gstr;
+   gchar *new_str, *p;
+   gint i, isocode, len;
+   gboolean in_ent;
+   gunichar c;
 
    if ( memchr(token, '&', toksize) == NULL )
       return g_strndup(token, toksize);
 
-   new_str = g_new(char, toksize + 1);
-   for (i = j = 0; i < toksize; i++) {
-      if (token[i] == '&' &&
-          (isocode = Html_parse_entity(token + i, toksize - i)) != -1) {
-         new_str[j++] = isocode;
-         while(token[++i] != ';');
+   /* Get length in characters, not in bytes */
+   len = g_utf8_strlen(token, toksize);
+
+   gstr = g_string_new("");
+   in_ent = FALSE;
+
+   for (i = 0, p = token; i < len; i++) {
+      c = g_utf8_get_char(p);
+
+      if (c == '&' &&
+          (isocode = Html_parse_entity(p, len - i)) != -1) {
+         g_string_append_unichar(gstr, isocode);
+         in_ent = TRUE;
       } else {
-         new_str[j++] = token[i];
+         if (in_ent && c == ';')
+            in_ent = FALSE;
+         else if (!in_ent)
+            g_string_append_unichar(gstr, c);
       }
+
+      p = g_utf8_next_char(p);
    }
-   new_str[j] = '\0';
+
+   new_str = gstr->str;
+   g_string_free(gstr, FALSE);
+
    return new_str;
 }
 
@@ -934,8 +969,8 @@
  */
 static void Html_eventually_pop_dw(DilloHtml *html)
 {
-   if(html->dw != html->stack[html->stack_top].page) {
-      if(html->stack[html->stack_top].hand_over_break)
+   if (html->dw != html->stack[html->stack_top].page) {
+      if (html->stack[html->stack_top].hand_over_break)
          a_Dw_page_hand_over_break(DW_PAGE(html->dw),
                                    html->stack[(html)->stack_top].style);
       a_Dw_page_flush(DW_PAGE(html->dw));
@@ -956,8 +991,8 @@
       g_free(html->stack[html->stack_top--].tag);
       Html_eventually_pop_dw(html);
       return TRUE;
-   } else
-      return FALSE;
+   }
+   return FALSE;
 }
 
 /*
@@ -1024,7 +1059,7 @@
       break;
 
    default:
-      l = DW_STYLE_CREATE_LENGTH ((gint)v);
+      l = DW_STYLE_CREATE_LENGTH ((gint)(prefs.halfsize_images ? v/2 : v));
       break;
    }
 
@@ -1266,7 +1301,10 @@
    gint32 border = 0, cellspacing = 1, cellpadding = 2, bgcolor;
 #endif
 
-   Html_par_push_tag(html, tag, tagsize);
+   Html_cleanup_tag(html, "p>");
+   Html_push_tag(html, tag, tagsize);
+   a_Dw_page_add_parbreak(DW_PAGE (html->dw), 0,
+                          html->stack[(html)->stack_top].style);
 
 #ifdef USE_TABLES
    if ((attrbuf = Html_get_attr(html, tag, tagsize, "border")))
@@ -1410,7 +1448,7 @@
       html->stack[html->stack_top].page = html->dw = col_page;
 
       /* Handle it when the user clicks on a link */
-      Html_connect_signals(html, GTK_OBJECT(col_page));
+      Html_connect_signals(html, G_OBJECT(col_page));
       break;
 
    default:
@@ -1636,13 +1674,6 @@
                            html->stack[(html)->stack_top].style);
 }
 
-
-/* For testing, should be removed soon. */
-static void Html_tag_open_button_clicked(void)
-{
-   g_print ("DwButton was clicked!\n");
-}
-
 /*
  * <BUTTON>
  */
@@ -1654,6 +1685,12 @@
     */
    DwStyle style_attrs, *style;
    DwWidget *button, *page;
+   DilloHtmlForm *form;
+   DilloHtmlLB *html_lb;
+   DilloHtmlInputType inp_type;
+   const gchar *attrbuf;
+   gchar *name, *value, *type;
+
    /* Render the button */
    Html_push_tag(html, tag, tagsize);
    style_attrs = *html->stack[html->stack_top].style;
@@ -1662,7 +1699,7 @@
    a_Dw_style_box_set_val(&style_attrs.border_width, 0);
    a_Dw_style_box_set_val(&style_attrs.padding, 0);
    style = a_Dw_style_new (&style_attrs, html->bw->main_window->window);
-   button = a_Dw_button_new ();
+   button = a_Dw_button_new (DW_USES_HINTS, TRUE);
 
    a_Dw_page_add_parbreak (DW_PAGE (html->dw), 5, style);
    a_Dw_page_add_widget (DW_PAGE (html->dw), button, style);
@@ -1677,24 +1714,50 @@
    a_Dw_container_add (DW_CONTAINER (button), page);
    a_Dw_style_box_set_val(&style_attrs.margin, 0);
 
+   a_Dw_button_set_sensitive (DW_BUTTON (button), FALSE);
+
    html->stack[html->stack_top].page = html->dw = page;
 
    /* Handle it when the user clicks on a link */
-   Html_connect_signals(html, GTK_OBJECT(page));
+   Html_connect_signals(html, G_OBJECT(page));
+
+   /* Connect it to the form */
+   html_lb = html->linkblock;
+   form = &(html_lb->forms[html_lb->num_forms - 1]);
+
+   type = (attrbuf = Html_get_attr(html, tag, tagsize, "type")) ?
+           g_strdup(attrbuf) : g_strdup("");
+   if (type == NULL)
+      return;
+
+   if (strcmp(type, "submit") == 0) {
+      inp_type = DILLO_HTML_INPUT_BUTTON_SUBMIT;
+      g_signal_connect(G_OBJECT(button), "clicked",
+                       G_CALLBACK(Html_submit_form), html_lb);
+   } else if (strcmp(type, "reset") == 0) {
+      inp_type = DILLO_HTML_INPUT_BUTTON_RESET;
+      g_signal_connect(G_OBJECT(button), "clicked",
+                       G_CALLBACK(Html_reset_form), html_lb);
+   } else
+      return;
 
-   /* for testing: */
-   a_Dw_button_set_sensitive (DW_BUTTON (button), TRUE);
-   gtk_signal_connect(GTK_OBJECT(button), "clicked",
-                      GTK_SIGNAL_FUNC(Html_tag_open_button_clicked), NULL);
-   /* todo: Connect it to the form */
+   value = (attrbuf = Html_get_attr(html, tag, tagsize, "value")) ?
+            g_strdup(attrbuf) : NULL;
+   name = (attrbuf = Html_get_attr(html, tag, tagsize, "name")) ?
+           g_strdup(attrbuf) : NULL;
+
+   Html_add_input(form, inp_type, (GtkWidget*)button, name, value,
+                  NULL, FALSE);
+
+   g_free(type);
+   g_free(name);
+   g_free(value);
 }
 
 
 static void Html_tag_open_font(DilloHtml *html, char *tag, gint tagsize)
 {
-#if 1
    DwStyle style_attrs, *old_style;
-   /*DwStyleFont font;*/
    const char *attrbuf;
    gint32 color;
 
@@ -1713,22 +1776,18 @@
          }
       }
 
-#if 0
       if ((attrbuf = Html_get_attr(html, tag, tagsize, "face"))) {
-         font = *( style_attrs.font );
+         DwStyleFont font = *( style_attrs.font );
          font.name = attrbuf;
          style_attrs.font = a_Dw_style_font_new_from_list (&font);
       }
-#endif
 
       html->stack[html->stack_top].style =
          a_Dw_style_new (&style_attrs, html->bw->main_window->window);
       a_Dw_style_unref (old_style);
    }
 
-#else
    Html_push_tag(html, tag, tagsize);
-#endif
 }
 
 
@@ -1798,28 +1857,16 @@
 }
 
 /*
- * Create a new Image struct and request the image-url to the cache
- * (If it either hits or misses, is not relevant here; that's up to the
- *  cache functions)
+ * Read image associated tag attributes,
+ * create new image and add it to the html page (if add is TRUE).
  */
-static void Html_tag_open_img(DilloHtml *html, char *tag, gint tagsize)
+static DilloImage *Html_add_new_image(DilloHtml *html, char *tag,
+                                      gint tagsize, DwStyle *style_attrs,
+                                      gboolean add)
 {
    DilloImage *Image;
-   DilloWeb *Web;
-   DilloUrl *url, *usemap_url;
-   DwPage *page;
-   DwStyle style_attrs;
    char *width_ptr, *height_ptr, *alt_ptr;
    const char *attrbuf;
-   gint ClientKey, border;
-
-   if ( !(attrbuf = Html_get_attr(html, tag, tagsize, "src")) )
-      return;
-
-   if (!(url = a_Url_new(attrbuf, URL_STR_(html->linkblock->base_url), 0, 0)))
-      return;
-
-   page = DW_PAGE (html->dw);
 
    width_ptr = NULL;
    if ((attrbuf = Html_get_attr(html, tag, tagsize, "width")))
@@ -1833,15 +1880,68 @@
    if ((attrbuf = Html_get_attr(html, tag, tagsize, "alt")))
       alt_ptr = g_strdup(attrbuf);
 
+   if ((width_ptr && !height_ptr) || (height_ptr && !width_ptr))
+      DEBUG_HTML_MSG("Image tag only sepecifies <%s>\n",
+                     (width_ptr) ? "width" : "height");
+
+   /* Add a new image widget to this page */
+   if ((Image = a_Image_new(0, 0, alt_ptr,
+                            html->stack[html->stack_top].current_bg_color)))
+      if (add)
+         Html_add_widget(html, DW_WIDGET(Image->dw), width_ptr, height_ptr,
+                         style_attrs);
+
+   g_free(width_ptr);
+   g_free(height_ptr);
+   g_free(alt_ptr);
+   return Image;
+}
+
+/*
+ * Tell cache to retrieve image
+ */
+static void Html_load_image(DilloHtml *html, DilloUrl *url, DilloImage *Image)
+{
+   DilloWeb *Web;
+   gint ClientKey;
+   /* Fill a Web structure for the cache query */
+   Web = a_Web_new(url);
+   Web->bw = html->bw;
+   Web->Image = Image;
+   Web->flags |= WEB_Image;
+   /* Request image data from the cache */
+   if ((ClientKey = a_Cache_open_url(Web, NULL, NULL)) != 0) {
+      a_Interface_add_client(html->bw, ClientKey, 0);
+      a_Interface_add_url(html->bw, url, WEB_Image);
+   }
+}
+
+/*
+ * Create a new Image struct and request the image-url to the cache
+ * (If it either hits or misses, is not relevant here; that's up to the
+ *  cache functions)
+ */
+static void Html_tag_open_img(DilloHtml *html, char *tag, gint tagsize)
+{
+   DilloImage *Image;
+   DilloUrl *url, *usemap_url;
+   DwPage *page;
+   DwStyle style_attrs;
+   const char *attrbuf;
+   gint border;
+
+   if (!(attrbuf = Html_get_attr(html, tag, tagsize, "src")) ||
+       !(url = a_Url_new(attrbuf, URL_STR(html->linkblock->base_url), 0, 0)))
+      return;
+
+   page = DW_PAGE (html->dw);
+
+
    usemap_url = NULL;
    if ((attrbuf = Html_get_attr(html, tag, tagsize, "usemap")))
       /* todo: usemap URLs outside of the document are not used. */
       usemap_url = a_Url_new(attrbuf, URL_STR_(html->linkblock->base_url),0,0);
 
-   if ((width_ptr && !height_ptr) || (height_ptr && !width_ptr))
-      DEBUG_HTML_MSG("Image tag only sepecifies <%s>\n",
-                     (width_ptr) ? "width" : "height");
-
    style_attrs = *html->stack[html->stack_top].style;
 
    if (html->stack[html->stack_top].style->link != -1 || usemap_url != NULL) {
@@ -1866,12 +1966,8 @@
       a_Dw_style_box_set_val (&style_attrs.border_width, border);
    }
 
-   /* Add a new image widget to this page */
-   Image = a_Image_new(0, 0, alt_ptr,
-                       html->stack[html->stack_top].current_bg_color);
-   Html_add_widget(html, DW_WIDGET(Image->dw), width_ptr, height_ptr,
-                   &style_attrs);
-   Html_connect_signals(html, GTK_OBJECT(Image->dw));
+   Image = Html_add_new_image(html, tag, tagsize, &style_attrs, TRUE);
+   Html_connect_signals(html, G_OBJECT(Image->dw));
 
    /* Image maps */
    if (Html_get_attr(html, tag, tagsize, "ismap")) {
@@ -1886,20 +1982,8 @@
       a_Url_free (usemap_url);
    }
 
-   /* Fill a Web structure for the cache query */
-   Web = a_Web_new(url);
-   Web->bw = html->bw;
-   Web->Image = Image;
-   Web->flags |= WEB_Image;
-   /* Request image data from the cache */
-   if ((ClientKey = a_Cache_open_url(Web, NULL, NULL)) != 0) {
-      a_Interface_add_client(html->bw, ClientKey, 0);
-      a_Interface_add_url(html->bw, url, WEB_Image);
-   }
+   Html_load_image(html, url, Image);
    a_Url_free(url);
-   g_free(width_ptr);
-   g_free(height_ptr);
-   g_free(alt_ptr);
 }
 
 /*
@@ -2430,8 +2514,12 @@
       /* Make buttons sensitive again */
       for (i = 0; i < form->num_inputs; i++) {
          if (form->inputs[i].type == DILLO_HTML_INPUT_SUBMIT ||
-            form->inputs[i].type == DILLO_HTML_INPUT_RESET) {
+             form->inputs[i].type == DILLO_HTML_INPUT_RESET) {
             gtk_widget_set_sensitive(form->inputs[i].widget, TRUE);
+         } else if (form->inputs[i].type == DILLO_HTML_INPUT_IMAGE ||
+                    form->inputs[i].type == DILLO_HTML_INPUT_BUTTON_SUBMIT ||
+                    form->inputs[i].type == DILLO_HTML_INPUT_BUTTON_RESET) {
+            a_Dw_button_set_sensitive(DW_BUTTON(form->inputs[i].widget), TRUE);
          }
       }
    }
@@ -2449,9 +2537,29 @@
  */
 static void Html_tag_open_meta(DilloHtml *html, char *tag, gint tagsize)
 {
+   const char *attrbuf;
+   char *str;
+   guint i;
+
    /* only valid inside HEAD */
-   if (html->InFlags & IN_HEAD)
+   if (!(html->InFlags & IN_HEAD))
       return;
+
+   /* Check for enoding */
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "http-equiv")) &&
+       g_strcasecmp(attrbuf, "content-type") == 0) {
+      if ((attrbuf = Html_get_attr(html, tag, tagsize, "content"))) {
+         if ((str = strstr(attrbuf, "charset="))) {
+            for (i = 8; str[i] != '\0' && str[i] != ';'; i++)
+               ;
+
+            html->Encoding = g_strndup(str + 8, i - 8);
+	    /* TODO: For this to work for multi-byte charsets, we have to
+             * reconvert the document and adjust the parser offset to the
+             * point just after this tag */
+         }
+      }
+   }
 }
 
 /*
@@ -2565,6 +2673,7 @@
        type == DILLO_HTML_INPUT_TEXTAREA) {
       form->num_entry_fields++;
    } else if (type == DILLO_HTML_INPUT_SUBMIT ||
+              type == DILLO_HTML_INPUT_BUTTON_SUBMIT ||
               type == DILLO_HTML_INPUT_IMAGE) {
       form->num_submit_buttons++;
    }
@@ -2597,7 +2706,7 @@
  * Reset all inputs in the form containing reset to their initial values.
  * In general, reset is the reset button for the form.
  */
-static void Html_reset_form(GtkWidget *reset, DilloHtmlLB *html_lb)
+static gboolean Html_reset_form(GtkWidget *reset, DilloHtmlLB *html_lb)
 {
    gint i, j;
    DilloHtmlForm *form;
@@ -2607,6 +2716,8 @@
       for ( j = 0; j < form->num_inputs; j++)
          Html_reset_input(&(form->inputs[j]));
    }
+
+   return TRUE;
 }
 
 /*
@@ -2646,30 +2757,68 @@
 static void
  Html_append_input(GString *url, const char *name, const char *value)
 {
+   char *iso_name;
+   char *iso_value;
+   GError *err = NULL;
+
    if (name != NULL) {
-      Html_urlencode_append(url, name);
+      /* Convert name and value to ISO-8859-1 */
+      iso_name = g_convert(name, -1, "iso8859-1", "utf8", NULL, NULL, &err);
+      if (err) {
+         g_warning ("Html_append_input(): %s\n", err->message);
+         g_error_free(err);
+         return;
+      }
+
+      iso_value = g_convert(value, -1, "iso8859-1", "utf8", NULL, NULL, &err);
+      if (err) {
+         g_warning ("Html_append_input(): %s\n", err->message);
+         g_error_free(err);
+         return;
+      }
+
+      Html_urlencode_append(url, iso_name);
       g_string_append_c(url, '=');
-      Html_urlencode_append(url, value);
+      Html_urlencode_append(url, iso_value);
       g_string_append_c(url, '&');
    }
 }
 
 /*
+ * Append a image button click position to an existing url.
+ */
+static void Html_append_clickpos(GString *url, const char *name, int x, int y)
+{
+   if (name) {
+      Html_urlencode_append(url, name);
+      g_string_sprintfa(url, ".x=%d&", x);
+      Html_urlencode_append(url, name);
+      g_string_sprintfa(url, ".y=%d&", y);
+   } else
+      g_string_sprintfa(url, "x=%d&y=%d&", x, y);
+}
+
+/*
  * Submit the form containing the submit input by making a new query URL
  * and sending it with a_Nav_push.
  * (Called by GTK+)
+ * click_x and click_y are used only by input images and are set only when
+ * called by Html_image_clicked. GTK+ does NOT give these arguments.
  */
-static void Html_submit_form(GtkWidget *submit, DilloHtmlLB *html_lb)
+static gboolean Html_submit_form(GtkWidget *submit, DilloHtmlLB *html_lb,
+                                 gint click_x, gint click_y)
 {
    gint i, input_index;
    DilloHtmlForm *form;
    DilloHtmlInput *input;
    DilloUrl *new_url;
    gchar *url_str, *action_str, *p;
+   GtkTextBuffer *buffer = NULL;
+   GtkTextIter *start = NULL, *end = NULL;
 
    /* Search the form that generated the submit event */
    if ( (i = Html_find_form(submit, html_lb)) == -1 )
-      return;
+      return FALSE;
 
    form = &html_lb->forms[i];
    if ((form->method == DILLO_HTML_METHOD_GET) ||
@@ -2716,14 +2865,23 @@
             }
             break;
          case DILLO_HTML_INPUT_TEXTAREA:
+            buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(input->widget));
+            gtk_text_buffer_get_bounds(buffer, start, end);
             Html_append_input(DataStr, input->name,
-               gtk_editable_get_chars(GTK_EDITABLE (input->widget),0,-1));
+               gtk_text_buffer_get_text(buffer, start, end, FALSE));
             break;
          case DILLO_HTML_INPUT_INDEX:
             Html_urlencode_append(DataStr,
                gtk_entry_get_text(GTK_ENTRY(input->widget)));
             break;
+         case DILLO_HTML_INPUT_IMAGE:
+            if (input->widget == submit) {
+               Html_append_input(DataStr, input->name, input->init_str);
+               Html_append_clickpos(DataStr, input->name, click_x, click_y);
+            }
+            break;
          case DILLO_HTML_INPUT_SUBMIT:
+         case DILLO_HTML_INPUT_BUTTON_SUBMIT:
             /* Only the button that triggered the submit. */
             if (input->widget == submit && form->num_submit_buttons > 0)
                Html_append_input(DataStr, input->name, input->init_str);
@@ -2756,11 +2914,13 @@
 
       a_Nav_push(html_lb->bw, new_url);
       g_free(action_str);
-      g_string_free(DataStr, TRUE);
       a_Url_free(new_url);
+      g_string_free(DataStr, TRUE);
    } else {
       g_print("Html_submit_form: Method unknown\n");
    }
+
+   return TRUE;
 }
 
 
@@ -2768,19 +2928,70 @@
  * Submit form if it has no submit button.
  * (Called by GTK+ when the user presses enter in a text entry within a form)
  */
-static void Html_enter_submit_form(GtkWidget *submit, DilloHtmlLB *html_lb)
+static gboolean Html_enter_submit_form(GtkWidget *submit, DilloHtmlLB *html_lb)
 {
    gint i;
 
    /* Search the form that generated the submit event */
    if ( (i = Html_find_form(submit, html_lb)) == -1 )
-      return;
+      return FALSE;
 
    /* Submit on enterpress when there's a single text-entry only,
     * or if the user set enter to always submit */
    if ((html_lb->forms[i].num_entry_fields == 1) ||
        prefs.enterpress_forces_submit)
-      Html_submit_form(submit, html_lb);
+      Html_submit_form(submit, html_lb, 1, 1);
+
+   return TRUE;
+}
+
+/*
+ * Call submit form, when input image has been clicked
+ */
+static gboolean Html_image_clicked(DwWidget *widget, gint x, gint y,
+                               DilloHtmlLB *lb)
+{
+   g_print("Hallo! (%d, %d, %p)\n", x, y, lb);
+   Html_submit_form((GtkWidget*) widget, lb, x, y);
+   return TRUE;
+}
+
+/*
+ * Create input image for the form
+ */ 
+static DwWidget *Html_input_image(DilloHtml *html, char *tag, gint tagsize,
+                                  DilloHtmlLB *html_lb, DilloUrl *action)
+{
+   DilloImage *Image;
+   DwWidget *button;
+   DilloUrl *url = NULL;
+   DwStyle style_attrs;
+   const char *attrbuf;
+
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "src")) &&
+       (url = a_Url_new(attrbuf, URL_STR(html->linkblock->base_url), 0, 0))) {
+      button = a_Dw_button_new (0, FALSE);
+      a_Dw_page_add_widget (DW_PAGE (html->dw), button,
+                            html->stack[html->stack_top].style);
+      g_signal_connect(G_OBJECT(button), "clicked_at",
+                       G_CALLBACK(Html_image_clicked), html_lb);
+      a_Dw_button_set_sensitive(DW_BUTTON(button), FALSE);
+
+      /* create new image and add it to the button */
+      if ((Image = Html_add_new_image(html, tag, tagsize, &style_attrs,
+                                      FALSE))) {
+         a_Dw_widget_set_style(DW_WIDGET(Image->dw),
+                               html->stack[html->stack_top].style);
+         a_Dw_container_add(DW_CONTAINER(button), DW_WIDGET(Image->dw));
+         Html_load_image(html, url, Image);
+         a_Url_free(url);
+         return button;
+      }
+   }
+
+   DEBUG_MSG(10, "Html_input_image: unable to create image submit.\n");
+   a_Url_free(url);
+   return NULL;
 }
 
 /*
@@ -2794,8 +3005,8 @@
    DwWidget *embed_gtk;
    GtkWidget *widget = NULL;
    GSList *group;
-   char *value, *name, *type, *init_str;
-   const char *attrbuf;
+   gchar *value, *name, *type, *init_str;
+   const gchar *attrbuf;
    gboolean init_val = FALSE;
    gint input_index;
 
@@ -2854,28 +3065,24 @@
          init_str = g_strdup(Html_get_attr2(html, tag, tagsize, "value", 0));
    } else if (!g_strcasecmp(type, "submit")) {
       inp_type = DILLO_HTML_INPUT_SUBMIT;
-      init_str = (value) ? value : g_strdup("submit");
+      init_str = (value) ? value : g_strdup("Submit");
       widget = gtk_button_new_with_label(init_str);
       gtk_widget_set_sensitive(widget, FALSE); /* Until end of FORM! */
-      gtk_signal_connect(GTK_OBJECT(widget), "clicked",
-                         GTK_SIGNAL_FUNC(Html_submit_form), html_lb);
+      g_signal_connect(G_OBJECT(widget), "clicked",
+                       G_CALLBACK(Html_submit_form), html_lb);
    } else if (!g_strcasecmp(type, "reset")) {
       inp_type = DILLO_HTML_INPUT_RESET;
       init_str = (value) ? value : g_strdup("Reset");
       widget = gtk_button_new_with_label(init_str);
       gtk_widget_set_sensitive(widget, FALSE); /* Until end of FORM! */
-      gtk_signal_connect(GTK_OBJECT(widget), "clicked",
-                         GTK_SIGNAL_FUNC(Html_reset_form), html_lb);
+      g_signal_connect(G_OBJECT(widget), "clicked",
+                       G_CALLBACK(Html_reset_form), html_lb);
    } else if (!g_strcasecmp(type, "image")) {
-      /* todo: implement this as an image. It'd better be clickable too! =) */
       inp_type = DILLO_HTML_INPUT_IMAGE;
-      if ((attrbuf = Html_get_attr(html, tag, tagsize, "alt")))
-         widget = gtk_button_new_with_label(attrbuf);
-      else
-         widget = gtk_button_new_with_label("Submit");
-      gtk_signal_connect(GTK_OBJECT(widget), "clicked",
-                         GTK_SIGNAL_FUNC(Html_submit_form), html_lb);
-      init_str = (value) ? value : NULL;
+      /* use a dw_image widget */
+      widget = (GtkWidget*) Html_input_image(html, tag, tagsize,
+                                             html_lb, form->action);
+      init_str = value;
    } else if (!g_strcasecmp(type, "file")) {
       /* todo: implement it! */
       inp_type = DILLO_HTML_INPUT_FILE;
@@ -2893,25 +3100,24 @@
       widget = gtk_entry_new();
 
       init_str = (value) ? value : NULL;
-      gtk_signal_connect(GTK_OBJECT(widget), "activate",
-                         GTK_SIGNAL_FUNC(Html_enter_submit_form),
-                         html_lb);
+      g_signal_connect(G_OBJECT(widget), "activate",
+                       G_CALLBACK(Html_enter_submit_form), html_lb);
    }
 
    Html_add_input(form, inp_type, widget, name,
                   (init_str) ? init_str : "", NULL, init_val);
 
-   if (widget != NULL) {
+   if (widget != NULL && inp_type != DILLO_HTML_INPUT_IMAGE) {
       if (inp_type == DILLO_HTML_INPUT_TEXT ||
-         inp_type == DILLO_HTML_INPUT_PASSWORD) {
+          inp_type == DILLO_HTML_INPUT_PASSWORD) {
          /*
           * The following is necessary, because gtk_entry_button_press
           * returns FALSE, so the event would be delivered to the
           * GtkDwScrolledFrame, which then would be focused, instead of
           * the entry.
           */
-         gtk_signal_connect_after(GTK_OBJECT(widget), "button_press_event",
-                                  GTK_SIGNAL_FUNC(gtk_true), NULL);
+         g_signal_connect_after(G_OBJECT(widget), "button_press_event",
+                                G_CALLBACK(gtk_true), NULL);
 
          /* Readonly or not? */
          gtk_entry_set_editable(
@@ -2921,7 +3127,8 @@
          /* Set width of the entry */
          if ((attrbuf = Html_get_attr(html, tag, tagsize, "size")))
             gtk_widget_set_usize(widget, strtol(attrbuf, NULL, 10) *
-                                 gdk_char_width(widget->style->font, '0'), 0);
+                                 gdk_char_width(gtk_style_get_font(
+                                       widget->style), '0'), 0);
 
          /* Maximum length of the text in the entry */
          if ((attrbuf = Html_get_attr(html, tag, tagsize, "maxlength")))
@@ -2979,14 +3186,12 @@
    widget = gtk_entry_new();
    Html_add_input(form, DILLO_HTML_INPUT_INDEX,
                   widget, NULL, NULL, NULL, FALSE);
-   gtk_signal_connect(GTK_OBJECT(widget), "activate",
-                      GTK_SIGNAL_FUNC(Html_enter_submit_form),
-                      html_lb);
+   g_signal_connect(G_OBJECT(widget), "activate",
+                    G_CALLBACK(Html_enter_submit_form), html_lb);
    gtk_widget_show(widget);
    /* compare <input type=text> */
-   gtk_signal_connect_after(GTK_OBJECT(widget), "button_press_event",
-                            GTK_SIGNAL_FUNC(gtk_true),
-                            NULL);
+   g_signal_connect_after(G_OBJECT(widget), "button_press_event",
+                          G_CALLBACK(gtk_true), NULL);
 
    embed_gtk = a_Dw_embed_gtk_new();
    a_Dw_embed_gtk_add_gtk(DW_EMBED_GTK(embed_gtk), widget);
@@ -3005,6 +3210,7 @@
    DilloHtmlLB *html_lb = html->linkblock;
    char *str;
    DilloHtmlForm *form;
+   GtkTextBuffer *buffer;
 
    if (!(html->InFlags & IN_FORM) ||
        !(html->InFlags & IN_TEXTAREA))
@@ -3018,8 +3224,9 @@
 
    form = &(html_lb->forms[html_lb->num_forms - 1]);
    form->inputs[form->num_inputs - 1].init_str = str;
-   gtk_text_insert(GTK_TEXT(form->inputs[form->num_inputs - 1].widget),
-                   NULL, NULL, NULL, str, -1);
+   buffer = gtk_text_view_get_buffer(
+         GTK_TEXT_VIEW(form->inputs[form->num_inputs - 1].widget));
+   gtk_text_buffer_set_text(buffer, str, -1);
 
    html->InFlags &= ~IN_TEXTAREA;
    Html_pop_tag(html, tag, tagsize);
@@ -3033,8 +3240,7 @@
 {
    DilloHtmlLB *html_lb;
    DilloHtmlForm *form;
-   GtkWidget *widget;
-   GtkWidget *scroll;
+   GtkWidget *widget, *scroll;
    DwWidget *embed_gtk;
    char *name;
    const char *attrbuf;
@@ -3068,11 +3274,10 @@
    if ((attrbuf = Html_get_attr(html, tag, tagsize, "name")))
       name = g_strdup(attrbuf);
 
-   widget = gtk_text_new(NULL, NULL);
+   widget = gtk_text_view_new ();
    /* compare <input type=text> */
-   gtk_signal_connect_after(GTK_OBJECT(widget), "button_press_event",
-                            GTK_SIGNAL_FUNC(gtk_true),
-                            NULL);
+   g_signal_connect_after(G_OBJECT(widget), "button_press_event",
+                          G_CALLBACK(gtk_true), NULL);
 
    /* Calculate the width and height based on the cols and rows
     * todo: Get it right... Get the metrics from the font that will be used.
@@ -3082,13 +3287,15 @@
    /* If the attribute readonly isn't specified we make the textarea
     * editable. If readonly is set we don't have to do anything.
     */
-   if (!Html_get_attr(html, tag, tagsize, "readonly"))
-      gtk_text_set_editable(GTK_TEXT(widget), TRUE);
+   if (Html_get_attr(html, tag, tagsize, "readonly"))
+      gtk_text_view_set_editable (GTK_TEXT_VIEW(widget), FALSE);
 
    scroll = gtk_scrolled_window_new(NULL, NULL);
    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
                                   GTK_POLICY_AUTOMATIC,
                                   GTK_POLICY_AUTOMATIC);
+   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll),
+                                       GTK_SHADOW_IN);
    gtk_container_add(GTK_CONTAINER(scroll), widget);
    gtk_widget_show(widget);
    gtk_widget_show(scroll);
@@ -3201,9 +3408,6 @@
       if ( select->options[select->num_options - 1].init_val )
          gtk_menu_item_activate(GTK_MENU_ITEM(menuitem));
       gtk_widget_show(menuitem);
-      gtk_signal_connect (GTK_OBJECT (menuitem), "select",
-                          GTK_SIGNAL_FUNC (a_Interface_scroll_popup),
-                          NULL);
    } else if ( input->type == DILLO_HTML_INPUT_SEL_LIST ) {
       menuitem = gtk_list_item_new_with_label(html->Stash->str);
       select->options[select->num_options - 1].menuitem = menuitem;
@@ -3530,7 +3734,7 @@
   {"style", Html_tag_open_style, Html_tag_close_style},
   {"sub", Html_tag_open_sub, Html_tag_close_default},
   {"sup", Html_tag_open_sup, Html_tag_close_default},
-  {"table", Html_tag_open_table, Html_tag_close_par},
+  {"table", Html_tag_open_table, Html_tag_close_div},
   /* tbody */
   {"td", Html_tag_open_td, Html_tag_close_default},
   {"textarea", Html_tag_open_textarea, Html_tag_close_textarea},
@@ -3616,6 +3820,65 @@
    }
 }
 
+static void Html_get_value(GString *Buf,
+                           const char *str,
+                           int delimiter,
+                           gboolean entities)
+{
+   char *p = (char *) str;
+   gunichar c;
+   gboolean in_ent = FALSE;
+   int isocode;
+
+   while (*p) {
+      c = g_utf8_get_char(p);
+
+      if (in_ent) {
+         if (c == ';')
+            in_ent = FALSE;
+         p = g_utf8_next_char(p);
+         continue;
+      }
+
+      if ((delimiter == ' ' && (isspace(c) || c == '>')) || c == delimiter) {
+         return;
+      } else if (c == '&' && entities) {
+         if ((isocode = Html_parse_entity(p, p - str /* FIXME */)) != -1) {
+            g_string_append_unichar(Buf, isocode);
+            in_ent = TRUE;
+         } else {
+            g_string_append_unichar(Buf, c);
+         }
+      } else if (c == '\r' || c == '\t') {
+         g_string_append_c(Buf, ' ');
+      } else if (c == '\n') {
+         /* ignore */
+      } else {
+         g_string_append_unichar(Buf, c);
+      }
+
+      p = g_utf8_next_char(p);
+   }
+}
+
+static int Html_skip_value(const char *str,
+                           int delimiter)
+{
+   char *p = (char *) str;
+   gunichar c;
+
+   while (*p) {
+      c = g_utf8_get_char(p);
+
+      if ((delimiter == ' ' && isspace(c)) || c == delimiter || c == '>')
+         return p - str;
+
+      p = g_utf8_next_char(p);
+   }
+
+   return p - str;
+}
+
 /*
  * Get attribute value for 'attrname' and return it.
  *  Tags start with '<' and end with a '>' (Ex: "<P align=center>")
@@ -3632,7 +3895,7 @@
                                   const char *attrname,
                                   DilloHtmlTagParsingFlags flags)
 {
-   gint i, isocode, Found = 0, delimiter = 0, attr_pos = 0;
+   gint i, Found = 0, delimiter = 0, attr_pos = 0;
    GString *Buf = html->attr_data;
    DilloHtmlTagParsingState state = SEEK_ATTR_START;
 
@@ -3676,27 +3939,12 @@
          break;
 
       case SKIP_VALUE:
-         if ((delimiter == ' ' && isspace(tag[i])) || tag[i] == delimiter)
-            state = SEEK_TOKEN_START;
+         i += Html_skip_value(tag + i, delimiter);
+         state = SEEK_TOKEN_START;
          break;
       case GET_VALUE:
-         if ((delimiter == ' ' && (isspace(tag[i]) || tag[i] == '>')) ||
-             tag[i] == delimiter) {
-            state = FINISHED;
-         } else if (tag[i] == '&' && (flags & HTML_ParseEntities)) {
-            if ((isocode = Html_parse_entity(tag+i, tagsize-i)) != -1) {
-               g_string_append_c(Buf, (gchar) isocode);
-               while(tag[++i] != ';');
-            } else {
-               g_string_append_c(Buf, tag[i]);
-            }
-         } else if (tag[i] == '\r' || tag[i] == '\t') {
-            g_string_append_c(Buf, ' ');
-         } else if (tag[i] == '\n') {
-            /* ignore */
-         } else {
-            g_string_append_c(Buf, tag[i]);
-         }
+         Html_get_value(Buf, tag + i, delimiter, (flags & HTML_ParseEntities));
+         state = FINISHED;
          break;
 
       case FINISHED:
@@ -3739,10 +3987,10 @@
    DwStyle new_style_attrs, *style;
 
    new_style_attrs = *style_attrs;
-   new_style_attrs.width = width_str ?
-      Html_parse_length (width_str) : DW_STYLE_UNDEF_LENGTH;
-   new_style_attrs.height = height_str ?
-      Html_parse_length (height_str) : DW_STYLE_UNDEF_LENGTH;
+   new_style_attrs.width = 
+      width_str ? Html_parse_length (width_str) : DW_STYLE_UNDEF_LENGTH;
+   new_style_attrs.height = 
+      height_str ? Html_parse_length (height_str) : DW_STYLE_UNDEF_LENGTH;
    style = a_Dw_style_new (&new_style_attrs, (html)->bw->main_window->window);
    a_Dw_page_add_widget(DW_PAGE (html->dw), widget, style);
    a_Dw_style_unref (style);
@@ -3759,11 +4007,67 @@
  */
 static void Html_callback(int Op, CacheClient_t *Client)
 {
+   DilloHtml *html = Client->CbData;
+   GError *err = NULL;
+   char *utf8_str;
+   gsize bufsize, bytes_read;
+
+   /* Check if there was an encoding specified in the header. If not we
+    * use a default and hope for the best. */
+   if (!html->Encoding) {
+      if (Client->Encoding) {
+         html->Encoding = g_strdup(Client->Encoding);
+      } else {
+         /* Use default. TODO: make customisable */
+         html->Encoding = g_strdup("ISO-8859-1");
+      }
+   }
+
+   /* Convert to UTF-8 */
+   utf8_str = g_convert(Client->Buf + html->Start_Ofs,
+                        Client->BufSize - html->Start_Ofs,
+                        "UTF8", html->Encoding, &bytes_read, &bufsize, &err);
+
+   if (err) {
+      /* Something went wrong in the conversion process. */
+      switch (err->code) {
+      case G_CONVERT_ERROR_ILLEGAL_SEQUENCE:
+         /* The end of this chunk is inside of a multi-byte character. We
+          * use the bytes_read variable from the previous call to get it right*/
+	 utf8_str = g_convert(Client->Buf + html->Start_Ofs, bytes_read,
+			      "UTF8", html->Encoding, NULL, &bufsize, NULL);
+	 break;
+      default:
+	 g_warning("Conversion from %s to UTF-8 failed: %s\n", html->Encoding, err->message);
+	 bufsize = bytes_read = Client->BufSize - html->Start_Ofs;
+	 utf8_str = g_malloc (bufsize);
+	 memcpy (utf8_str, Client->Buf + html->Start_Ofs, bufsize);
+	 {
+	   int i;
+	   for (i = 0; i < bufsize; i++)
+	     {
+	       if (utf8_str[i] & 0x80)
+		 utf8_str[i] = '?';
+	     }
+	 }
+	 break;
+      }
+
+      g_error_free(err);
+   }
+
+   if (bufsize)
+     g_string_append_len(html->utf8_buf, utf8_str, bufsize);
+   g_free(utf8_str);
+
+   /* Line up for the next chunk */
+   html->Start_Ofs += bytes_read;
+
    if ( Op ) {
-      Html_write(Client->CbData, Client->Buf, Client->BufSize, 1);
-      Html_close(Client->CbData, Client->Key);
+      Html_write(html, html->utf8_buf->str, html->utf8_buf->len, 1);
+      Html_close(html, Client->Key);
    } else
-      Html_write(Client->CbData, Client->Buf, Client->BufSize, 0);
+      Html_write(html, html->utf8_buf->str, html->utf8_buf->len, 0);
 }
 
 /*
@@ -3776,30 +4080,26 @@
    DwPage *page;
    char completestr[32];
    gint token_start, buf_index;
-   char *buf = Buf + html->Start_Ofs;
-   gint bufsize = BufSize - html->Start_Ofs;
+   char *buf = Buf + html->utf8_offset;
+   guint bufsize = BufSize - html->utf8_offset;
 
    g_return_if_fail ( (page = DW_PAGE (html->dw)) != NULL );
 
-   buf = g_strndup(buf, bufsize);
-
    /* Now, 'buf' and 'bufsize' define a buffer aligned to start at a token
     * boundary. Iterate through tokens until end of buffer is reached. */
-   buf_index = 0;
-   token_start = buf_index;
+   token_start = buf_index = 0;
    while (buf_index < bufsize) {
-      /* invariant: buf_index == bufsize || token_start == buf_index */
-
       if (html->stack[html->stack_top].parse_mode ==
           DILLO_HTML_PARSE_MODE_SCRIPT) {
          /* Non HTML code here, let's skip until closing tag */
          do {
-            buf_index += strcspn(buf + buf_index, "<");
+            buf_index += d_strcspn(buf + buf_index, "<");
+
             if (buf_index + 9 > bufsize)
                buf_index = bufsize;
             else if (strncmp(buf + buf_index, "</", 2) == 0 &&
                      Html_match_tag(html->stack[html->stack_top].tag,
-                                    buf+buf_index+2, 7)) {
+                                    buf + buf_index + 2, 7)) {
                token_start = buf_index;
                break;
             } else
@@ -3832,20 +4132,22 @@
             /* Tag: search end of tag (skipping over quoted strings) */
             while ( buf_index < bufsize ) {
                buf_index++;
-               buf_index += strcspn(buf + buf_index, ">\"'");
+               buf_index += d_strcspn(buf + buf_index, ">\"'");
+
                if ( (ch = buf[buf_index]) == '>' ) {
                   break;
                } else if ( ch == '"' || ch == '\'' ) {
                   /* Skip over quoted string */
                   buf_index++;
-                  buf_index += strcspn(buf + buf_index,
-                                       (ch == '"') ? "\">" : "'>");
+                  buf_index += d_strcspn(buf + buf_index,
+                                         (ch == '"') ? "\">" : "'>");
+
                   if ( buf[buf_index] == '>' ) {
                      /* Unterminated string value? Let's look ahead and test:
                       * (<: unterminated, closing-quote: terminated) */
                      gint offset = buf_index + 1;
-                     offset += strcspn(buf + offset,
-                                       (ch == '"') ? "\"<" : "'<");
+                     offset += d_strcspn(buf + offset,
+                                         (ch == '"') ? "\"<" : "'<");
                      if (buf[offset] == ch || !buf[offset]) {
                         buf_index = offset;
                      } else {
@@ -3865,7 +4167,7 @@
       } else {
          /* A Word: search for whitespace or tag open */
          while (++buf_index < bufsize) {
-            buf_index += strcspn(buf + buf_index, " <\n\r\t\f\v");
+            buf_index += d_strcspn(buf + buf_index, " <\n\r\t\f\v");
             if ( buf[buf_index] == '<' && (ch = buf[buf_index + 1]) &&
                  !isalpha(ch) && !strchr("/!?", ch))
                continue;
@@ -3880,16 +4182,15 @@
       }
    }/*while*/
 
-   html->Start_Ofs += token_start;
+   html->utf8_offset += token_start;
 
    if ( html->bw ) {
       sprintf(completestr,"%s%.1f Kb", PBAR_PSTR(prefs.panel_size == 1),
-              (float)html->Start_Ofs/1024);
+              (float) html->utf8_offset / 1024);
       a_Progressbar_update(html->bw->progress, completestr, 1);
    }
 
    a_Dw_page_flush(page);
-   g_free(buf);
 }
 
 /*
@@ -3910,6 +4211,8 @@
 
    g_string_free(html->Stash, TRUE);
    g_string_free(html->attr_data, TRUE);
+   g_string_free(html->utf8_buf, TRUE);
+   g_free(html->Encoding);
 
    /* Remove this client from our active list */
    a_Interface_close_client(html->bw, ClientKey);
diff -urN dillo-0.6.6/src/html.h dillo2-0.6.6/src/html.h
--- dillo-0.6.6/src/html.h	2002-05-26 09:09:02.000000000 -0600
+++ dillo2-0.6.6/src/html.h	2003-04-21 12:36:17.000000000 -0600
@@ -162,6 +162,8 @@
   DILLO_HTML_INPUT_HIDDEN,
   DILLO_HTML_INPUT_SUBMIT,
   DILLO_HTML_INPUT_RESET,
+  DILLO_HTML_INPUT_BUTTON_SUBMIT,
+  DILLO_HTML_INPUT_BUTTON_RESET,
   DILLO_HTML_INPUT_SELECT,
   DILLO_HTML_INPUT_SEL_LIST,
   DILLO_HTML_INPUT_TEXTAREA,
@@ -183,7 +185,11 @@
   DwWidget *dw;          /* this is duplicated in the stack (page) */
 
   DilloHtmlLB *linkblock;
-  size_t Start_Ofs;
+  size_t Start_Ofs;      /* The offset in the cache data */
+
+  char *Encoding;        /* The encoding set from the header or a META tag */
+  GString *utf8_buf;     /* The UTF-8 converted data which the parser uses */
+  gsize utf8_offset;     /* The offset in the above buffer */
 
   DilloHtmlState *stack;
   gint stack_top;        /* Index to the top of the stack [0 based] */
diff -urN dillo-0.6.6/src/image.c dillo2-0.6.6/src/image.c
--- dillo-0.6.6/src/image.c	2002-03-04 10:04:21.000000000 -0700
+++ dillo2-0.6.6/src/image.c	2003-04-21 12:36:17.000000000 -0600
@@ -20,6 +20,7 @@
 #include <string.h>
 
 #include "image.h"
+#include "prefs.h"
 
 /*
  * Local data
diff -urN dillo-0.6.6/src/interface.c dillo2-0.6.6/src/interface.c
--- dillo-0.6.6/src/interface.c	2002-04-11 13:53:49.000000000 -0600
+++ dillo2-0.6.6/src/interface.c	2003-04-21 12:36:20.000000000 -0600
@@ -35,7 +35,6 @@
 #include "dw_widget.h"
 #include "dw_gtk_scrolled_window.h"
 #include "dw_gtk_viewport.h"
-#include "dw_gtk_statuslabel.h"
 #include "dw_container.h"
 #include "progressbar.h"
 
@@ -316,10 +315,11 @@
 /*
  * Clear a text entry
  */
-static void Interface_entry_clear(GtkEntry *entry)
+static gboolean Interface_entry_clear(GtkEntry *entry)
 {
    gtk_entry_set_text(GTK_ENTRY (entry), "");
    gtk_widget_grab_focus(GTK_WIDGET(entry));
+   return FALSE;
 }
 
 /*
@@ -383,10 +383,9 @@
 
    /* location entry */
    bw->location = gtk_entry_new();
-   gtk_signal_connect(GTK_OBJECT(bw->location), "activate",
-                      (GtkSignalFunc) a_Interface_entry_open_url, bw);
-   toolbar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
-   gtk_toolbar_set_button_relief(GTK_TOOLBAR(toolbar), GTK_RELIEF_NONE);
+   g_signal_connect(G_OBJECT(bw->location), "activate",
+                    G_CALLBACK(a_Interface_entry_open_url), bw);
+   toolbar = gtk_toolbar_new();
    GTK_WIDGET_UNSET_FLAGS (toolbar, GTK_CAN_FOCUS);
 
    bw->clear_url_button = gtk_toolbar_append_item(
@@ -394,9 +393,9 @@
                              NULL, "Clear the url-box!", "Toolbar/New",
                              Interface_pixmap_new(bw->main_window, s_new_xpm),
                              NULL, NULL);
-   gtk_signal_connect_object(GTK_OBJECT(bw->clear_url_button), "clicked",
-                             GTK_SIGNAL_FUNC (Interface_entry_clear),
-                             GTK_OBJECT(bw->location));
+   g_signal_connect_object(G_OBJECT(bw->clear_url_button), "clicked",
+                           G_CALLBACK(Interface_entry_clear),
+                           G_OBJECT(bw->location), G_CONNECT_SWAPPED);
 
    gtk_box_pack_start(GTK_BOX(hbox), toolbar, FALSE, FALSE, 0);
    gtk_widget_show(toolbar);
@@ -414,8 +413,7 @@
    GtkWidget *toolbar;
    gboolean s = prefs.small_icons;
 
-   toolbar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
-   gtk_toolbar_set_button_relief(GTK_TOOLBAR(toolbar), GTK_RELIEF_NONE);
+   toolbar = gtk_toolbar_new();
 
    /* back button */
    bw->back_button = gtk_toolbar_append_item(
@@ -424,12 +422,13 @@
                         "Go to previous page", "Toolbar/Back",
                         Interface_pixmap_new(bw->main_window,
                                              s ? s_left_xpm : left_xpm),
-                        (GtkSignalFunc) a_Commands_back_callback, bw);
+                        GTK_SIGNAL_FUNC(a_Commands_back_callback), bw);
+   gtk_button_set_relief(GTK_BUTTON(bw->back_button), GTK_RELIEF_NONE);
    gtk_widget_set_sensitive(bw->back_button, FALSE);
    Interface_set_button_accel(GTK_BUTTON(bw->back_button), "_,",
                               bw->accel_group);
-   gtk_signal_connect(GTK_OBJECT(bw->back_button), "button-press-event",
-                      GTK_SIGNAL_FUNC(a_Commands_navpress_callback), bw);
+   g_signal_connect(G_OBJECT(bw->back_button), "button_press_event",
+                    G_CALLBACK(a_Commands_navpress_callback), bw);
 
    /* forward button */
    bw->forw_button = gtk_toolbar_append_item(
@@ -438,12 +437,12 @@
                         "Go to next page", "Toolbar/Forward",
                         Interface_pixmap_new(bw->main_window,
                                              s ? s_right_xpm : right_xpm),
-                        (GtkSignalFunc) a_Commands_forw_callback, bw);
+                        GTK_SIGNAL_FUNC(a_Commands_forw_callback), bw);
    gtk_widget_set_sensitive(bw->forw_button, FALSE);
    Interface_set_button_accel(GTK_BUTTON(bw->forw_button), "_.",
                               bw->accel_group);
-   gtk_signal_connect(GTK_OBJECT(bw->forw_button), "button-press-event",
-                      GTK_SIGNAL_FUNC(a_Commands_navpress_callback), bw);
+   g_signal_connect(G_OBJECT(bw->forw_button), "button_press_event",
+                    G_CALLBACK(a_Commands_navpress_callback), bw);
 
    /* home button */
    bw->home_button = gtk_toolbar_append_item(
@@ -452,9 +451,7 @@
                         "Go to the Home page", "Toolbar/Home",
                         Interface_pixmap_new(bw->main_window,
                                              s ? s_home_xpm : home_xpm),
-                        (GtkSignalFunc) a_Commands_home_callback, bw);
-   gtk_signal_connect(GTK_OBJECT(bw->home_button), "button-press-event",
-                      GTK_SIGNAL_FUNC(a_Commands_navpress_callback), bw);
+                        GTK_SIGNAL_FUNC(a_Commands_home_callback), bw);
 
    /* reload button */
    bw->reload_button = gtk_toolbar_append_item(
@@ -463,7 +460,7 @@
                           "Reload this page", "Toolbar/Reload",
                           Interface_pixmap_new(bw->main_window,
                                                s ? s_reload_xpm : reload_xpm),
-                          (GtkSignalFunc) a_Commands_reload_callback, bw);
+                          GTK_SIGNAL_FUNC(a_Commands_reload_callback), bw);
 
    /* save button */
    bw->save_button = gtk_toolbar_append_item(
@@ -472,7 +469,7 @@
                         "Save this page", "Toolbar/Save",
                         Interface_pixmap_new(bw->main_window,
                                              s ? s_save_xpm : save_xpm),
-                        (GtkSignalFunc) a_Commands_save_callback, bw);
+                        GTK_SIGNAL_FUNC(a_Commands_save_callback), bw);
    /* stop button */
    bw->stop_button = gtk_toolbar_append_item(
                         GTK_TOOLBAR(toolbar),
@@ -480,7 +477,7 @@
                         "Stop the current transfer", "Toolbar/Stop",
                         Interface_pixmap_new(bw->main_window,
                                              s ? s_stop_xpm : stop_xpm),
-                        (GtkSignalFunc) a_Commands_stop_callback, bw);
+                        GTK_SIGNAL_FUNC(a_Commands_stop_callback), bw);
    gtk_widget_set_sensitive(bw->stop_button, FALSE);
 
    gtk_widget_show(toolbar);
@@ -552,7 +549,8 @@
 /*
  * Handler for mouse-clicks that don't belong to the viewport.
  */
-static int Interface_click_callback(BrowserWindow *bw, GdkEventButton *event)
+static int Interface_click_callback(GtkWidget *widget, GdkEventButton *event,
+                                    BrowserWindow *bw)
 {
    if (event->type == GDK_2BUTTON_PRESS && event->button == 1)
       a_Interface_toggle_panel(bw);
@@ -584,10 +582,10 @@
    bw->main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 
    gtk_window_set_policy(GTK_WINDOW(bw->main_window), TRUE, TRUE, FALSE);
-   gtk_signal_connect(GTK_OBJECT(bw->main_window), "delete_event",
-                      GTK_SIGNAL_FUNC(gtk_object_destroy), bw);
-   gtk_signal_connect(GTK_OBJECT(bw->main_window), "destroy",
-                      GTK_SIGNAL_FUNC(Interface_quit), bw);
+   g_signal_connect(G_OBJECT(bw->main_window), "delete_event",
+                    G_CALLBACK(gtk_object_destroy), bw);
+   g_signal_connect(G_OBJECT(bw->main_window), "destroy",
+                    G_CALLBACK(Interface_quit), bw);
    gtk_container_border_width(GTK_CONTAINER(bw->main_window), 0);
 
    gtk_window_set_wmclass(GTK_WINDOW(bw->main_window), "dillo", "Dillo");
@@ -649,7 +647,7 @@
 
       handlebox = gtk_handle_box_new();
       bw->PanelHandles = g_slist_append(bw->PanelHandles, handlebox);
-      gtk_container_border_width(GTK_CONTAINER(handlebox), 4);
+      gtk_container_border_width(GTK_CONTAINER(handlebox), 0);
       hbox = gtk_hbox_new(FALSE, 0);
       toolbar = Interface_toolbar_new(bw, 1);
       progbox = Interface_progressbox_new(bw, 1);
@@ -662,6 +660,41 @@
       gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
       gtk_widget_show(handlebox);
 
+   } else if (prefs.panel_size == 4) {
+
+      handlebox = gtk_handle_box_new();
+      bw->PanelHandles = g_slist_append(bw->PanelHandles, handlebox);
+      hbox = gtk_hbox_new(FALSE, 0);
+      /* Control Buttons */
+      toolbar = Interface_toolbar_new(bw, 0);
+      /* Menus */
+      menubar = a_Menu_mainbar_new(bw, 1);
+      /* Location entry */
+      locbox = Interface_locbar_new(bw);
+      /* progress bars */
+      progbox = Interface_progressbox_new(bw, 0);
+
+      gtk_box_pack_start(GTK_BOX(hbox), menubar, FALSE, FALSE, 0);
+      gtk_widget_show(menubar);
+      gtk_box_pack_start(GTK_BOX(hbox), toolbar, FALSE, FALSE, 0);
+      gtk_widget_show(toolbar);
+	  gtk_container_add(GTK_CONTAINER(handlebox), hbox);
+	  gtk_widget_show(hbox);
+	  gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
+      gtk_widget_show(handlebox);
+
+      handlebox = gtk_handle_box_new();
+      hbox = gtk_hbox_new(FALSE, 0);
+      bw->PanelHandles = g_slist_append(bw->PanelHandles, handlebox);
+      gtk_box_pack_start(GTK_BOX(hbox), locbox, TRUE, TRUE, 0);
+      gtk_widget_show(locbox);
+      gtk_box_pack_start(GTK_BOX(hbox), progbox, FALSE, FALSE, 0);
+      gtk_widget_show(progbox);
+	  gtk_container_add(GTK_CONTAINER(handlebox), hbox);
+	  gtk_widget_show(hbox);
+      gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
+      gtk_widget_show(handlebox);
+
    } else {
       handlebox = gtk_handle_box_new();
       bw->PanelHandles = g_slist_append(bw->PanelHandles, handlebox);
@@ -673,7 +706,7 @@
 
       handlebox = gtk_handle_box_new();
       bw->PanelHandles = g_slist_append(bw->PanelHandles, handlebox);
-      gtk_container_border_width(GTK_CONTAINER(handlebox), 4);
+      gtk_container_border_width(GTK_CONTAINER(handlebox), 0);
       hbox = gtk_hbox_new(FALSE, 0);
       toolbar = Interface_toolbar_new(bw, 1);
       progbox = Interface_progressbox_new(bw, 1);
@@ -705,15 +738,13 @@
    gtk_box_pack_start(GTK_BOX(box1), bw->docwin, TRUE, TRUE, 0);
    gtk_widget_show(bw->docwin);
 
-   gtk_signal_connect_object_after(GTK_OBJECT(GTK_BIN(bw->docwin)->child),
-                                   "button_press_event",
-                                   GTK_SIGNAL_FUNC(Interface_click_callback),
-                                   (gpointer)bw);
+   g_signal_connect(G_OBJECT(GTK_BIN(bw->docwin)->child), "button_press_event",
+                    G_CALLBACK(Interface_click_callback), bw);
 
    gtk_widget_set_usize(bw->main_window, width, height);
 
    /* status widget */
-   bw->status = a_Dw_gtk_statuslabel_new("");
+   bw->status = gtk_label_new("");
    gtk_misc_set_alignment(GTK_MISC(bw->status), 0.0, 0.5);
    box2 = gtk_hbox_new(FALSE, 0);
 
@@ -801,7 +832,7 @@
  */
 gchar *a_Interface_get_location_text(BrowserWindow *bw)
 {
-   return gtk_entry_get_text(GTK_ENTRY(bw->location));
+   return g_strdup(gtk_entry_get_text(GTK_ENTRY(bw->location)));
 }
 
 /*
@@ -833,10 +864,11 @@
 /*
  * Called from `destroy' callback in Interface_make_*_dialog
  */
-static void Interface_destroy_window(GtkWidget *widget, GtkWidget **window)
+static gboolean Interface_destroy_window(GtkWidget *widget, GtkWidget **window)
 {
    gtk_widget_destroy(*window);
    *window = NULL;
+   return FALSE;
 }
 
 
@@ -871,31 +903,29 @@
 static void
  Interface_make_choose_file_dialog(GtkWidget **DialogWindow,
                                    char *WmName, char *WmClass, char *WTitle,
-                                   GtkSignalFunc B1CallBack, void *B1CbData)
+                                   GCallback B1CallBack, void *B1CbData)
 {
    *DialogWindow = gtk_file_selection_new(WTitle);
    gtk_window_set_modal(GTK_WINDOW(*DialogWindow), FALSE);
    gtk_window_set_wmclass(GTK_WINDOW(*DialogWindow), WmName, WmClass);
 
    gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(*DialogWindow));
-   gtk_signal_connect(
-      GTK_OBJECT(*DialogWindow),
-      "destroy", (GtkSignalFunc) Interface_destroy_window, DialogWindow);
-   gtk_signal_connect(
-      GTK_OBJECT(GTK_FILE_SELECTION(*DialogWindow)->ok_button),
-      "clicked", (GtkSignalFunc) B1CallBack, B1CbData);
-   gtk_signal_connect(
-      GTK_OBJECT(GTK_FILE_SELECTION (*DialogWindow)->cancel_button),
-      "clicked", (GtkSignalFunc) Interface_destroy_window, DialogWindow);
+   g_signal_connect(G_OBJECT(*DialogWindow), "destroy",
+                    G_CALLBACK(Interface_destroy_window), DialogWindow);
+   g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(*DialogWindow)->ok_button),
+                    "clicked", B1CallBack, B1CbData);
+   g_signal_connect(G_OBJECT(GTK_FILE_SELECTION (*DialogWindow)->cancel_button),
+                    "clicked", G_CALLBACK(Interface_destroy_window),
+                    DialogWindow);
 }
 
 /*
  * Get the file URL from the widget and push it to the browser window.
  */
-static void
+static gboolean
  Interface_openfile_ok_callback(GtkWidget *widget, BrowserWindow *bw)
 {
-   char *fn;
+   const gchar *fn;
    DilloUrl *url;
    GString *UrlStr = g_string_sized_new(1024);
 
@@ -909,6 +939,8 @@
    a_Url_free(url);
 
    gtk_widget_destroy(bw->openfile_dialog_window);
+
+   return FALSE;
 }
 
 /*
@@ -916,7 +948,7 @@
  * The URL is not sent "as is", illegal chars are ripped out,
  * then it's fully parsed by a_Url_new().
  */
-void a_Interface_entry_open_url(GtkWidget *widget, BrowserWindow *bw)
+gboolean a_Interface_entry_open_url(GtkWidget *widget, BrowserWindow *bw)
 {
    gchar *text, *new_text, *p;
    DilloUrl *url;
@@ -924,7 +956,7 @@
 
    /* entry = { bw->location | bw->open_dialog_entry } */
    entry = GTK_ENTRY(widget == bw->location ? widget : bw->open_dialog_entry);
-   text = gtk_entry_get_text(entry);
+   text = g_strdup (gtk_entry_get_text(entry));
 
    DEBUG_MSG(1, "entry_open_url %s\n", text);
 
@@ -948,6 +980,8 @@
 
    if (bw->open_dialog_window != NULL)
       gtk_widget_hide(bw->open_dialog_window);
+
+   return TRUE;
 }
 
 /*
@@ -959,7 +993,7 @@
       Interface_make_choose_file_dialog(
          &(bw->openfile_dialog_window),
          "openfile_dialog", "Dillo", "Dillo: Open File",
-         (GtkSignalFunc) Interface_openfile_ok_callback, (void *)bw);
+         G_CALLBACK(Interface_openfile_ok_callback), (void *)bw);
    }
 
    if (!GTK_WIDGET_VISIBLE(bw->openfile_dialog_window))
@@ -974,16 +1008,16 @@
 static void
  Interface_make_dialog(GtkWidget **DialogWindow, char *WmName, char *WmClass,
    char *WTitle, GtkWidget **DialogEntry, char *EntryStr,
-   char *B1Label, GtkSignalFunc B1CallBack, void *B1CbData)
+   char *B1Label, GCallback B1CallBack, void *B1CbData)
 {
    GtkWidget *button, *box1, *box2, *entry;
 
-   *DialogWindow = gtk_window_new(GTK_WINDOW_DIALOG);
+   *DialogWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_wmclass(GTK_WINDOW(*DialogWindow), WmName, WmClass);
    gtk_window_set_position(GTK_WINDOW(*DialogWindow), GTK_WIN_POS_CENTER);
    gtk_window_set_title(GTK_WINDOW(*DialogWindow), WTitle);
-   gtk_signal_connect(GTK_OBJECT(*DialogWindow), "destroy",
-                      (GtkSignalFunc) Interface_destroy_window, DialogWindow);
+   g_signal_connect(G_OBJECT(*DialogWindow), "destroy",
+                    G_CALLBACK(Interface_destroy_window), DialogWindow);
 
    gtk_container_border_width(GTK_CONTAINER(*DialogWindow), 5);
 
@@ -999,34 +1033,34 @@
    *DialogEntry = GTK_WIDGET(entry);
    gtk_widget_show(entry);
 
-   gtk_signal_connect(GTK_OBJECT(entry), "activate", B1CallBack, B1CbData);
+   g_signal_connect(G_OBJECT(entry), "activate", B1CallBack, B1CbData);
 
    box2 = gtk_hbox_new(TRUE, 5);
    gtk_box_pack_start(GTK_BOX(box1), box2, FALSE, FALSE, 0);
    gtk_widget_show(box2);
 
    button = gtk_button_new_with_label(B1Label);
-   gtk_signal_connect(GTK_OBJECT(button), "clicked", B1CallBack, B1CbData);
+   g_signal_connect(G_OBJECT(button), "clicked", B1CallBack, B1CbData);
    GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
    gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 0);
    gtk_widget_grab_default(button);
    gtk_widget_show(button);
-   gtk_signal_connect_object(GTK_OBJECT(entry), "focus_in_event",
-                             (GtkSignalFunc) gtk_widget_grab_default,
-                             GTK_OBJECT(button));
+   g_signal_connect_object(G_OBJECT(entry), "focus_in_event",
+                           G_CALLBACK(gtk_widget_grab_default),
+                           G_OBJECT(button), G_CONNECT_SWAPPED);
 
    button = gtk_button_new_with_label("Clear");
-   gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
-                             (GtkSignalFunc) Interface_entry_clear,
-                             GTK_OBJECT(entry));
+   g_signal_connect_object(G_OBJECT(button), "clicked",
+                           G_CALLBACK(Interface_entry_clear),
+                           GTK_OBJECT(entry), G_CONNECT_SWAPPED);
    GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
    gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 0);
    gtk_widget_show(button);
 
    button = gtk_button_new_with_label("Cancel");
-   gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
-                             (GtkSignalFunc) gtk_widget_destroy,
-                             GTK_OBJECT(*DialogWindow));
+   g_signal_connect_object(G_OBJECT(button), "clicked",
+                           G_CALLBACK(gtk_widget_destroy),
+                           G_OBJECT(*DialogWindow), G_CONNECT_SWAPPED);
    GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
    gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 0);
    gtk_widget_show(button);
@@ -1040,17 +1074,17 @@
 static void Interface_make_question_dialog(
         GtkWidget **DialogWindow, char *WmName, char *WmClass,
         char *WTitle, char *Question,
-        GtkSignalFunc OkCallback, void *OkCbData,
-        GtkSignalFunc CancelCallback, void *CancelCbData)
+        GCallback OkCallback, void *OkCbData,
+        GCallback CancelCallback, void *CancelCbData)
 {
    GtkWidget *frame, *label, *button, *box1, *box2;
 
-   *DialogWindow = gtk_window_new(GTK_WINDOW_DIALOG);
+   *DialogWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_wmclass(GTK_WINDOW(*DialogWindow), WmName, WmClass);
    gtk_window_set_title(GTK_WINDOW(*DialogWindow), WTitle);
    gtk_container_border_width(GTK_CONTAINER(*DialogWindow), 10);
-   gtk_signal_connect(GTK_OBJECT(*DialogWindow), "destroy",
-                      (GtkSignalFunc) Interface_destroy_window, DialogWindow);
+   g_signal_connect(G_OBJECT(*DialogWindow), "destroy",
+                    G_CALLBACK(Interface_destroy_window), DialogWindow);
 
    box1 = gtk_vbox_new(FALSE, 5);
    frame = gtk_frame_new(NULL);
@@ -1065,17 +1099,17 @@
 
    box2 = gtk_hbox_new(TRUE, 5);
    button = gtk_button_new_with_label("OK");
-   gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
-                             OkCallback, OkCbData);
-   gtk_signal_connect(GTK_OBJECT(button), "clicked",
-                      (GtkSignalFunc) Interface_destroy_window, DialogWindow);
+   g_signal_connect(G_OBJECT(button), "clicked",
+                    OkCallback, OkCbData);
+   g_signal_connect(G_OBJECT(button), "clicked",
+                    G_CALLBACK(Interface_destroy_window), DialogWindow);
    gtk_widget_show(button);
    gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 0);
    button = gtk_button_new_with_label("Cancel");
-   gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
-                             CancelCallback, CancelCbData);
-   gtk_signal_connect(GTK_OBJECT(button), "clicked",
-                      (GtkSignalFunc) Interface_destroy_window, DialogWindow);
+   g_signal_connect(G_OBJECT(button), "clicked",
+                    CancelCallback, CancelCbData);
+   g_signal_connect(G_OBJECT(button), "clicked",
+                    G_CALLBACK(Interface_destroy_window), DialogWindow);
    gtk_widget_show(button);
    gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 0);
    gtk_box_pack_start(GTK_BOX(box1), box2, FALSE, FALSE, 0);
@@ -1092,8 +1126,8 @@
  */
 void a_Interface_question_dialog(
         BrowserWindow *bw, gchar *QuestionTxt,
-        GtkSignalFunc OkCallback, void *OkCbData,
-        GtkSignalFunc CancelCallback, void *CancelCbData)
+        GCallback OkCallback, void *OkCbData,
+        GCallback CancelCallback, void *CancelCbData)
 {
    if (!bw->question_dialog_window) {
       Interface_make_question_dialog(&(bw->question_dialog_window),
@@ -1113,7 +1147,7 @@
       Interface_make_dialog(&(bw->open_dialog_window),
          "open_dialog", "Dillo", "Dillo: Open URL",
          &(bw->open_dialog_entry), "",
-         "OK", (GtkSignalFunc) a_Interface_entry_open_url, (void *)bw);
+         "OK", G_CALLBACK(a_Interface_entry_open_url), (void *)bw);
       if (prefs.transient_dialogs)
          gtk_window_set_transient_for(GTK_WINDOW(bw->open_dialog_window),
                                       GTK_WINDOW(bw->main_window));
@@ -1151,7 +1185,7 @@
 /*
  * Save current page to a local file
  */
-static void Interface_file_save_url(GtkWidget *widget, BrowserWindow *bw)
+static gboolean Interface_file_save_url(GtkWidget *widget, BrowserWindow *bw)
 {
    const char *name;
    GtkFileSelection *choosefile;
@@ -1175,6 +1209,8 @@
    a_Url_free(url);
 
    gtk_widget_destroy(bw->save_dialog_window);
+
+   return FALSE;
 }
 
 /*
@@ -1226,7 +1262,7 @@
       Interface_make_choose_file_dialog(
          &bw->save_dialog_window,
          "save_dialog", "Dillo", "Dillo: Save URL as File...",
-         (GtkSignalFunc) Interface_file_save_url, (void *)bw );
+         G_CALLBACK(Interface_file_save_url), (void *)bw );
    }
    url = a_Url_new(a_Interface_get_location_text(bw), NULL, 0, 0);
    SuggestedName = Interface_make_save_name(url);
@@ -1253,7 +1289,7 @@
          &bw->save_link_dialog_window,
          "save_link_dialog", "Dillo",
          "Dillo: Save link as File...",
-         (GtkSignalFunc) Interface_file_save_link,
+         G_CALLBACK(Interface_file_save_link),
          (void *)bw);
    }
    SuggestedName = Interface_make_save_name(a_Menu_popup_get_url(bw));
@@ -1270,7 +1306,7 @@
 /*
  * Scroll to an occurence of a string in the open page
  */
-static void Interface_entry_search(GtkWidget *widget, BrowserWindow* bw)
+static gboolean Interface_entry_search(GtkWidget *widget, BrowserWindow* bw)
 {
    DwWidget *Dw;
    char *string;
@@ -1281,6 +1317,8 @@
    a_Dw_container_findtext(DW_CONTAINER (Dw),
                            &bw->findtext_data, NULL, string);
    g_free(string);
+
+   return FALSE;
 }
 
 /*
@@ -1292,7 +1330,7 @@
       Interface_make_dialog(&(bw->findtext_dialog_window),
          "findtext_dialog", "Dillo", "Dillo: Find text in page",
          &(bw->findtext_dialog_entry), "",
-         "Find", (GtkSignalFunc) Interface_entry_search, (void *)bw);
+         "Find", G_CALLBACK(Interface_entry_search), (void *)bw);
       if (prefs.transient_dialogs)
          gtk_window_set_transient_for(GTK_WINDOW(bw->findtext_dialog_window),
                                       GTK_WINDOW(bw->main_window));
@@ -1303,31 +1341,3 @@
    else
       gdk_window_raise(bw->findtext_dialog_window->window);
 }
-
-/*
- * This signal callback adjusts the position of a menu.
- * It's useful for very long menus.
- */
-void a_Interface_scroll_popup(GtkWidget *widget)
-{
-   /*
-    * todo:
-    *   1) Scrolling menues should rather be the task of Gtk+. This is
-    *      a hack, and I don't know if it does not break anything.
-    *   2) It could be improved, e.g. a timeout could be added for
-    *      better mouse navigation.
-    */
-   int y, h, mx, my, sh;
-
-   y = widget->allocation.y;
-   h = widget->allocation.height;
-   gdk_window_get_geometry (widget->parent->parent->window,
-                            &mx, &my, NULL, NULL, NULL);
-   sh = gdk_screen_height ();
-
-   if (y + my < 0)
-      gdk_window_move (widget->parent->parent->window, mx, - y + 1);
-   else if (y + my > sh - h)
-      gdk_window_move (widget->parent->parent->window, mx, sh - h - y - 1);
-}
-
diff -urN dillo-0.6.6/src/interface.h dillo2-0.6.6/src/interface.h
--- dillo-0.6.6/src/interface.h	2002-01-10 11:59:42.000000000 -0700
+++ dillo2-0.6.6/src/interface.h	2003-04-21 12:36:20.000000000 -0600
@@ -26,14 +26,12 @@
 void a_Interface_set_location_text(BrowserWindow *bw, char *text);
 gchar *a_Interface_get_location_text(BrowserWindow *bw);
 void a_Interface_reset_progress_bars(BrowserWindow *bw);
-void a_Interface_entry_open_url(GtkWidget *widget, BrowserWindow *bw);
+gboolean a_Interface_entry_open_url(GtkWidget *widget, BrowserWindow *bw);
 void a_Interface_set_cursor(BrowserWindow *bw, GdkCursorType CursorType);
 BrowserWindow *a_Interface_browser_window_new(gint width, gint height);
 
 void a_Interface_set_button_sens(BrowserWindow *bw);
 
-void a_Interface_scroll_popup(GtkWidget *widget);
-
 void a_Interface_question_dialog(
         BrowserWindow *bw, gchar *QuestionTxt,
         GtkSignalFunc OkCallback, void *OkCbData,
diff -urN dillo-0.6.6/src/menu.c dillo2-0.6.6/src/menu.c
--- dillo-0.6.6/src/menu.c	2002-04-09 19:04:54.000000000 -0600
+++ dillo2-0.6.6/src/menu.c	2003-04-21 12:36:22.000000000 -0600
@@ -51,8 +51,8 @@
    menu = gtk_menu_new();
    menuitem = gtk_menu_item_new_with_label((char *) name);
    tmp_key = gtk_label_parse_uline(GTK_LABEL(GTK_BIN(menuitem)->child), name);
-   gtk_widget_add_accelerator(menuitem, "activate_item", bw->accel_group,
-                              tmp_key, GDK_MOD1_MASK, 0);
+   //gtk_widget_add_accelerator(menuitem, "activate-item", bw->accel_group,
+   //                           tmp_key, GDK_MOD1_MASK, 0);
 
    if ( right_justify )
       gtk_menu_item_right_justify(GTK_MENU_ITEM(menuitem));
@@ -73,17 +73,17 @@
            void (*callback) (GtkWidget *widget, void *data), void *data)
 {
    GtkWidget *menuitem;
-   GtkAccelGroup *menu_accels;
+   //GtkAccelGroup *menu_accels;
    GdkModifierType accel_mods;
    guint accel_key;
    guint tmp_key;
 
    menuitem = gtk_menu_item_new_with_label((char *) name);
    gtk_menu_append(GTK_MENU(menu), menuitem);
-   menu_accels = gtk_menu_ensure_uline_accel_group(GTK_MENU(menu));
+   //menu_accels = gtk_menu_ensure_uline_accel_group(GTK_MENU(menu));
    tmp_key = gtk_label_parse_uline(GTK_LABEL(GTK_BIN(menuitem)->child), name);
-   gtk_widget_add_accelerator(menuitem, "activate_item",
-                              menu_accels, tmp_key, 0, 0);
+   //gtk_widget_add_accelerator(menuitem, "activate_item",
+   //                           menu_accels, tmp_key, 0, 0);
    gtk_widget_show(menuitem);
 
    if (accel != NULL) {
@@ -92,8 +92,8 @@
          accel_key, (guint)accel_mods, GTK_ACCEL_VISIBLE);
    }
    if (callback != NULL)
-      gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
-                         (GtkSignalFunc) callback, data);
+      g_signal_connect(G_OBJECT(menuitem), "activate",
+                       G_CALLBACK(callback), data);
    return menuitem;
 }
 
@@ -265,21 +265,15 @@
       }
       menu_item = Menu_add(menu, text->str, NULL, bw, NULL, NULL);
       /* attach the nav_stack index to the menu item */
-      gtk_object_set_data(GTK_OBJECT (menu_item), "nav_idx",
-                          GINT_TO_POINTER(i));
+      g_object_set_data(G_OBJECT (menu_item), "nav_idx",
+                        GINT_TO_POINTER(i));
 
-      gtk_signal_connect (
-         GTK_OBJECT (menu_item), "select",
-         GTK_SIGNAL_FUNC (a_Interface_scroll_popup), NULL);
-      gtk_signal_connect (
-         GTK_OBJECT (menu_item), "select",
-         GTK_SIGNAL_FUNC (a_Menu_popup_history_select_callback), bw);
-      gtk_signal_connect (
-         GTK_OBJECT (menu_item), "deselect",
-         GTK_SIGNAL_FUNC (a_Menu_popup_history_deselect_callback), bw);
-      gtk_signal_connect (
-         GTK_OBJECT (menu_item), "button-press-event",
-         GTK_SIGNAL_FUNC (a_Commands_historypress_callback), bw);
+      g_signal_connect (G_OBJECT(menu_item), "select",
+                        G_CALLBACK(a_Menu_popup_history_select_callback), bw);
+      g_signal_connect (G_OBJECT(menu_item), "deselect",
+                        G_CALLBACK(a_Menu_popup_history_deselect_callback), bw);
+      g_signal_connect (G_OBJECT(menu_item), "button-press-event",
+                        G_CALLBACK(a_Commands_historypress_callback), bw);
    }
 
    g_string_free(text, TRUE);
@@ -305,11 +299,11 @@
 
    copy = Menu_add(menu, "Copy Link location", NULL, bw,
             a_Commands_set_selection_callback, bw);
-   gtk_signal_connect(GTK_OBJECT(copy), "selection_clear_event",
+   g_signal_connect(G_OBJECT(copy), "selection_clear_event",
       GTK_SIGNAL_FUNC(a_Commands_clear_selection_callback), NULL);
    gtk_selection_add_target(copy, GDK_SELECTION_PRIMARY,
       GDK_SELECTION_TYPE_STRING, 1);
-   gtk_signal_connect(GTK_OBJECT(copy), "selection_get",
+   g_signal_connect(G_OBJECT(copy), "selection_get",
       GTK_SIGNAL_FUNC(a_Commands_give_selection_callback), NULL);
 
    Menu_sep(menu);
@@ -351,11 +345,6 @@
 
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(bw->pagemarks_menuitem),
                              bw->pagemarks_menu);
-
-   /* todo: add a scroller so one can access  all menu entries,
-    * even if there's a lot of pagemarks. */
-   /* --EG: I haven't found a way to pass a scroller
-    * as widget for the submenu */
 }
 
 /*
@@ -374,8 +363,6 @@
                                  Menu_pagemarks_goto_pagemark, bw);
    sprintf(anchor, "#%ld", (glong)(bw->pagemarks_last));
    a_Dw_page_add_anchor(page, anchor, style);
-   gtk_signal_connect (GTK_OBJECT (bw->pagemarks_last), "select",
-                       GTK_SIGNAL_FUNC (a_Interface_scroll_popup), NULL);
    sprintf(name, "dilloHeading%d", level);
    gtk_widget_set_name(bw->pagemarks_last, name);
 }
@@ -398,8 +385,10 @@
          g_string_truncate(text, 64);
          g_string_append(text, "...");
       }
+
       gtk_label_set_text(GTK_LABEL (child), text->str);
-      g_string_free(text, 1);
+      g_string_free(text, TRUE);
+
       bw->pagemarks_last = NULL;
    }
 }
diff -urN dillo-0.6.6/src/misc.c dillo2-0.6.6/src/misc.c
--- dillo-0.6.6/src/misc.c	2002-03-20 09:38:43.000000000 -0700
+++ dillo2-0.6.6/src/misc.c	2003-04-21 12:36:22.000000000 -0600
@@ -94,3 +94,28 @@
    return val;
 }
 
+/*
+ * UTF-8 aware implementation of strcspn.
+ * Returns the number of bytes that doesn't contain any of the ASCII
+ * characters in reject.
+ */
+size_t a_Misc_strcspn(const char *str, const char *reject)
+{
+   char *p = (char *) str;
+   gunichar c;
+   int len, i;
+
+   len = strlen(reject);
+
+   while (*p) {
+      c = g_utf8_get_char(p);
+
+      for (i = 0; i < len; i++)
+         if (c == reject[i])
+            return p - str;
+
+      p = g_utf8_next_char(p);
+   }
+
+   return p - str;
+}
diff -urN dillo-0.6.6/src/misc.h dillo2-0.6.6/src/misc.h
--- dillo-0.6.6/src/misc.h	2002-03-20 09:38:43.000000000 -0700
+++ dillo2-0.6.6/src/misc.h	2003-04-21 12:36:22.000000000 -0600
@@ -5,7 +5,10 @@
 char *a_Misc_stristr(char *src, char *str);
 char *a_Misc_expand_tabs(const char *str);
 gchar *a_Misc_strsep(char **orig, const char *delim);
+size_t a_Misc_strcspn(const char *str, const char *reject);
+
 #define d_strsep a_Misc_strsep
+#define d_strcspn a_Misc_strcspn
 
 #endif /* __MISC_H__ */
 
diff -urN dillo-0.6.6/src/nav.c dillo2-0.6.6/src/nav.c
--- dillo-0.6.6/src/nav.c	2002-04-09 19:10:16.000000000 -0600
+++ dillo2-0.6.6/src/nav.c	2003-04-21 12:36:23.000000000 -0600
@@ -343,7 +343,7 @@
 /*
  * Callback for reload confirmation
  */
-static void Nav_reload_confirmed(BrowserWindow *bw)
+static gboolean Nav_reload_confirmed(BrowserWindow *bw)
 {
    DEBUG_MSG(3, "Nav_reload_confirmed\n");
    if ( a_Nav_stack_size(bw) &&
@@ -353,15 +353,17 @@
       bw->question_dialog_data = NULL;
       Nav_reload(bw);
    }
+   return FALSE;
 }
 
 /*
  * Callback for reload refusal
  */
-static void Nav_reload_refused(BrowserWindow *bw)
+static gboolean Nav_reload_refused(BrowserWindow *bw)
 {
    DEBUG_MSG(3, "Nav_reload_refused\n");
    bw->question_dialog_data = NULL;
+   return FALSE;
 }
 
 /*
@@ -397,12 +399,11 @@
          /* Attempt to repost data, let's confirm... */
          bw->question_dialog_data = (gpointer)url;
          a_Interface_question_dialog(bw, "Repost form data?",
-                                     Nav_reload_confirmed, bw,
-                                     Nav_reload_refused, bw);
+                                     G_CALLBACK(Nav_reload_confirmed), bw,
+                                     G_CALLBACK(Nav_reload_refused), bw);
 
       } else {
          Nav_reload(bw);
       }
    }
 }
-
diff -urN dillo-0.6.6/src/pixmaps.h dillo2-0.6.6/src/pixmaps.h
--- dillo-0.6.6/src/pixmaps.h	2002-01-15 07:52:16.000000000 -0700
+++ dillo2-0.6.6/src/pixmaps.h	2003-04-21 12:36:24.000000000 -0600
@@ -44,337 +44,429 @@
 */
 /* XPM */
 static char * left_xpm[] = {
-"26 20 6 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"O      c #FFFF9A690000",
-"+      c #FFFFFFFF0000",
-"@      c #FFFFFFFFFFFF",
-"                          ",
-"          ..              ",
-"         .X.              ",
-"        .XX.              ",
-"       .XXX.              ",
-"      .XXXX.              ",
-"     .XXXXX........ +OO+O ",
-"    .XXXXXXXXXXXXX. +OO+O ",
-"   .XXXXXXXXXXXXXX. +OO+O ",
-"  .XXXXXXXXXXXXXXX. +OO+O ",
-"  .XXXXXXXXXXXXXXX. +OO+O ",
-"   .XXXXXXXXXXXXXX. +OO+O ",
-"    .XXXXXXXXXXXXX. +OO+O ",
-"     .XXXXX........ +OO+O ",
-"      .XXXX.              ",
-"       .XXX.              ",
-"        .XX.              ",
-"         .X.              ",
-"          ..              ",
-"                          "};
+"24 24 9 1",
+" 	c None",
+".	c #020202",
+"+	c #2E2E2E",
+"@	c #5A7A52",
+"#	c #83A881",
+"$	c #86B282",
+"%	c #B0C9AF",
+"&	c #42593B",
+"*	c #CEDECB",
+"                        ",
+"                        ",
+"                        ",
+"            .           ",
+"           ..           ",
+"          .%.           ",
+"         .*%.           ",
+"        .*%%........    ",
+"       .*%%%%%%%%%#.    ",
+"      .*%%%%%%%%%%@.    ",
+"     +*%%%%%%%%%%%@.    ",
+"    .#$#$$#$$$#$$$@.    ",
+"     .&@@@@@@@@@@@&.    ",
+"      .&@@@@@@@@@@&.    ",
+"       .&@@&&&&&&&&.    ",
+"        .&@&........    ",
+"         .&&.           ",
+"          .&.           ",
+"           ..           ",
+"            .           ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
+
 /* XPM */
 static char * right_xpm[] = {
-"26 20 6 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"O      c #FFFF9A690000",
-"+      c #FFFFFFFF0000",
-"@      c #FFFFFFFFFFFF",
-"                          ",
-"              ..          ",
-"              .X.         ",
-"              .XX.        ",
-"              .XXX.       ",
-"              .XXXX.      ",
-" O+OO+ ........XXXXX.     ",
-" O+OO+ .XXXXXXXXXXXXX.    ",
-" O+OO+ .XXXXXXXXXXXXXX.   ",
-" O+OO+ .XXXXXXXXXXXXXXX.  ",
-" O+OO+ .XXXXXXXXXXXXXXX.  ",
-" O+OO+ .XXXXXXXXXXXXXX.   ",
-" O+OO+ .XXXXXXXXXXXXX.    ",
-" O+OO+ ........XXXXX.     ",
-"              .XXXX.      ",
-"              .XXX.       ",
-"              .XX.        ",
-"              .X.         ",
-"              ..          ",
-"                          "};
+"24 24 9 1",
+" 	c None",
+".	c #020202",
+"+	c #0E120A",
+"@	c #B0CAAE",
+"#	c #526A46",
+"$	c #6F9667",
+"%	c #465A2E",
+"&	c #5D7D55",
+"*	c #A6BEA2",
+"                        ",
+"                        ",
+"                        ",
+"           .            ",
+"           ..           ",
+"           .$.          ",
+"           .@$.         ",
+"    .......+@@$.        ",
+"    .@@@@@@@@@@$+       ",
+"    .@@@@@@@@@@@$.      ",
+"    .*@@@@@@@@*@@$.     ",
+"    .$$$$$$$$$$&$$%.    ",
+"    .&&#&#&#&&&&&%.     ",
+"    .&&&&&&&&#&#%.      ",
+"    .&######&&&%.       ",
+"    ........#&%.        ",
+"           .#%.         ",
+"           .%.          ",
+"           ..           ",
+"           .            ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
+
 /* XPM */
 static char * reload_xpm[] = {
-"26 20 6 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"O      c #FFFF9A690000",
-"+      c #FFFFFFFF0000",
-"@      c #FFFFFFFFFFFF",
-"         .    ....        ",
-"         ..   .OOO.       ",
-"      ....X.  .OOOO.      ",
-"     .XXXXXX. .OOOOO.     ",
-"    .XXXXXXXX....OOO.     ",
-"   .XXXXXXXX.   .OOO.     ",
-"   .XXX...X.  ...OOO...   ",
-"   .XXX. ..    .OOOOO.    ",
-"   ..... .      .OOO.     ",
-"       .         .O.      ",
-"      .O.         .       ",
-"     .OOO.      . .....   ",
-"    .OOOOO.    .. .XXX.   ",
-"   ...OOO...  .X...XXX.   ",
-"     .OOO.   .XXXXXXXX.   ",
-"     .OOO....XXXXXXXX.    ",
-"     .OOOOO. .XXXXXX.     ",
-"      .OOOO.  .X....      ",
-"       .OOO.   ..         ",
-"        ....    .         "};
+"24 24 9 1",
+" 	c None",
+".	c #020202",
+"+	c #121A12",
+"@	c #759E6F",
+"#	c #89B183",
+"$	c #2A3A28",
+"%	c #A4C7A0",
+"&	c #62855D",
+"*	c #CBE5C7",
+"       .                ",
+"       ..               ",
+"       .*.              ",
+"    ...+**.             ",
+"   .@%*****.     ..     ",
+"  +#********.   .#&.    ",
+" .@**********.   .#&.   ",
+" $%*#@@@###&.     .%.   ",
+".#*@@@@@@@&.      .%&.  ",
+".%%&&...&&.   .   .*@.  ",
+".*@&.  .&.   ..   .%#.  ",
+".*&.   ..   .*.  .%*@.  ",
+".#@.   .   .**...%*%@.  ",
+".&#.      .********@&.  ",
+" .%.     .%******%#@$.  ",
+" .&#.   .%*******#@&.   ",
+"  .&@.   .@@#@@@@&&..   ",
+"   ..     .@&@&&&&..    ",
+"           .@&....      ",
+"            $@.         ",
+"             ..         ",
+"              .         ",
+"                        ",
+"                        "};
+
 /* XPM */
 static char * home_xpm[] = {
-"26 20 9 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"O      c #FFFF9A690000",
-"+      c #FFFFFFFF0000",
-"z      c #0000FFFFFFFF",
-"@      c #FFFFFFFFFFFF",
-"I      c #FFFF00000000",
-"#      c #FFFF0000FFFF",
-"                          ",
-"            XX            ",
-"           ....           ",
-"          ......          ",
-"         ........         ",
-"        ....oo....        ",
-"       ....o..o....       ",
-"      ..............      ",
-"     ................     ",
-"    .....zzzzzzzz.....    ",
-"        .OOOOOOOO.        ",
-"       .OOOOOOOOOO.       ",
-"       .OOOOOOOOOO.       ",
-"       .OOOO...OOO.       ",
-"       .OOO.I@.OOO.       ",
-"       .OOO.I#@.OO.       ",
-"     X .OOO.I#@.OO.       ",
-"   XXXX.OOO.I#@.OO. XXX   ",
-" XXXXXX.OOO.I#@.OO.XXXXXX ",
-"XXXXXXX............XXXXXXX"};
+"24 24 9 1",
+" 	c None",
+".	c #0D0B0A",
+"+	c #BEBEBE",
+"@	c #A7A29B",
+"#	c #88766D",
+"$	c #B95540",
+"%	c #565B53",
+"&	c #964E3C",
+"*	c #F3F3F3",
+"                        ",
+"           ..           ",
+"     .... ....          ",
+"     .$&...%%..         ",
+"     .&&..%%#%..        ",
+"     .&...@%@+%..       ",
+"     ...%#+#++*%..      ",
+"     ..%@@+@*+*+#..     ",
+"    ..#@+@*+*+*+*%..    ",
+"   ..+++*+*+*+*+**#..   ",
+"  ..+++++++++.....##..  ",
+" ....********.@+*.#.... ",
+"    .+*.....*.+**.%.    ",
+"    .+*.@#&.*.+**.%.    ",
+"    .#*.@$$.*.....%.    ",
+"    ..*.@$..+@%%##..    ",
+"    ..*.@$$.*****+.     ",
+"     .+.@$&.+++++#.     ",
+"     .@.$$$.*****@.     ",
+" .................... . ",
+"    .@#@##%%%..###%%%.  ",
+"  .. ......... ......   ",
+"        ...             ",
+"                        "};
+
 /* XPM */
 static char * save_xpm[] = {
-"26 20 6 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"O      c #FFFF9A690000",
-"+      c #FFFFFFFF0000",
-"@      c #FFFFFFFFFFFF",
-"                          ",
-"   ....................   ",
-"   .XXXXXXXXXXXXXXXXXX.   ",
-"   ...XXXXXXXXXXXXXXXX.   ",
-"   .XX..............XX.   ",
-"   .XX.@@@@@@@@@@@@.XX.   ",
-"   .XX..............XX.   ",
-"   .XX.@@@@@@@@@@@@.XX.   ",
-"   .XX..............XX.   ",
-"   .XX.@@@@@@@@@@@@.XX.   ",
-"   .XX..............XX.   ",
-"   .XXXXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXXXX.   ",
-"   .XXX...........XXXX.   ",
-"   .XXX.OOOOOOOOOO.XXX.   ",
-"   .XXX.O....OOOOO.XXX.   ",
-"   .XXX.O.  .OOOOO.XXX.   ",
-"   .XXX.O.  .OOOOO.XXX.   ",
-"   .XXX.O.  .OOOOO.XXX.   ",
-"    ..................    "};
+"24 24 9 1",
+" 	c None",
+".	c #080909",
+"+	c #616B73",
+"@	c #9CA8B6",
+"#	c #C5CDD3",
+"$	c #D77D6E",
+"%	c #F8F8F7",
+"&	c #C67268",
+"*	c #42494D",
+"                        ",
+"  ...................   ",
+" .##+#######$##$##+#@.  ",
+" .#@+$$$&$$$$$$&&&+@+.  ",
+" .#@+$$&$$$&$&&&&&*@+.  ",
+" .#@+%%%%%%%%%%%%%+@+.  ",
+" .#@+%%%%%%%%%%%%%+@*.  ",
+" .#@+#############+@+.  ",
+" .#@+%%%%%%%%%%%%%+@*.  ",
+" .#@+%%%%%%%%%%%%%+@*.  ",
+" .#@+#############+@+.  ",
+" .#@+%%%%%%%%%%%%%+@*.  ",
+" .#@+++++++++++++++@*.  ",
+" .@@@@@@@@@@@@@@@@@@*.  ",
+" .#@+@**++++++++**@@*.  ",
+" .@@+*@#%#%%##@@+*+#*.  ",
+" .#+@*#%+**###@#*++@*.  ",
+" .#@+*#%+**#####*++#*.  ",
+" .@+@*#%***#@##%*++@*.  ",
+" .+@+*##***##%%%*++@*.  ",
+"  .+++@#@####%#@*+*#*.  ",
+"   ..................   ",
+"                        ",
+"                        "};
+
 /* XPM */
 static char * stop_xpm[] = {
-"26 20 6 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"O      c #FFFF9A690000",
-"+      c #FFFFFFFF0000",
-"@      c #FFFFFFFFFFFF",
-"                          ",
-"         ........         ",
-"        .XXXXXXXX.        ",
-"       .XXXX..XXXX.       ",
-"      .XXXX.OO.XXXX.      ",
-"     .XXXXX.OO.XXXXX.     ",
-"    .XXXXXX.OO.XXXXXX.    ",
-"    .XXXXXX.OO.XXXXXX.    ",
-"    .XXXXXX.OO.XXXXXX.    ",
-"    .XXXXXX.OO.XXXXXX.    ",
-"    .XXXXXX.OO.XXXXXX.    ",
-"    .XXXXXXX..XXXXXXX.    ",
-"    .XXXXXXXXXXXXXXXX.    ",
-"    .XXXXXXX..XXXXXXX.    ",
-"     .XXXXX.OO.XXXXX.     ",
-"      .XXXX.OO.XXXX.      ",
-"       .XXXX..XXXX.       ",
-"        .XXXXXXXX.        ",
-"         ........         ",
-"                          "};
+"24 24 9 1",
+" 	c None",
+".	c #0B0402",
+"+	c #FEFEFE",
+"@	c #301103",
+"#	c #E2B7A5",
+"$	c #71270A",
+"%	c #C87C57",
+"&	c #B14314",
+"*	c #DC5614",
+"                        ",
+"         ..@@..         ",
+"       @$*%%%%&$@       ",
+"     .&%%%*****&&$.     ",
+"    .&%******&*&*&&.    ",
+"   .&%%********&&&&$.   ",
+"   $%********&&&&&&&$   ",
+"  @*%**&%&&**&%%&&&&&.  ",
+"  &%***%++#&*%#+#*&&&$  ",
+" .%****%+++#%+++#*&&&$. ",
+" .%****&%++++++#*%&&$&. ",
+" @%&*****%++++#%&&&&&$. ",
+" @***&***%++++#*&&&&$$@ ",
+" .%&&*&&%++++++#&&&&&$. ",
+" .&&&&&%+++##+++#&&$$$. ",
+"  &&&&$%++#**#++#&&&$@  ",
+"  .*&&&$%#&&&&%#&&&$$@  ",
+"   $%&&&&*&&&&*&&&$$@   ",
+"   .$*&&&&&&&&&&&$$$.   ",
+"    .$&&&&&&&$&$$$$.    ",
+"     .$$&$&$&$$$$@.     ",
+"       .$$$$$$$@@       ",
+"         ..@...         ",
+"                        "};
 
 /* Small icons here */
 
 /* XPM */
 static char * s_left_xpm[] = {
-"17 15 5 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"o      c #FFFF9A690000",
-"O      c #FFFFFFFF0000",
-"                 ",
-"      ..         ",
-"     .X.         ",
-"    .XX.         ",
-"   .XXX...... oOo",
-"  .XXXXXXXXX. oOo",
-" .XXXXXXXXXX. oOo",
-".XXXXXXXXXXX. oOo",
-" .XXXXXXXXXX. oOo",
-"  .XXXXXXXXX. oOo",
-"   .XXX...... oOo",
-"    .XX.         ",
-"     .X.         ",
-"      ..         ",
-"                 "};
+"16 16 9 1",
+" 	c None",
+".	c #020202",
+"+	c #B1C9AF",
+"@	c #5B7B54",
+"#	c #3E5437",
+"$	c #7EAA7A",
+"%	c #CEDECB",
+"&	c #2E2E2E",
+"*	c #668E62",
+"                ",
+"       .        ",
+"      ..        ",
+"     .%.        ",
+"    .%+.......  ",
+"   .%+++++++$.  ",
+"  .%++++++++@.  ",
+" &%+++++++++*.  ",
+"  .#@@@@@@@@#.  ",
+"   .#@@######.  ",
+"    .#@.......  ",
+"     .#.        ",
+"      ..        ",
+"       .        ",
+"                ",
+"                "};
+
 /* XPM */
 static char * s_right_xpm[] = {
-"17 15 5 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"o      c #FFFF9A690000",
-"O      c #FFFFFFFF0000",
-"                 ",
-"         ..      ",
-"         .X.     ",
-"         .XX.    ",
-"oOo ......XXX.   ",
-"oOo .XXXXXXXXX.  ",
-"oOo .XXXXXXXXXX. ",
-"oOo .XXXXXXXXXXX.",
-"oOo .XXXXXXXXXX. ",
-"oOo .XXXXXXXXX.  ",
-"oOo ......XXX.   ",
-"         .XX.    ",
-"         .X.     ",
-"         ..      ",
-"                 "};
+"16 16 9 1",
+" 	c None",
+".	c #020202",
+"+	c #0E120A",
+"@	c #5A7A52",
+"#	c #6A8961",
+"$	c #729A66",
+"%	c #7E9E76",
+"&	c #4D633B",
+"*	c #ADC8AB",
+"                ",
+"        .       ",
+"        ..      ",
+"        .%.     ",
+"  .......*$.    ",
+"  .********$+   ",
+"  .*********%.  ",
+"  .**********#. ",
+"  .#@#@@@@@@&.  ",
+"  .#&&@&&@@&.   ",
+"  .......@&.    ",
+"        .&.     ",
+"        ..      ",
+"        .       ",
+"                ",
+"                "};
+
 /* XPM */
 static char * s_home_xpm[] = {
-"17 15 7 1",
-"       c None",
-".      c #9658A289BEFB",
-"X      c #000000000000",
-"o      c #FFFF0000FFFF",
-"O      c #FFFF9A690000",
-"+      c #FFFF00000000",
-"@      c #FFFFFFFFFFFF",
-"        .        ",
-"       XXX       ",
-"      XXXXX      ",
-"     XXXoXXX     ",
-"    XXXoXoXXX    ",
-"   XXXXXXXXXXX   ",
-"  XXXXXXXXXXXXX  ",
-"     XOOOOOX     ",
-"    XOOOOOOOX    ",
-"    XOOOXXOOX    ",
-"    XOOX+oXOX    ",
-"    XOOXo@XOX    ",
-"    XOOXo@XOX..  ",
-" ...XOOXo@XOX....",
-"....XXXXXXXXX...."};
+"16 16 9 1",
+" 	c None",
+".	c #070505",
+"+	c #DEDEDE",
+"@	c #B3B3B3",
+"#	c #5D6156",
+"$	c #853D2D",
+"%	c #3E433D",
+"&	c #52261A",
+"*	c #2F312E",
+"                ",
+"   ... ..       ",
+"   .$..##.      ",
+"   .$.#@+#.     ",
+"   ..*#++@@.    ",
+"   .#@+++++#.   ",
+"  .%@@++++++@.  ",
+" ...+++++*%*... ",
+"   .+&&&+%+%.   ",
+"   .+&$&+***.   ",
+"   .+&$$+@+@.   ",
+"   .+&$&+@+@.   ",
+"   .+$&&+@+@.   ",
+"  %%##%%*.#%%*# ",
+" %..#%#%# #%#%  ",
+"                "};
+
 /* XPM */
 static char * s_reload_xpm[] = {
-"17 15 4 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"o      c #FFFF9A690000",
-"      .   ..     ",
-"   ...X. .oo.    ",
-"  .XXXXX..ooo.   ",
-" .XXXXXX. .oo.   ",
-" .XX..X.  .oo.   ",
-" .XX. .  .oooo.  ",
-"  ..      .oo.   ",
-"   ..      ..    ",
-"  .oo.      ..   ",
-" .oooo.  . .XX.  ",
-"  .oo.  .X..XX.  ",
-"  .oo. .XXXXXX.  ",
-"  .ooo..XXXXX.   ",
-"   .oo. .X...    ",
-"    ..   .       "};
+"16 16 9 1",
+" 	c None",
+".	c #020202",
+"+	c #7E9A42",
+"@	c #5A6F33",
+"#	c #DBE4D0",
+"$	c #B9CE9B",
+"%	c #36421A",
+"&	c #A4AA9E",
+"*	c #9DB674",
+"                ",
+"     .          ",
+"   ..&.         ",
+"  .##$$.        ",
+" .&*+++.        ",
+" .*@.%.         ",
+" .*. .     .    ",
+" .@.       ..   ",
+"  ..       .#.  ",
+"   .     . .+.  ",
+"        .#.@+.  ",
+"       .#+++@.  ",
+"       .*+@@.   ",
+"        .*..    ",
+"         .      ",
+"                "};
+
 /* XPM */
 static char * s_save_xpm[] = {
-"17 15 5 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"o      c #FFFFFFFFFFFF",
-"O      c #FFFF9A690000",
-" ............... ",
-" ..XXXXXXXXXXXX. ",
-" .X...........X. ",
-" .X.ooooooooo.X. ",
-" .X...........X. ",
-" .X.ooooooooo.X. ",
-" .X...........X. ",
-" .XXXXXXXXXXXXX. ",
-" .XXXXXXXXXXXXX. ",
-" .XX........XXX. ",
-" .XX.OOOOOOO.XX. ",
-" .XX.O...OOO.XX. ",
-" .XX.O. .OOO.XX. ",
-"  .............  ",
-"                 "};
+"16 16 9 1",
+" 	c None",
+".	c #020202",
+"+	c #405666",
+"@	c #8995A3",
+"#	c #9DB0BE",
+"$	c #D1D7DB",
+"%	c #C77667",
+"&	c #FBFBFB",
+"*	c #D28F86",
+" .............. ",
+".&$**********$$.",
+".$#%%%%%%%%%%#+.",
+".$#$&&&&&&&&&#+.",
+".$#$$$$$$$$$&@+.",
+".$#$&&&&&&&$&#+.",
+".$#$$$$$$#$#&@+.",
+".$@&&&&&$&&$&@+.",
+".$##$$#$$#$$#@+.",
+".$###@@@@@@@@#+.",
+".$#@#$#$&$@+@@+.",
+".$#@$$.+$#$.+#+.",
+".$#@#$++$$#++#+.",
+".@@@$&.@#$#.@#+.",
+" .++###@@+@++@+.",
+"  ............. "};
+
 /* XPM */
 static char * s_stop_xpm[] = {
-"17 15 4 1",
-"       c None",
-".      c #000000000000",
-"X      c #9658A289BEFB",
-"o      c #FFFF9A690000",
-"                 ",
-"     .......     ",
-"    .XXX.XXX.    ",
-"   .XXX.o.XXX.   ",
-"  .XXXX.o.XXXX.  ",
-"  .XXXX.o.XXXX.  ",
-"  .XXXX.o.XXXX.  ",
-"  .XXXX.o.XXXX.  ",
-"  .XXXXX.XXXXX.  ",
-"  .XXXXXXXXXXX.  ",
-"  .XXXXX.XXXXX.  ",
-"   .XXX.o.XXX.   ",
-"    .XXX.XXX.    ",
-"     .......     ",
-"                 "};
+"16 16 9 1",
+" 	c None",
+".	c #020202",
+"+	c #F9F3F1",
+"@	c #1F0A03",
+"#	c #F1E2DD",
+"$	c #F3DED3",
+"%	c #5E240C",
+"&	c #C04718",
+"*	c #F2DAD2",
+"                ",
+"     ......     ",
+"    .%&&&&%.    ",
+"   @&&&&&&&%@   ",
+"  .&&&&&&&&&&.  ",
+" .&&&++&&#+&&%. ",
+" .&&&++++++&&%. ",
+" @&&&&++++&&&&. ",
+" .&&&&++++&&&%. ",
+" @&&&++##++&&%. ",
+" .%&&$#&&++&&@@ ",
+"  .&&&&&&&&&%.  ",
+"   @&&&&&&&%@   ",
+"    .%%&%%@.    ",
+"     ...@@.     ",
+"                "};
 
 /* XPM */
 static char * s_new_xpm[] = {
-"10 10 2 1",
-"       c None",
-"X      c #9658A289BEFB",
-"XX      XX",
-" XX X  XX ",
-"  XX  XX  ",
-"          ",
-" X  XX X  ",
-"  X XX  X ",
-"          ",
-"  XX  XX  ",
-" XX  X XX ",
-"XX      XX"};
+"16 16 9 1",
+" 	c None",
+".	c #020202",
+"+	c #363636",
+"@	c #5E5E5E",
+"#	c #BCBCBC",
+"$	c #C2C2C2",
+"%	c #E3E3E3",
+"&	c #F1F1F1",
+"*	c #989898",
+"  .........     ",
+" .&&&&&&&%#.    ",
+" .&&&&&&&$&#.   ",
+" .&&&&&&&#@@+.  ",
+" .&&&&&&&%*++.  ",
+" .&&&&&&&&&%$.  ",
+" .&&&&&&%&&&$.  ",
+" .&&&&%&&&&%$.  ",
+" .&&&&%&%%&&#.  ",
+" .&&%%%%&%%%$.  ",
+" .&&&&&%%&%%$.  ",
+" .&%%%%%&%%%#.  ",
+" .&&%%&%%%%%#.  ",
+" .&%%%%%%%%%#.  ",
+" .$$$###$###*.  ",
+"  ...........   "};
 
 #endif /* __BITVEC_H__ */
diff -urN dillo-0.6.6/src/pixmaps_old.h dillo2-0.6.6/src/pixmaps_old.h
--- dillo-0.6.6/src/pixmaps_old.h	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/src/pixmaps_old.h	2003-04-21 12:36:24.000000000 -0600
@@ -0,0 +1,167 @@
+/* XPM */
+static char * home_xpm[] = {
+"29 20 5 1",
+"       c None",
+".      c #FFFFFF",
+"+      c #555555",
+"@      c #000000",
+"#      c #505075",
+"              .              ",
+"             +@.             ",
+"            +@#+.            ",
+"           +@###+.           ",
+"          +@#####+.          ",
+"         +@#######+.         ",
+"        +@#########+.        ",
+"       +@###########+.       ",
+"      +@#############+.      ",
+"      @@#############@@      ",
+"        @###########.        ",
+"        @###########.        ",
+"        @####@@.####.        ",
+"        @###@##+.###.        ",
+"        @###@##+.###.        ",
+"        @###@##+.###.        ",
+"        @###@##+.###.        ",
+"        @###@##+.###.        ",
+"        @####@@@####.        ",
+"         @@@@@@@@@@@+        "};
+/* XPM */
+static char * leftarrow_xpm[] = {
+"29 20 5 1",
+"       c None",
+".      c #000000",
+"+      c #555555",
+"@      c #FFFFFF",
+"#      c #505075",
+"         .+                  ",
+"        .+@                  ",
+"       .+#@                  ",
+"      .+##@                  ",
+"     .+###@                  ",
+"    .+####+++++++ .....+ ...+",
+"   .+###########@ .####@ .##@",
+"  .+############@ .####@ .##@",
+" .+#############@ .####@ .##@",
+".+##############@ .####@ .##@",
+"+.##############@ .####@ .##@",
+" +.#############@ .####@ .##@",
+"  +.############@ .####@ .##@",
+"   +.###########@ .####@ .##@",
+"    +.####@@@@@@@ +@@@@@ +@@@",
+"     +.###@                  ",
+"      +.##@                  ",
+"       +.#@                  ",
+"        +.@                  ",
+"                             "};
+/* XPM */
+static char * reload_xpm[] = {
+"28 20 5 1",
+"       c None",
+".      c #FFFFFF",
+"+      c #000000",
+"@      c #555555",
+"#      c #505075",
+"          .    ....         ",
+"          .+   +@@@.        ",
+"       ....@+  +###@.       ",
+"      .@@@@##+ +####@.      ",
+"     .@#######++++##@.      ",
+"    .@#######+   +##@.      ",
+"    .@##+++#+  +++##@...    ",
+"    .@##+ ++    +####@+     ",
+"    .++++ +      +###+      ",
+"        +         +#+       ",
+"       +#+         +        ",
+"      +###+      + ++++.    ",
+"     +@####+    ++ +##@.    ",
+"    ...@##+++  +#+++##@.    ",
+"      .@##+   +#######@.    ",
+"      .@##++++#######@.     ",
+"      .@####+ +#@@@@@.      ",
+"       .@###+  +@....       ",
+"        .@@@+   +.          ",
+"         ....    .          "};
+/* XPM */
+static char *rghtarrow_xpm[] = {
+"29 20 5 1",
+"       c None",
+".      c #000000",
+"+      c #555555",
+"@      c #505075",
+"$      c #FFFFFF",
+"                  .+         ",
+"                  ..+        ",
+"                  .@.+       ",
+"                  .@@.+      ",
+"                  .@@@.+     ",
+"...+ .....+ .......@@@@.+    ",
+".@@$ .@@@@$ .@@@@@@@@@@@.+   ",
+".@@$ .@@@@$ .@@@@@@@@@@@@.+  ",
+".@@$ .@@@@$ .@@@@@@@@@@@@@.+ ",
+".@@$ .@@@@$ .@@@@@@@@@@@@@@.+",
+".@@$ .@@@@$ .@@@@@@@@@@@@@@+$",
+".@@$ .@@@@$ .@@@@@@@@@@@@@+$ ",
+".@@$ .@@@@$ .@@@@@@@@@@@@+$  ",
+".@@$ .@@@@$ .@@@@@@@@@@@+$   ",
+"+$$$ +$$$$$ +$$$$$$@@@@+$    ",
+"                  .@@@+$     ",
+"                  .@@+$      ",
+"                  .@+$       ",
+"                  .+$        ",
+"                  .$         "};
+/* XPM */
+static char * stop_xpm[] = {
+"28 20 4 1",
+"       c None",
+".      c #FFFFFF",
+"+      c #000000",
+"@      c #505075",
+"          ........          ",
+"         +@@@@@@@@.         ",
+"        +@@@@@@@@@@.        ",
+"       +@@@@@..@@@@@.       ",
+"      +@@@@@....@@@@@.      ",
+"     +@@@@@@....@@@@@@.     ",
+"    +@@@@@@@....@@@@@@@.    ",
+"    +@@@@@@@....@@@@@@@.    ",
+"    +@@@@@@@....@@@@@@@.    ",
+"    +@@@@@@@....@@@@@@@.    ",
+"    +@@@@@@@....@@@@@@@.    ",
+"    +@@@@@@@....@@@@@@@.    ",
+"    +@@@@@@@....@@@@@@@.    ",
+"    +@@@@@@@@..@@@@@@@@.    ",
+"     +@@@@@@@@@@@@@@@@.     ",
+"      +@@@@@@..@@@@@@.      ",
+"       +@@@@....@@@@.       ",
+"        +@@@@..@@@@.        ",
+"         +@@@@@@@@.         ",
+"          ++++++++          "};
+
+static char * save_xpm[] = {
+"28 20 4 1",
+"       c None",
+".      c #FFFFFF",
+"+      c #000000",
+"@      c #505075",
+"    ...................     ",
+"    @@@@@@@@@@@@@@@@@@@+    ",
+"    @..@@@@@@@@@@@@@@@@+    ",
+"    @@@@++++++++++++@@@+    ",
+"    @@@@############@@@+    ",
+"    @@@@++++++++++++@@@+    ",
+"    @@@@############@@@+    ",
+"    @@@@++++++++++++@@@+    ",
+"    @@@@############@@@+    ",
+"    @@@@++++++++++++@@@+    ",
+"    @@@@@@@@@@@@@@@@@@@+    ",
+"    @@@@@@@@@@@@@@@@@@@+    ",
+"    @@@@@@@@@@@@@@@@@@@+    ",
+"    @@@@@##########@@@@+    ",
+"    @@@@@#++++#####@@@@+    ",
+"    @@@@@#+..+#####@@@@+    ",
+"    @@@@@#+..+#####@@@@+    ",
+"    @@@@@#+..+#####@@@@+    ",
+"     @@@@@@@@@@@@@@@@@@@     ",
+"                            "};
+
diff -urN dillo-0.6.6/src/plain.c dillo2-0.6.6/src/plain.c
--- dillo-0.6.6/src/plain.c	2002-02-26 14:56:40.000000000 -0700
+++ dillo2-0.6.6/src/plain.c	2003-04-21 13:58:57.000000000 -0600
@@ -55,7 +55,7 @@
 /*
  * Popup the page menu ("button_press_event" callback of the viewport)
  */
-static int Plain_page_menu(GtkWidget *viewport, GdkEventButton *event,
+static gboolean Plain_page_menu(GtkWidget *viewport, GdkEventButton *event,
                            BrowserWindow *bw)
 {
    if (event->button == 3) {
@@ -99,10 +99,9 @@
    //a_Dw_widget_set_style (plain->dw, plain->style);
 
    /* The context menu */
-   gtk_signal_connect_while_alive
-      (GTK_OBJECT(GTK_BIN(plain->bw->docwin)->child),"button_press_event",
-       GTK_SIGNAL_FUNC(Plain_page_menu), (gpointer)plain->bw,
-       GTK_OBJECT (page));
+   g_signal_connect (GTK_OBJECT(GTK_BIN(plain->bw->docwin)->child),
+                     "button_press_event", GTK_SIGNAL_FUNC(Plain_page_menu),
+                     plain->bw);
 
    return plain;
 }
@@ -155,8 +154,11 @@
 static void Plain_write(DilloPlain *plain, void *Buf, gint BufSize, gint Eof)
 {
    DwPage *page = (DwPage *)plain->dw;
+   GError *err = NULL;
    char *Start;
    char *data;
+   char *utf8_str;
+   char *tabs_expanded;
    gint i, len, MaxBytes;
 
    Start = (char*)Buf + plain->Start_Ofs;
@@ -173,7 +175,19 @@
          break;
       case ST_Eol:
          data = g_strndup(Start + i - len, len);
-         a_Dw_page_add_text(page, a_Misc_expand_tabs(data), plain->style);
+         tabs_expanded = a_Misc_expand_tabs(data);
+         utf8_str = g_convert(tabs_expanded, -1, "UTF8", "ISO-8859-1",
+                              NULL, NULL, &err);
+
+         if (err) {
+            g_warning("Plain_write(): %s\n", err->message);
+            g_error_free(err);
+            err = NULL;
+         } else {
+            a_Dw_page_add_text(page, utf8_str, plain->style);
+         }
+
+         g_free(tabs_expanded);
          g_free(data);
          a_Dw_page_add_parbreak(page, 0, plain->style);
          if ( Start[i] == '\r' && Start[i + 1] == '\n' ) ++i;
@@ -186,7 +200,19 @@
    plain->Start_Ofs += i - len;
    if ( Eof && len ) {
       data = g_strndup(Start + i - len, len);
-      a_Dw_page_add_text(page, a_Misc_expand_tabs(data), plain->style);
+      tabs_expanded = a_Misc_expand_tabs(data);
+      utf8_str = g_convert(tabs_expanded, -1, "UTF8", "ISO-8859-1",
+                           NULL, NULL, &err);
+
+      if (err) {
+         g_warning("Plain_write(): %s\n", err->message);
+         g_error_free(err);
+         err = NULL;
+      } else {
+         a_Dw_page_add_text(page, utf8_str, plain->style);
+      }
+
+      g_free(tabs_expanded);
       g_free(data);
       a_Dw_page_add_parbreak(page, 0, plain->style);
       plain->Start_Ofs += len;
diff -urN dillo-0.6.6/src/prefs.c dillo2-0.6.6/src/prefs.c
--- dillo-0.6.6/src/prefs.c	2002-04-03 09:31:46.000000000 -0700
+++ dillo2-0.6.6/src/prefs.c	2003-04-21 12:36:27.000000000 -0600
@@ -67,7 +67,8 @@
    { "vw_fontname", DRC_TOKEN_VW_FONT },
    { "fw_fontname", DRC_TOKEN_FW_FONT },
    { "generate_submit", DRC_TOKEN_GENERATE_SUBMIT },
-   { "enterpress_forces_submit", DRC_TOKEN_ENTERPRESS_FORCES_SUBMIT }
+   { "enterpress_forces_submit", DRC_TOKEN_ENTERPRESS_FORCES_SUBMIT },
+   { "halfsize_images", DRC_TOKEN_HALFSIZE_IMAGES }
 };
 
 static const guint n_symbols = sizeof (symbols) / sizeof (symbols[0]);
@@ -156,6 +157,8 @@
          prefs.panel_size = 1;
       else if (!g_strcasecmp(scanner->value.v_string, "medium"))
          prefs.panel_size = 2;
+	  else if (!g_strcasecmp(scanner->value.v_string, "stack"))
+         prefs.panel_size = 4;
       else /* default to "large" */
          prefs.panel_size = 3;
       break;
@@ -226,6 +229,9 @@
       prefs.enterpress_forces_submit =
          (strcmp(scanner->value.v_string, "YES") == 0);
       break;
+   case DRC_TOKEN_HALFSIZE_IMAGES:
+      prefs.halfsize_images = (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
    default:
       break;   /* Not reached */
    }
diff -urN dillo-0.6.6/src/prefs.h dillo2-0.6.6/src/prefs.h
--- dillo-0.6.6/src/prefs.h	2002-04-03 09:31:46.000000000 -0700
+++ dillo2-0.6.6/src/prefs.h	2003-04-21 12:36:27.000000000 -0600
@@ -58,6 +58,7 @@
    DRC_TOKEN_VW_FONT,
    DRC_TOKEN_GENERATE_SUBMIT,
    DRC_TOKEN_ENTERPRESS_FORCES_SUBMIT,
+   DRC_TOKEN_HALFSIZE_IMAGES,
 
    DRC_TOKEN_LAST
 } Dillo_Rc_TokenType;
@@ -100,6 +101,7 @@
    gchar *fw_fontname;
    gboolean generate_submit;
    gboolean enterpress_forces_submit;
+   gboolean halfsize_images;
 };
 
 /* Global Data */
diff -urN dillo-0.6.6/src/progressbar.c dillo2-0.6.6/src/progressbar.c
--- dillo-0.6.6/src/progressbar.c	2001-05-17 19:31:15.000000000 -0600
+++ dillo2-0.6.6/src/progressbar.c	2003-04-21 12:36:27.000000000 -0600
@@ -23,7 +23,11 @@
  */
 GtkWidget* a_Progressbar_new(void)
 {
-   return gtk_statusbar_new();
+   GtkWidget *frame = gtk_frame_new(NULL);
+   GtkWidget *label = gtk_label_new("");
+   gtk_container_add(GTK_CONTAINER(frame), label);
+   gtk_widget_show (label);
+   return frame;
 }
 
 /*
@@ -49,7 +53,6 @@
 
 /*
  * Again, for future preferences stuff
- */
 gint a_Progressbar_set_font(GtkWidget *pbar, const char *font)
 {
    GtkStyle *style;
@@ -62,6 +65,7 @@
                          (GtkCallback) gtk_widget_set_style, style);
    return(0);
 }
+ */
 
 /*
  * Update the specified progress bar.
@@ -70,14 +74,10 @@
  */
 void a_Progressbar_update(GtkWidget *pbar, const char *updatestr, gint sens)
 {
-   gint context_id;
-
    gtk_widget_set_sensitive(pbar, (sens == 0) ? FALSE : TRUE);
 
    if ( updatestr != NULL ) {
-      context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(pbar), "text");
-      gtk_statusbar_pop(GTK_STATUSBAR(pbar), context_id);
-      gtk_statusbar_push(GTK_STATUSBAR(pbar), context_id, updatestr);
+      gtk_label_set_text (GTK_LABEL(GTK_BIN(pbar)->child), updatestr);
    }
 }
 
diff -urN dillo-0.6.6/stamp-h2.in dillo2-0.6.6/stamp-h2.in
--- dillo-0.6.6/stamp-h2.in	1969-12-31 17:00:00.000000000 -0700
+++ dillo2-0.6.6/stamp-h2.in	2003-04-21 12:35:20.000000000 -0600
@@ -0,0 +1 @@
+timestamp