summaryrefslogtreecommitdiff
path: root/dillo
diff options
context:
space:
mode:
Diffstat (limited to 'dillo')
-rw-r--r--dillo/dillo2-0.6.6/dillo.desktop9
-rw-r--r--dillo/dillo2-0.6.6/fix_about_syntax.patch174
-rw-r--r--dillo/dillo2-0.6.6/gtk2.patch23878
3 files changed, 24061 insertions, 0 deletions
diff --git a/dillo/dillo2-0.6.6/dillo.desktop b/dillo/dillo2-0.6.6/dillo.desktop
index e69de29bb2..6c5f994da4 100644
--- a/dillo/dillo2-0.6.6/dillo.desktop
+++ b/dillo/dillo2-0.6.6/dillo.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Web browser
+Comment=Dillo
+Exec=dillo
+Terminal=0
+Type=Application
+Icon=dillo.png
+Categories=Application;PIM;GPE
+StartupNotify=True
diff --git a/dillo/dillo2-0.6.6/fix_about_syntax.patch b/dillo/dillo2-0.6.6/fix_about_syntax.patch
index e69de29bb2..06b4d09614 100644
--- a/dillo/dillo2-0.6.6/fix_about_syntax.patch
+++ b/dillo/dillo2-0.6.6/fix_about_syntax.patch
@@ -0,0 +1,174 @@
+diff -urNd ../dillo2-0.6.6-r0/dillo2-0.6.6/src/IO/about.c dillo2-0.6.6/src/IO/about.c
+--- ../dillo2-0.6.6-r0/dillo2-0.6.6/src/IO/about.c 2003-04-21 19:36:31.000000000 +0100
++++ dillo2-0.6.6/src/IO/about.c 2004-09-11 10:58:48.000000000 +0100
+@@ -28,88 +28,88 @@
+ * HTML text for startup screen
+ */
+ static char *Splash=
+-"Content-type: text/html
+-
+-<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\">
+-<html>
+-<head>
+-<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
+-</head>
+-
+-<body bgcolor=\"gray\" link=\"aqua\" vlink=\"black\">
+-
+-<table WIDTH=\"100%\" BORDER=0 CELLSPACING=0 CELLPADDING=5>
+-<tr>
+-<td BGCOLOR=\"gray\">
+-<hr>
+- <A HREF='http://dillo.cipsga.org.br/dillo-help.html'>Help</A><br>
+- <A HREF='http://dillo.cipsga.org.br/'>Home Page</A><br>
+- <A HREF='http://dillo.cipsga.org.br/ChangeLog.html'>
+- Full&nbsp;ChangeLog</A><br>
+- <A HREF='http://www.google.com/'>Google</A><br>
+-<hr>
+-</td>
+-
+-<td BGCOLOR=\"#9090F0\">
+-<h1><b>Dillo 0.6.7-pre</b></h1>
+-
+-<hr>
+- <h1>Dillo project<br>
+- <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
+- 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.
+-<p>
+- 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.
+-
+-<hr>
+-<h4> Release overview: </h4>
+-<BLOCKQUOTE>
+- [...]
+-</BLOCKQUOTE><BLOCKQUOTE>
+- Remember that dillo project uses a release model where every new
+-browser shall be better than the former.
+-<EM>Keep up with the latest one!</EM>
+-</BLOCKQUOTE>
+-<hr>
+-<h4>NOTES:</h4>
+-<p>
+-<ul>
+-<li> There's a <STRONG>dillorc</STRONG> (readable config) file within the
+-tarball; It is well commented and has plenty of options to customize dillo,
+-so <STRONG>copy it</STRONG> to your <STRONG>~/.dillo/</STRONG> directory,
+-and modify to your taste.
+-<li> There's documentation for developers in the <CODE>/doc</CODE>
+-dir within the tarball;
+-you can find directions on everything else at the home page. </li>
+-<li> Dillo has context sensitive menus on the right-mouse-button
+- (pages, links, Back and Forward buttons)</li>
+-<li> Dillo behaves very nice when browsing local files, images, and HTML.
+-It's also very good for Internet searching (try Google!).</li>
+-<li> This release is mainly intended <strong>for developers</strong>
+-and <em>advanced users</em></li>
+-</ul>
+-<hr>
+-<h4>Notes to Xfce users:</h4>
+-<P> Please bear in mind that dillo is alpha code; it is not ready for
+-end users yet. Anyway, local browsing (files and local HTTP) is quite stable
+-and chances are you'll not be disappointed.
+-<P> Tip: if you set BROWSER=dillo, Xfce's help will be a sweet tour!
+-<P> TABLES are a work in progress.
+-<P> FRAMES, Java, and Javascript are not supported.
+-<hr>
+-<hr>
+-
+-</td>
+-</table>
+-</body>
+-</html>
++"Content-type: text/html \
++ \
++<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"> \
++<html> \
++<head> \
++<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"> \
++</head> \
++ \
++<body bgcolor=\"gray\" link=\"aqua\" vlink=\"black\"> \
++ \
++<table WIDTH=\"100%\" BORDER=0 CELLSPACING=0 CELLPADDING=5> \
++<tr> \
++<td BGCOLOR=\"gray\"> \
++<hr> \
++ <A HREF='http://dillo.cipsga.org.br/dillo-help.html'>Help</A><br> \
++ <A HREF='http://dillo.cipsga.org.br/'>Home Page</A><br> \
++ <A HREF='http://dillo.cipsga.org.br/ChangeLog.html'> \
++ Full&nbsp;ChangeLog</A><br> \
++ <A HREF='http://www.google.com/'>Google</A><br> \
++<hr> \
++</td> \
++ \
++<td BGCOLOR=\"#9090F0\"> \
++<h1><b>Dillo 0.6.7-pre</b></h1> \
++ \
++<hr> \
++ <h1>Dillo project<br> \
++ <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 \
++ 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. \
++<p> \
++ 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. \
++ \
++<hr> \
++<h4> Release overview: </h4> \
++<BLOCKQUOTE> \
++ [...] \
++</BLOCKQUOTE><BLOCKQUOTE> \
++ Remember that dillo project uses a release model where every new \
++browser shall be better than the former. \
++<EM>Keep up with the latest one!</EM> \
++</BLOCKQUOTE> \
++<hr> \
++<h4>NOTES:</h4> \
++<p> \
++<ul> \
++<li> There's a <STRONG>dillorc</STRONG> (readable config) file within the \
++tarball; It is well commented and has plenty of options to customize dillo, \
++so <STRONG>copy it</STRONG> to your <STRONG>~/.dillo/</STRONG> directory, \
++and modify to your taste. \
++<li> There's documentation for developers in the <CODE>/doc</CODE> \
++dir within the tarball; \
++you can find directions on everything else at the home page. </li> \
++<li> Dillo has context sensitive menus on the right-mouse-button \
++ (pages, links, Back and Forward buttons)</li> \
++<li> Dillo behaves very nice when browsing local files, images, and HTML. \
++It's also very good for Internet searching (try Google!).</li> \
++<li> This release is mainly intended <strong>for developers</strong> \
++and <em>advanced users</em></li> \
++</ul> \
++<hr> \
++<h4>Notes to Xfce users:</h4> \
++<P> Please bear in mind that dillo is alpha code; it is not ready for \
++end users yet. Anyway, local browsing (files and local HTTP) is quite stable \
++and chances are you'll not be disappointed. \
++<P> Tip: if you set BROWSER=dillo, Xfce's help will be a sweet tour! \
++<P> TABLES are a work in progress. \
++<P> FRAMES, Java, and Javascript are not supported. \
++<hr> \
++<hr> \
++ \
++</td> \
++</table> \
++</body> \
++</html> \
+ ";
+
+
diff --git a/dillo/dillo2-0.6.6/gtk2.patch b/dillo/dillo2-0.6.6/gtk2.patch
index e69de29bb2..9f6d8acdda 100644
--- a/dillo/dillo2-0.6.6/gtk2.patch
+++ b/dillo/dillo2-0.6.6/gtk2.patch
@@ -0,0 +1,23878 @@
+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$
++# $Id$
+
+ 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