===============================
 Dillo i18n patch by Kiyo
===============================

This is an unofficial i18n patch.
Please see ChangeLog for details.
Please do not ask a dillo team about this patch.

The newest patch can get in http://teki.jpn.ph/pc/software/index-e.shtml
If you found bug, please mail to webmaster@teki.jpn.ph.


diff -pruN dillo-0.8.6/ABOUT-NLS dillo-0.8.6-i18n-misc-20060709/ABOUT-NLS
--- dillo-0.8.6/ABOUT-NLS	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/ABOUT-NLS	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,432 @@
+Notes on the Free Translation Project
+*************************************
+
+   Free software is going international!  The Free Translation Project
+is a way to get maintainers of free software, translators, and users all
+together, so that will gradually become able to speak many languages.
+A few packages already provide translations for their messages.
+
+   If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site.  But you do _not_
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+   Installers will find here some useful hints.  These notes also
+explain how users should proceed for getting the programs to use the
+available translations.  They tell how people wanting to contribute and
+work at translations should contact the appropriate team.
+
+   When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used.  The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+Quick configuration advice
+==========================
+
+   If you want to exploit the full power of internationalization, you
+should configure it using
+
+     ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed.  So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation.  Future versions of GNU `gettext' will
+very likely convey even more functionality.  So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+   So you need _not_ provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+INSTALL Matters
+===============
+
+   Some packages are "localizable" when properly installed; the
+programs they contain can be made to speak your own native language.
+Most such packages use GNU `gettext'.  Other packages have their own
+ways to internationalization, predating GNU `gettext'.
+
+   By default, this package will be installed to allow translation of
+messages.  It will automatically detect whether the system already
+provides the GNU `gettext' functions.  If not, the GNU `gettext' own
+library will be used.  This library is wholly contained within this
+package, usually in the `intl/' subdirectory, so prior installation of
+the GNU `gettext' package is _not_ required.  Installers may use
+special options at configuration time for changing the default
+behaviour.  The commands:
+
+     ./configure --with-included-gettext
+     ./configure --disable-nls
+
+will respectively bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
+
+   When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this.  This might be not what is desirable.  You
+should use the more recent version of the GNU `gettext' library.  I.e.
+if the file `intl/VERSION' shows that the library which comes with this
+package is more recent, you should use
+
+     ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+   The configuration process will not test for the `catgets' function
+and therefore it will not be used.  The reason is that even an
+emulation of `gettext' on top of `catgets' could not provide all the
+extensions of the GNU `gettext' library.
+
+   Internationalized packages have usually many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language.  Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package.  However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+Using This Package
+==================
+
+   As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+`LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
+and `CC' is an ISO 3166 two-letter country code.  For example, let's
+suppose that you speak German and live in Germany.  At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for
+all.
+
+   You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries.  For
+example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
+country code serves to distinguish the dialects.
+
+   The locale naming convention of `LL_CC', with `LL' denoting the
+language and `CC' denoting the country, is the one use on systems based
+on GNU libc.  On other systems, some variations of this scheme are
+used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
+locales supported by your system for your country by running the command
+`locale -a | grep '^LL''.
+
+   Not all programs have translations for all languages.  By default, an
+English message is shown in place of a nonexistent translation.  If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+`LANGUAGE'.  GNU `gettext' gives preference to `LANGUAGE' over `LANG'
+for the purpose of message handling, but you still need to have `LANG'
+set to the primary language; this is required by other parts of the
+system libraries.  For example, some Swedish users who would rather
+read translations in German than English for when Swedish is not
+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+
+   In the `LANGUAGE' environment variable, but not in the `LANG'
+environment variable, `LL_CC' combinations can be abbreviated as `LL'
+to denote the language's main dialect.  For example, `de' is equivalent
+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
+(Portuguese as spoken in Portugal) in this context.
+
+Translating Teams
+=================
+
+   For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list.  The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
+area.
+
+   If you'd like to volunteer to _work_ at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is _not_ the same as the list itself, it has
+`-request' appended.  For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+     subscribe
+
+   Keep in mind that team members are expected to participate
+_actively_ in translations, or at solving translational difficulties,
+rather than merely lurking around.  If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `translation@iro.umontreal.ca' to reach the
+coordinator for all translator teams.
+
+   The English team is special.  It works at improving and uniformizing
+the terminology in use.  Proven linguistic skill are praised more than
+programming skill, here.
+
+Available Packages
+==================
+
+   Languages are not equally supported in all packages.  The following
+matrix shows the current state of internationalization, as of July
+2002.  The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+     Ready PO files    be bg ca cs da de el en eo es et fi fr
+                     +----------------------------------------+
+     a2ps            |             [] []             []    [] |
+     bash            |                []       [] []       [] |
+     bfd             |                            []       [] |
+     binutils        |                            []       [] |
+     bison           |                []          [] []    [] |
+     clisp           |                []    []    []       [] |
+     clisp           |                                        |
+     clisplow        |                                        |
+     cpio            |             [] []          []       [] |
+     darkstat        |             ()                         |
+     diffutils       |          [] [] []       [] []       [] |
+     enscript        |                []                   [] |
+     error           |                []          []       [] |
+     fetchmail       |       [] () [] []          []       () |
+     fileutils       |             [] []          [] []    [] |
+     findutils       |             [] []       [] [] []    [] |
+     flex            |       []    [] []          []       [] |
+     gas             |                            []       [] |
+     gawk            |                []          []       [] |
+     gcal            |       []                            [] |
+     gcc             |                            []       [] |
+     gettext         |       []    [] []          []       [] |
+     gnupg           |       []       [] []    [] [] []    [] |
+     gprof           |                            []       [] |
+     gpsdrive        |             () ()    ()    ()       () |
+     grep            |    [] []       [] []       [] []    [] |
+     gretl           |                            []          |
+     gthumb          |                ()          ()       () |
+     hello           |       []    [] [] []    [] [] [] [] [] |
+     id-utils        |             [] []                   [] |
+     indent          |       []       []       []    []    [] |
+     jpilot          |          () [] []                   [] |
+     jwhois          |                            []       [] |
+     kbd             |                []          []       [] |
+     ld              |                            []       [] |
+     libc            |       [] [] [] [] []       []       [] |
+     libiconv        |       []       []       [] []          |
+     lifelines       |                ()                   () |
+     lilypond        |             []             []       [] |
+     lingoteach      |                         []          [] |
+     lingoteach_lessons|                ()          ()          |
+     lynx            |       [] [] [] []             []       |
+     m4              |          [] [] [] []                [] |
+     make            |             [] []          []       [] |
+     man-db          |       [] () () []          ()       () |
+     mysecretdiary   |                []          []       [] |
+     nano            |       [] () [] []          []       [] |
+     nano_1_0        |       [] () [] []          []       [] |
+     opcodes         |             []             []       [] |
+     parted          |       []    [] []          []       [] |
+     ptx             |             [] []       [] [] [] [] [] |
+     python          |                                        |
+     recode          |             [] [] []    [] []       [] |
+     sed             |       [] [] [] [] []    [] [] []    [] |
+     sh-utils        |                []          [] []    [] |
+     sharutils       |          [] [] [] []       []       [] |
+     sketch          |                ()          []       () |
+     soundtracker    |                []          []       [] |
+     sp              |                []                      |
+     tar             |          [] [] []          [] []    [] |
+     texinfo         |          [] [] []       []          [] |
+     textutils       |       []    [] []          []       [] |
+     util-linux      |          [] [] []          [] []    [] |
+     vorbis-tools    |                                     [] |
+     wastesedge      |                                        |
+     wdiff           |       []    [] []          [] []    [] |
+     wget            |    [] [] [] [] [] []       [] [] [] [] |
+                     +----------------------------------------+
+                       be bg ca cs da de el en eo es et fi fr
+                        0  2 19 10 30 44  9  1 12 45 16  3 53
+     
+                       gl he hr hu id it ja ko lv nb nl nn
+                     +-------------------------------------+
+     a2ps            |                ()    ()       []    |
+     bash            |          []                         |
+     bfd             |                   []                |
+     binutils        |                   []                |
+     bison           |       []       [] []          []    |
+     clisp           |                               []    |
+     clisp           |                                     |
+     clisplow        |                                     |
+     cpio            | []       []          []       []    |
+     darkstat        |       ()                            |
+     diffutils       | [] []    [] []    []                |
+     enscript        |       []                      []    |
+     error           |          []                         |
+     fetchmail       |                   []                |
+     fileutils       |          []    [] []                |
+     findutils       | []    [] [] [] [] [] []       []    |
+     flex            |                      []             |
+     gas             |                                     |
+     gawk            |    []                               |
+     gcal            |                                     |
+     gcc             |                   []                |
+     gettext         |                   [] []             |
+     gnupg           | []          [] [] []                |
+     gprof           |                                     |
+     gpsdrive        |          []    ()             ()    |
+     grep            | [] [] [] [] [] [] []                |
+     gretl           |                                     |
+     gthumb          |                () ()                |
+     hello           | [] [] [] [] [] [] [] [] [] [] [] [] |
+     id-utils        |          []                   []    |
+     indent          | []       []       []          []    |
+     jpilot          |                   ()          ()    |
+     jwhois          |          [] []                      |
+     kbd             |                                     |
+     ld              |                                     |
+     libc            | []                [] []    []       |
+     libiconv        | []    [] []                         |
+     lifelines       |                                     |
+     lilypond        |                   []          []    |
+     lingoteach      |          []                         |
+     lingoteach_lessons|                                     |
+     lynx            |          []    [] []          []    |
+     m4              | []          []    []          []    |
+     make            | [] [] []          [] []       []    |
+     man-db          |                () ()                |
+     mysecretdiary   |             []                      |
+     nano            | []          [] []          [] [] [] |
+     nano_1_0        | []          [] []          []    [] |
+     opcodes         |             []                []    |
+     parted          | []                []             [] |
+     ptx             | []       [] []             [] []    |
+     python          |                                     |
+     recode          | [] []          []                   |
+     sed             | [] [] []    [] [] [] []       []    |
+     sh-utils        |                [] []       []       |
+     sharutils       | []                []          []    |
+     sketch          |                ()                   |
+     soundtracker    | []    []                            |
+     sp              |                                     |
+     tar             | []    []       [] []       []       |
+     texinfo         |    [] []          []                |
+     textutils       | []                   []    []       |
+     util-linux      |                () []                |
+     vorbis-tools    |                                     |
+     wastesedge      |                                     |
+     wdiff           | []       [] []                      |
+     wget            | [] [] [] []       []          []    |
+                     +-------------------------------------+
+                       gl he hr hu id it ja ko lv nb nl nn
+                       23  9 12 18 14 13 26  9  1  8 19  4
+     
+                       no pl pt pt_BR ru sk sl sv tr uk zh_TW
+                     +----------------------------------------+
+     a2ps            | () () ()  []   []    [] [] []          | 10
+     bash            |           []                           |  6
+     bfd             |                         [] []          |  5
+     binutils        |                         [] []          |  5
+     bison           |                []       [] []          | 11
+     clisp           |                                        |  5
+     clisp           |                                        |  0
+     clisplow        |                                        |  0
+     cpio            |    []     []   []       []             | 12
+     darkstat        |           []                      ()   |  1
+     diffutils       |    []     []   []       [] []     []   | 17
+     enscript        |           []   []       [] []          |  8
+     error           |                   []       []     []   |  7
+     fetchmail       |    ()     ()               []          |  6
+     fileutils       |                []    [] [] []     []   | 13
+     findutils       |    []     []   [] [] [] [] []          | 21
+     flex            |                []       [] []          |  9
+     gas             |                            []          |  3
+     gawk            |                         [] []          |  6
+     gcal            |                         [] []          |  4
+     gcc             |                            []          |  4
+     gettext         |                [] [] [] [] []     []   | 13
+     gnupg           |    []                   [] []          | 14
+     gprof           |                         [] []          |  4
+     gpsdrive        |                   []    [] ()          |  3
+     grep            |    []          []    []    []          | 18
+     gretl           |                                        |  1
+     gthumb          |           ()   ()       []             |  1
+     hello           | [] []          [] []    [] [] []       | 28
+     id-utils        |           []   []       [] []          |  9
+     indent          |           []   [] []    [] []          | 14
+     jpilot          | ()                      () []          |  4
+     jwhois          |           []   ()       () []     []   |  7
+     kbd             |                         [] []          |  5
+     ld              |                         [] []          |  4
+     libc            | [] []     []      []    [] []          | 17
+     libiconv        |           []      []    [] []          | 11
+     lifelines       |                         []             |  1
+     lilypond        |                         []             |  6
+     lingoteach      |           []            []             |  5
+     lingoteach_lessons|                                        |  0
+     lynx            |           []   []       [] []          | 13
+     m4              |    []          []       []             | 12
+     make            |    []     []   []          []          | 14
+     man-db          |                                        |  3
+     mysecretdiary   |           []            [] []          |  7
+     nano            |    []          []       []    []       | 15
+     nano_1_0        |    []          []       []    []       | 14
+     opcodes         |                         [] []          |  7
+     parted          |       []  []            []             | 11
+     ptx             | [] [] []  []   []       [] []          | 19
+     python          |                                        |  0
+     recode          |    []     []   []    [] [] []          | 15
+     sed             |           []   [] [] [] [] []          | 23
+     sh-utils        |                            []          |  8
+     sharutils       |                []       [] []     []   | 13
+     sketch          |           []   ()       []             |  4
+     soundtracker    |                         []             |  6
+     sp              |                                        |  1
+     tar             | [] []     []      [] [] [] []          | 18
+     texinfo         |                []       []             | 10
+     textutils       |                []    [] [] []     []   | 13
+     util-linux      |           []            [] []          | 10
+     vorbis-tools    |                         []             |  2
+     wastesedge      |                                        |  0
+     wdiff           |           []   [] []    [] []          | 14
+     wget            |    []          [] [] [] [] [] []  []   | 24
+                     +----------------------------------------+
+       36 teams        no pl pt pt_BR ru sk sl sv tr uk zh_TW
+       67 domains       4 15  2  24   26 12 10 47 42  4   8    594
+
+   Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect.  This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+   For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer.  There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+   If July 2002 seems to be old, you may fetch a more recent copy of
+this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
+matrix with full percentage details can be found at
+`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
+
+Using `gettext' in new packages
+===============================
+
+   If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package.  Of course you have to respect the GNU Library General Public
+License which covers the use of the GNU `gettext' library.  This means
+in particular that even non-free programs can use `libintl' as a shared
+library, whereas only free software can use `libintl' as a static
+library or use modified versions of `libintl'.
+
+   Once the sources are changed appropriately and the setup can handle
+to use of `gettext' the only thing missing are the translations.  The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project.  Therefore the information given above
+applies also for every other Free Software Project.  Contact
+`translation@iro.umontreal.ca' to make the `.pot' files available to
+the translation teams.
+
diff -pruN dillo-0.8.6/AUTHORS dillo-0.8.6-i18n-misc-20060709/AUTHORS
--- dillo-0.8.6/AUTHORS	2004-08-13 04:48:49.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/AUTHORS	2006-05-16 01:21:07.000000000 +0900
@@ -35,6 +35,7 @@
           * Adam Sampson
           * Andreas Schweitzer
           * Dominic Wong 
+          * Kiyo
      _________________________________________________________________
    
    Web site logo:
diff -pruN dillo-0.8.6/ChangeLog dillo-0.8.6-i18n-misc-20060709/ChangeLog
--- dillo-0.8.6/ChangeLog	2006-04-27 01:06:54.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/ChangeLog	2006-07-09 00:53:02.000000000 +0900
@@ -3,6 +3,13 @@ Dillo project
 =============================================================================
 
 
+dillo-0.8.6-i18n-misc [??, 2006]
+
+ - * Applied 0.8.6 Changes to dillo-0.8.5-i18n-misc
+   * Some bug fixed.
+   Patches: Kiyo
+
+
 dillo-0.8.6 [Apr 26, 2006]
 
  - * Designed and implemented a dpi protocol library (libDpip.a in /dpip).
@@ -52,6 +59,29 @@ dillo-0.8.6 [Apr 26, 2006]
    Patch: Francis Daly
 
 
+dillo-0.8.5-i18n-misc [??, 2005]
+
+ - * Applied 0.8.5 Changes to dillo-0.8.4-i18n-misc
+   * Added dynamic font change system in a page unit.
+   * New-line processing is improved.
+   * Added send_referer option.
+   * Added the option which can specify config file.
+   * Two or more URLs are opened by tab.
+   * Added more checks for sane values in html.c.
+   * Fixed locale detection.
+   * Some bug fixed.
+   Patches: Kiyo
+ - * Fixed crash bug.
+   Patch: Richard Zidlicky
+ - * use an alternative rcfile from command line.
+   Patch: Tito
+ - * Fixed crash bug.
+   Patch: Christian Holland
+ - * Added Adblock.
+   * about:blank support.
+   Patches: Rudolf Polzer
+
+
 dillo-0.8.5 [Jun 15, 2005]
 
  - * Set "file:" to work as URI for current directory.
@@ -65,6 +95,18 @@ dillo-0.8.5 [Jun 15, 2005]
    Patches: Jorge Arellano
 
 
+dillo-0.8.4-i18n-misc [??, 2005]
+
+ - * Applied 0.8.4 Changes to dillo-0.8.3-i18n-misc
+   * Added more i18n. 
+   * Some bug fixed.
+   Patch: Kiyo
+ - * Added Chinese Message Catalog.
+   po catalogs: Babyfai Cheung
+ - * cache-control
+   Patch:: madis
+
+
 dillo-0.8.4 [Jan 11, 2005]
 
  - * Fixed a possible attack (program abortion) by malicious web pages, which
@@ -116,6 +158,15 @@ dillo-0.8.4 [Jan 11, 2005]
    Patch: Tavis Ormandy
 
 
+dillo-0.8.3-i18n-misc [??, 2004]
+
+ - * Applied 0.8.3 Changes to dillo-0.8.2-i18n-misc
+   * Text Search in status bar
+   * Added more i18n. 
+   * Some bug fixed.
+   Patch: Kiyo
+
+
 dillo-0.8.3 [Oct 27, 2004]
 
  - * Added a missing error handler for unreachable host in http.c.
@@ -170,6 +221,12 @@ dillo-0.8.3 [Oct 27, 2004]
    Patch: Bj�rn Brill
 
 
+dillo-0.8.2-i18n-misc [??, 2004]
+
+ - * Applied 0.8.2 Changes to dillo-0.8.1-i18n-misc
+   Patch: Kiyo
+
+
 dillo-0.8.2 [Jul 06, 2004]
 
  - * Made PgUp/PgDn scroll by a full page, instead of a half (BUG#418).
@@ -204,6 +261,12 @@ dillo-0.8.2 [Jul 06, 2004]
    Patch: Diego S�enz
 
 
+dillo-0.8.1-i18n-misc [??, 2004]
+
+ - * Applied 0.8.1 Changes to dillo-0.8.0-i18n-misc
+   Patch: Kiyo
+
+
 dillo-0.8.1 [May 14, 2004]
 
  - * Fixed dirent.h includes inside dpid.
@@ -258,6 +321,13 @@ dillo-0.8.1 [May 14, 2004]
    Patches: Jorge Arellano
 
 
+dillo-0.8.0-i18n-misc [??, 2004]
+
+ - * Applied 0.8.0 Changes to dillo-0.7.3-i18n-misc
+   * Fixed some bugs.
+   Patch: Kiyo
+
+
 dillo-0.8.0 [Feb 08, 2004]
 
  - * Added a right-mouse-button popup for images!
@@ -391,9 +461,46 @@ dillo-0.8.0 [Feb 08, 2004]
  - * Added the "-geometry" switch to the CLI.
    Patch: Jorge Arellano, Jan Dittmer
 
+dillo-0.7.3-i18n-misc [Oct ??, 2003]
+
+ - * Xft support
+   * changed internal code that is processed by UTF-8
+   * charset automatic recognition support
+   * GUI setting tool
+   * Start-up URL specification support
+   * gzip compression transmission support
+   * SSL support
+   * BASIC authorization support
+   * Referer support
+   * User-Agent change support
+   * meta-refresh support(optional)
+   * "Character entity references" (like &#xnnnn;) support
+   * Gettextize
+   * multi byte char selection support
+   * Fixed scroll quantity
+   * Fixed tab, frame patch
+   * Change font setting code for i18n
+   * Add Search box
+   Patches: Kiyo(http://teki.jpn.ph/)
+   (These patches referred to --
+    Robert Thomson, Tor Andersson, Frank de lange, madis, Geoff Lane,
+    Lars Clausen, Jim Huang, Takubo, LJ, Sam Mason)
 
 dillo-0.7.3 [Aug 03, 2003]
 
+ - * Implemented tabbed browsing, separated 'document' from 'interface' code
+     - Moved all document-specific code into DilloDoc (src/doc.c/h and
+       src/browser.h for definition of DilloDoc)
+     - Added tab browsing as an option (enabled by default, disable
+       with --disable-tabs configure option)
+   * Focus is on location bar on new empty window/tab
+   * Open new window on link-shift-click1, new tab on link-control-click1
+     - optionally open tab on link-click2 (pref tab_on_middle_click=YES)
+   * Implemented experimental frame and iframe support
+     - Added frame and iframe support as an option (enabled by default,
+       disable with --disable-frames configure option)
+     - Added support for named windows/frames (target= and name= parameters)
+   Patch: Frank de Lange
  - * Some more selection goodies:
      - Redesign of the selection state model, now the selection is preserved
        as long as possible.
diff -pruN dillo-0.8.6/Makefile.am dillo-0.8.6-i18n-misc-20060709/Makefile.am
--- dillo-0.8.6/Makefile.am	2005-10-29 03:55:23.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/Makefile.am	2006-07-09 00:18:49.000000000 +0900
@@ -1,5 +1,10 @@
-SUBDIRS = doc dpip src dpid dpi
+AM_CPPFLAGS=-DDILLORC_SYS='"$(sysconfdir)/dillorc"' -DLOCALEDIR='"$(localedir)"'
 
-EXTRA_DIST = ChangeLog.old dillorc install-dpi-local
+SUBDIRS = m4 doc dpip src dpid dpi config po
+  
+EXTRA_DIST = config.rpath  ChangeLog.old dillorc install-dpi-local autogen.sh bm-update
+bin_SCRIPTS = bm-update
 
 sysconf_DATA = dillorc
+
+ACLOCAL_AMFLAGS = -I m4
diff -pruN dillo-0.8.6/Makefile.in dillo-0.8.6-i18n-misc-20060709/Makefile.in
--- dillo-0.8.6/Makefile.in	2006-04-27 01:07:27.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/Makefile.in	2006-07-09 00:26:09.000000000 +0900
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
@@ -21,6 +21,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 top_builddir = .
+
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
@@ -37,51 +38,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
-	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
-	config.guess config.sub depcomp install-sh missing
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno configure.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-exec-recursive install-info-recursive \
-	install-recursive installcheck-recursive installdirs-recursive \
-	pdf-recursive ps-recursive uninstall-info-recursive \
-	uninstall-recursive
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(sysconfdir)"
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(sysconf_DATA)
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
-  { test ! -d $(distdir) \
-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr $(distdir); }; }
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
@@ -111,6 +67,7 @@ EXEEXT = @EXEEXT@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_CONFIG = @GLIB_CONFIG@
 GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_CONFIG = @GTK_CONFIG@
 GTK_LIBS = @GTK_LIBS@
@@ -118,9 +75,12 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
 LDFLAGS = @LDFLAGS@
 LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
 LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
 LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
 LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
 LIBJPEG_LIBS = @LIBJPEG_LIBS@
@@ -132,8 +92,13 @@ LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
 LIBS = @LIBS@
 LIBSSL_LIBS = @LIBSSL_LIBS@
 LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -142,11 +107,16 @@ PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_RANLIB = @ac_ct_RANLIB@
@@ -158,8 +128,6 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TR
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -178,9 +146,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
-mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
@@ -192,45 +160,56 @@ target_alias = @target_alias@
 target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
-SUBDIRS = doc dpip src dpid dpi
-EXTRA_DIST = ChangeLog.old dillorc install-dpi-local
+AM_CPPFLAGS = -DDILLORC_SYS='"$(sysconfdir)/dillorc"' -DLOCALEDIR='"$(localedir)"'
+
+SUBDIRS = m4 doc dpip src dpid dpi config po
+
+EXTRA_DIST = config.rpath  ChangeLog.old dillorc install-dpi-local autogen.sh bm-update
+bin_SCRIPTS = bm-update
+
 sysconf_DATA = dillorc
+
+ACLOCAL_AMFLAGS = -I m4
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+SCRIPTS = $(bin_SCRIPTS)
+
+DIST_SOURCES =
+DATA = $(sysconf_DATA)
+
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+	ps-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 $(srcdir)/Makefile.in $(srcdir)/configure \
+	ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS \
+	aclocal.m4 config.guess config.h.in config.rpath config.sub \
+	configure configure.in depcomp install-sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-am--refresh:
-	@:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
-	      cd $(srcdir) && $(AUTOMAKE) --gnu  \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  Makefile'; \
+
+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
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    echo ' $(SHELL) ./config.status'; \
-	    $(SHELL) ./config.status;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-	esac;
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
 
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(srcdir)/configure:  $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
 	cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+
+$(ACLOCAL_M4):  configure.in m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/intdiv0.m4 m4/intmax.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/inttypes_h.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/longdouble.m4 m4/longlong.m4 m4/nls.m4 m4/po.m4 m4/printf-posix.m4 m4/progtest.m4 m4/signed.m4 m4/size_max.m4 m4/stdint_h.m4 m4/uintmax_t.m4 m4/ulonglong.m4 m4/wchar_t.m4 m4/wint_t.m4 m4/xsize.m4
 	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 
 config.h: stamp-h1
@@ -242,30 +221,51 @@ config.h: stamp-h1
 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:  $(am__configure_deps) 
+
+$(srcdir)/config.h.in:  $(top_srcdir)/configure.in $(ACLOCAL_M4) 
 	cd $(top_srcdir) && $(AUTOHEADER)
-	rm -f stamp-h1
-	touch $@
+	touch $(srcdir)/config.h.in
 
 distclean-hdr:
 	-rm -f config.h stamp-h1
+binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+install-binSCRIPTS: $(bin_SCRIPTS)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
+	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  if test -f $$d$$p; then \
+	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+	    echo " $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f"; \
+	    $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f; \
+	  else :; fi; \
+	done
+
+uninstall-binSCRIPTS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f $(DESTDIR)$(bindir)/$$f; \
+	done
 uninstall-info-am:
+sysconfDATA_INSTALL = $(INSTALL_DATA)
 install-sysconfDATA: $(sysconf_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
+	$(mkinstalldirs) $(DESTDIR)$(sysconfdir)
 	@list='$(sysconf_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
-	  $(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " $(sysconfDATA_INSTALL) $$d$$p $(DESTDIR)$(sysconfdir)/$$f"; \
+	  $(sysconfDATA_INSTALL) $$d$$p $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 uninstall-sysconfDATA:
 	@$(NORMAL_UNINSTALL)
 	@list='$(sysconf_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
+	  rm -f $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 # This directory's subdirectories are mostly independent; you can cd
@@ -275,13 +275,7 @@ uninstall-sysconfDATA:
 #     (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):
-	@failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -293,7 +287,7 @@ $(RECURSIVE_TARGETS):
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
+	   || 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; \
@@ -301,13 +295,7 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-	@failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
 	case "$@" in \
 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -328,7 +316,7 @@ maintainer-clean-recursive:
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -339,6 +327,14 @@ ctags-recursive:
 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -347,22 +343,19 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
-tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	if (etags --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
-	  empty_fix=.; \
 	else \
 	  include_option=--include; \
-	  empty_fix=; \
 	fi; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
+	    test -f $$subdir/TAGS && \
 	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
@@ -372,11 +365,10 @@ TAGS: tags-recursive $(HEADERS) $(SOURCE
 	  done | \
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -399,10 +391,24 @@ GTAGS:
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+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
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
 	mkdir $(distdir)
+	$(mkinstalldirs) $(distdir)/po
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
 	list='$(DISTFILES)'; for file in $$list; do \
@@ -414,7 +420,7 @@ distdir: $(DISTFILES)
 	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
 	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
 	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
 	  else \
 	    dir=''; \
 	  fi; \
@@ -429,17 +435,15 @@ distdir: $(DISTFILES)
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
 	    (cd $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$(top_distdir)" \
+	        distdir=../$(distdir)/$$subdir \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -450,46 +454,19 @@ distdir: $(DISTFILES)
 	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
 	|| chmod -R a+r $(distdir)
 dist-gzip: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
-
-dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-	$(am__remove_distdir)
-
-dist-tarZ: distdir
-	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__remove_distdir)
-
-dist-shar: distdir
-	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__remove_distdir)
-
-dist-zip: distdir
-	-rm -f $(distdir).zip
-	zip -rq $(distdir).zip $(distdir)
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
 	$(am__remove_distdir)
 
 dist dist-all: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(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
-	case '$(DIST_ARCHIVES)' in \
-	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
-	*.tar.bz2*) \
-	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.Z*) \
-	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
-	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
-	*.zip*) \
-	  unzip $(distdir).zip ;;\
-	esac
+	$(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
@@ -509,20 +486,19 @@ distcheck: dist
 	        distuninstallcheck \
 	  && chmod -R a-w "$$dc_install_base" \
 	  && ({ \
-	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
 	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
 	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
 	  && rm -rf "$$dc_destdir" \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist \
-	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
+	  && rm -f $(distdir).tar.gz \
 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
 	$(am__remove_distdir)
-	@(echo "$(distdir) archives ready for distribution: "; \
-	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-	  sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+	@echo "$(distdir).tar.gz is ready for distribution" | \
+	  sed 'h;s/./=/g;p;x;p;x'
 distuninstallcheck:
 	@cd $(distuninstallcheck_dir) \
 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@@ -543,12 +519,11 @@ distcleancheck: distclean
 	       exit 1; } >&2
 check-am: all-am
 check: check-recursive
-all-am: Makefile $(DATA) config.h
+all-am: Makefile $(SCRIPTS) $(DATA) config.h
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(sysconfdir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
+	$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir)
+
 install: install-recursive
 install-exec: install-exec-recursive
 install-data: install-data-recursive
@@ -568,7 +543,7 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-rm -f $(CONFIG_CLEAN_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -586,15 +561,13 @@ dvi: dvi-recursive
 
 dvi-am:
 
-html: html-recursive
-
 info: info-recursive
 
 info-am:
 
 install-data-am:
 
-install-exec-am: install-sysconfDATA
+install-exec-am: install-binSCRIPTS install-sysconfDATA
 
 install-info: install-info-recursive
 
@@ -620,24 +593,28 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-info-am uninstall-sysconfDATA
+uninstall-am: uninstall-binSCRIPTS uninstall-info-am \
+	uninstall-sysconfDATA
 
 uninstall-info: uninstall-info-recursive
 
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
-	check-am clean clean-generic clean-recursive ctags \
-	ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
-	dist-tarZ dist-zip distcheck distclean distclean-generic \
-	distclean-hdr distclean-recursive distclean-tags \
-	distcleancheck distdir distuninstallcheck dvi dvi-am html \
-	html-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 install-sysconfDATA \
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+	clean-generic clean-recursive ctags ctags-recursive dist \
+	dist-all dist-gzip distcheck distclean distclean-generic \
+	distclean-hdr distclean-recursive distclean-tags distcleancheck \
+	distdir distuninstallcheck dvi dvi-am dvi-recursive info \
+	info-am info-recursive install install-am install-binSCRIPTS \
+	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 install-sysconfDATA \
 	installcheck installcheck-am installdirs installdirs-am \
-	maintainer-clean maintainer-clean-generic \
+	installdirs-recursive maintainer-clean maintainer-clean-generic \
 	maintainer-clean-recursive mostlyclean mostlyclean-generic \
-	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am uninstall-info-am uninstall-sysconfDATA
+	mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
+	ps-recursive tags tags-recursive uninstall uninstall-am \
+	uninstall-binSCRIPTS uninstall-info-am uninstall-info-recursive \
+	uninstall-recursive uninstall-sysconfDATA
 
 # 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 -pruN dillo-0.8.6/README dillo-0.8.6-i18n-misc-20060709/README
--- dillo-0.8.6/README	2006-03-25 01:00:18.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/README	2006-05-16 01:21:07.000000000 +0900
@@ -1,3 +1,14 @@
+===============================
+ Dillo i18n patch by Kiyo
+===============================
+
+This is an unofficial i18n patch.
+Please see ChangeLog for details.
+Please do not ask a dillo team about this patch.
+
+The newest patch can get in http://teki.jpn.ph/pc/software/index-e.shtml
+If you found bug, please mail to webmaster@teki.jpn.ph.
+
 =======
  Dillo
 =======
@@ -116,3 +127,5 @@ gcc
 Jorge.-
 (jcid@dillo.org)
 Mar 24, 2006
+
+
diff -pruN dillo-0.8.6/aclocal.m4 dillo-0.8.6-i18n-misc-20060709/aclocal.m4
--- dillo-0.8.6/aclocal.m4	2006-04-27 01:06:18.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/aclocal.m4	2006-05-16 01:21:07.000000000 +0900
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.7.9 -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  Free Software Foundation, Inc.
+# Copyright (C) 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.
@@ -11,535 +11,496 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-# Configure paths for GLIB
-# Owen Taylor     97-11-3
+# Do all the work for Automake.                            -*- Autoconf -*-
 
-dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
-dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or 
-dnl gthread is specified in MODULES, pass to glib-config
-dnl
-AC_DEFUN(AM_PATH_GLIB,
-[dnl 
-dnl Get the cflags and libraries from the glib-config script
-dnl
-AC_ARG_WITH(glib-prefix,[  --with-glib-prefix=PFX   Prefix where GLIB is installed (optional)],
-            glib_config_prefix="$withval", glib_config_prefix="")
-AC_ARG_WITH(glib-exec-prefix,[  --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
-            glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
-AC_ARG_ENABLE(glibtest, [  --disable-glibtest       Do not try to compile and run a test GLIB program],
-		    , enable_glibtest=yes)
+# 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.
 
-  if test x$glib_config_exec_prefix != x ; then
-     glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
-     if test x${GLIB_CONFIG+set} != xset ; then
-        GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
-     fi
-  fi
-  if test x$glib_config_prefix != x ; then
-     glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
-     if test x${GLIB_CONFIG+set} != xset ; then
-        GLIB_CONFIG=$glib_config_prefix/bin/glib-config
-     fi
-  fi
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
 
-  for module in . $4
-  do
-      case "$module" in
-         gmodule) 
-             glib_config_args="$glib_config_args gmodule"
-         ;;
-         gthread) 
-             glib_config_args="$glib_config_args gthread"
-         ;;
-      esac
-  done
+# 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.
 
-  AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
-  min_glib_version=ifelse([$1], ,0.99.7,$1)
-  AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
-  no_glib=""
-  if test "$GLIB_CONFIG" = "no" ; then
-    no_glib=yes
-  else
-    GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
-    GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
-    glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-    glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-    glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-    if test "x$enable_glibtest" = "xyes" ; then
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $GLIB_CFLAGS"
-      LIBS="$GLIB_LIBS $LIBS"
-dnl
-dnl Now check if the installed GLIB is sufficiently new. (Also sanity
-dnl checks the results of glib-config to some extent
-dnl
-      rm -f conf.glibtest
-      AC_TRY_RUN([
-#include <glib.h>
-#include <stdio.h>
-#include <stdlib.h>
+# 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.
 
-int 
-main ()
-{
-  int major, minor, micro;
-  char *tmp_version;
+# 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.
 
-  system ("touch conf.glibtest");
+# serial 10
 
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_glib_version");
-  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_glib_version");
-     exit(1);
-   }
+AC_PREREQ([2.54])
 
-  if ((glib_major_version != $glib_config_major_version) ||
-      (glib_minor_version != $glib_config_minor_version) ||
-      (glib_micro_version != $glib_config_micro_version))
-    {
-      printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
-             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
-             glib_major_version, glib_minor_version, glib_micro_version);
-      printf ("*** was found! If glib-config was correct, then it is best\n");
-      printf ("*** to remove the old version of GLIB. 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 glib-config was wrong, set the environment variable GLIB_CONFIG\n");
-      printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
-      printf("*** before re-running configure\n");
-    } 
-  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
-	   (glib_minor_version != GLIB_MINOR_VERSION) ||
-           (glib_micro_version != GLIB_MICRO_VERSION))
-    {
-      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
-	     GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
-      printf("*** library (version %d.%d.%d)\n",
-	     glib_major_version, glib_minor_version, glib_micro_version);
-    }
-  else
-    {
-      if ((glib_major_version > major) ||
-        ((glib_major_version == major) && (glib_minor_version > minor)) ||
-        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
-      {
-        return 0;
-       }
-     else
-      {
-        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
-               glib_major_version, glib_minor_version, glib_micro_version);
-        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
-	       major, minor, micro);
-        printf("*** GLIB 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 glib-config shell script is\n");
-        printf("*** being found. The easiest way to fix this is to remove the old version\n");
-        printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
-        printf("*** correct copy of glib-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_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-     fi
-  fi
-  if test "x$no_glib" = x ; then
-     AC_MSG_RESULT(yes)
-     ifelse([$2], , :, [$2])     
+# 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
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
   else
-     AC_MSG_RESULT(no)
-     if test "$GLIB_CONFIG" = "no" ; then
-       echo "*** The glib-config script installed by GLIB could not be found"
-       echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
-       echo "*** your path, or set the GLIB_CONFIG environment variable to the"
-       echo "*** full path to glib-config."
-     else
-       if test -f conf.glibtest ; then
-        :
-       else
-          echo "*** Could not run GLIB test program, checking why..."
-          CFLAGS="$CFLAGS $GLIB_CFLAGS"
-          LIBS="$LIBS $GLIB_LIBS"
-          AC_TRY_LINK([
-#include <glib.h>
-#include <stdio.h>
-],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
-        [ echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
-          echo "*** version of GLIB. If it is not finding GLIB, 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 GLIB was incorrectly installed"
-          echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
-          echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-       fi
-     fi
-     GLIB_CFLAGS=""
-     GLIB_LIBS=""
-     ifelse([$3], , :, [$3])
+    CYGPATH_W=echo
   fi
-  AC_SUBST(GLIB_CFLAGS)
-  AC_SUBST(GLIB_LIBS)
-  rm -f conf.glibtest
-])
-
-# Configure paths for GTK+
-# Owen Taylor     97-11-3
+fi
+AC_SUBST([CYGPATH_W])
 
-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)
+# 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
 
-  for module in . $4
-  do
-      case "$module" in
-         gthread) 
-             gtk_config_args="$gtk_config_args gthread"
-         ;;
-      esac
-  done
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
 
-  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
+# 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
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 
-  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
-  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>
+_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
+])
+])
 
-int 
-main ()
-{
-  int major, minor, micro;
-  char *tmp_version;
 
-  system ("touch conf.gtktest");
+# 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.  The stamp files are numbered to have different names.
 
-  /* 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);
-   }
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $1 | $1:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
 
-  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;
-}
-],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-     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=""
-     ifelse([$3], , :, [$3])
-  fi
-  AC_SUBST(GTK_CFLAGS)
-  AC_SUBST(GTK_LIBS)
-  rm -f conf.gtktest
-])
+# Copyright 2002  Free Software Foundation, Inc.
 
-# Copyright (C) 2002, 2003, 2005  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 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.9"])
+AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"])
 
 # 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.9.5])])
+	 [AM_AUTOMAKE_VERSION([1.7.9])])
 
-# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+# Helper functions for option handling.                    -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005  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.
+# Copyright 2001, 2002  Free Software Foundation, Inc.
 
-# 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.
+# 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.
 
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
+# 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
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2005
-# 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.
+# _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.
+#
+
+# 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 > 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 conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   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".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
 
-# serial 4
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+#  -*- 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.
 
-# This was merged into AC_PROG_CC in Autoconf.
+# 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)])
 
-AU_DEFUN([AM_PROG_CC_STDC],
-[AC_PROG_CC
-AC_DIAGNOSE([obsolete], [$0:
-	your code should no longer depend upon `am_cv_prog_cc_stdc', but upon
-	`ac_cv_prog_cc_stdc'.  Remove this warning and the assignment when
-	you adjust the code.  You can also remove the above call to
-	AC_PROG_CC if you already called it elsewhere.])
-am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
+
+# 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
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
+fi
 ])
-AU_DEFUN([fp_PROG_CC_STDC])
 
-# AM_CONDITIONAL                                            -*- Autoconf -*-
+# AM_AUX_DIR_EXPAND
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
+# 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/../..'.
 #
-# 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.
+# 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.
 
-# serial 7
+# Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])
 
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- 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='#'
+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])])
+
+#                                                          -*- Autoconf -*-
+# Copyright (C) 2003  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
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
 else
-  $1_TRUE='#'
-  $1_FALSE=
+  am__leading_dot=_
 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])])
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
 
+# serial 5						-*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# 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.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003  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,
@@ -548,6 +509,7 @@ fi])])
 # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
 
 
+
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
@@ -606,9 +568,7 @@ AC_CACHE_CHECK([dependency style of $dep
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      : > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
@@ -636,14 +596,9 @@ AC_CACHE_CHECK([dependency style of $dep
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+      # (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored.
+      if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
         am_cv_$1_dependencies_compiler_type=$depmode
         break
       fi
@@ -677,8 +632,8 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}d
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
 [AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[  --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='\'
@@ -687,16 +642,26 @@ AM_CONDITIONAL([AMDEP], [test "x$enable_
 AC_SUBST([AMDEPBACKSLASH])
 ])
 
-# Generate code to set up dependency tracking.              -*- Autoconf -*-
+# Generate code to set up dependency tracking.   -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# 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.
+# 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 3
+#serial 2
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
@@ -715,21 +680,27 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS
   else
     continue
   fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  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
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
   # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  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 "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+  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
@@ -755,176 +726,26 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS]
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# 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.
-
-# serial 8
-
-# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+# Check to see how 'make' treats includes.	-*- Autoconf -*-
 
-# Do all the work for Automake.                             -*- Autoconf -*-
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# 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 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.
 
-# serial 12
+# 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.
 
-# 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.
-
-# 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_PREREQ([2.58])dnl
-dnl Autoconf wants to disallow AM_ names.  We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-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
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# 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_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# 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
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-	      		     [_AM_PROG_TAR([v7])])])
-_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
-])
-])
-
-
-# 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.  The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $1 | $1:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001, 2003, 2005  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.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-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)])
-
-# Copyright (C) 2003, 2005  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.
-
-# serial 2
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot.  For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Check to see how 'make' treats includes.	            -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005  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.
-
-# serial 3
+# serial 2
 
 # AM_MAKE_INCLUDE()
 # -----------------
@@ -968,310 +789,2495 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+# AM_CONDITIONAL                                              -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
-# 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.
+# Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
 
-# serial 4
+# 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.
 
-# 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)])
+# 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
 
-# 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 "
+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
-  am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  $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])])
 
-# Copyright (C) 2003, 2004, 2005  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.
+# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*-
 
-# AM_PROG_MKDIR_P
-# ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake.  There are at least two reasons why we must not
-# use `-m 0755':
-#   - it causes special bits like SGID to be ignored,
-#   - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out.  Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
-AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # We used to keeping the `.' as first argument, in order to
-  # allow $(mkdir_p) to be used without argument.  As in
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.  However this is wrong
-  # for two reasons:
-  #  1. if the package is installed by a user who cannot write `.'
-  #     make install will fail,
-  #  2. the above comment should most certainly read
-  #     $(mkdir_p) $(DESTDIR)$(somedir)
-  #     so it does not work when $(somedir) is undefined and
-  #     $(DESTDIR) is not.
-  #  To support the latter case, we have to write
-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
-  #  so the `.' trick is pointless.
-  mkdir_p='mkdir -p --'
+# 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
+
+# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+
+
+# Copyright 1996, 1997, 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
+
+# @defmac AC_PROG_CC_STDC
+# @maindex PROG_CC_STDC
+# @ovindex CC
+# If the C compiler in not in ANSI C mode by default, try to add an option
+# to output variable @code{CC} to make it so.  This macro tries various
+# options that select ANSI C on some system or another.  It considers the
+# compiler to be in ANSI C mode if it handles function prototypes correctly.
+#
+# If you use this macro, you should check after calling it whether the C
+# compiler has been set to accept ANSI C; if not, the shell variable
+# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
+# code in ANSI C, you can make an un-ANSIfied copy of it by using the
+# program @code{ansi2knr}, which comes with Ghostscript.
+# @end defmac
+
+AC_DEFUN([AM_PROG_CC_STDC],
+[AC_REQUIRE([AC_PROG_CC])
+AC_BEFORE([$0], [AC_C_INLINE])
+AC_BEFORE([$0], [AC_C_CONST])
+dnl Force this before AC_PROG_CPP.  Some cpp's, eg on HPUX, require
+dnl a magic option to avoid problems with ANSI preprocessor commands
+dnl like #elif.
+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_CACHE_VAL(am_cv_prog_cc_stdc,
+[am_cv_prog_cc_stdc=no
+ac_save_CC="$CC"
+# 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"
+  AC_TRY_COMPILE(
+[#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;
+], [
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+],
+[am_cv_prog_cc_stdc="$ac_arg"; break])
+done
+CC="$ac_save_CC"
+])
+if test -z "$am_cv_prog_cc_stdc"; then
+  AC_MSG_RESULT([none needed])
 else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
-  done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
-  else
-    mkdir_p='$(install_sh) -d'
-  fi
+  AC_MSG_RESULT([$am_cv_prog_cc_stdc])
 fi
-AC_SUBST([mkdir_p])])
+case "x$am_cv_prog_cc_stdc" in
+  x|xno) ;;
+  *) CC="$CC $am_cv_prog_cc_stdc" ;;
+esac
+])
 
-# Helper functions for option handling.                     -*- Autoconf -*-
+AU_DEFUN([fp_PROG_CC_STDC], [AM_PROG_CC_STDC])
 
-# Copyright (C) 2001, 2002, 2003, 2005  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.
+# gettext.m4 serial 16 (gettext-0.11.4)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2002.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl    default (if it is not specified or empty) is 'no-libtool'.
+dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl    depending on --{enable,disable}-{shared,static} and on the presence of
+dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl    $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl    implementations (in libc or libintl) without the ngettext() function
+dnl    will be ignored.  If NEEDSYMBOL is specified and is
+dnl    'need-formatstring-macros', then GNU gettext implementations that don't
+dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries.  If empty,
+dnl    the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl    and used.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl    Catalog format: none
+dnl    Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+  dnl Argument checking.
+  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+  define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
+  define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+
+  AC_REQUIRE([AM_PO_SUBDIRS])dnl
+  ifelse(gt_included_intl, yes, [
+    AC_REQUIRE([AM_INTL_SUBDIR])dnl
+  ])
+
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+
+  dnl Sometimes libintl requires libiconv, so first search for libiconv.
+  dnl Ideally we would do this search only after the
+  dnl      if test "$USE_NLS" = "yes"; then
+  dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+  dnl the configure script would need to contain the same shell code
+  dnl again, outside any 'if'. There are two solutions:
+  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+  dnl documented, we avoid it.
+  ifelse(gt_included_intl, yes, , [
+    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+  ])
+
+  AC_MSG_CHECKING([whether NLS is requested])
+  dnl Default is enabled NLS
+  AC_ARG_ENABLE(nls,
+    [  --disable-nls           do not use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=yes)
+  AC_MSG_RESULT($USE_NLS)
+  AC_SUBST(USE_NLS)
+
+  ifelse(gt_included_intl, yes, [
+    BUILD_INCLUDED_LIBINTL=no
+    USE_INCLUDED_LIBINTL=no
+  ])
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
+
+  dnl If we use NLS figure out what method
+  if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
+    ifelse(gt_included_intl, yes, [
+      AC_MSG_CHECKING([whether included gettext is requested])
+      AC_ARG_WITH(included-gettext,
+        [  --with-included-gettext use the GNU gettext library included here],
+        nls_cv_force_use_gnu_gettext=$withval,
+        nls_cv_force_use_gnu_gettext=no)
+      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+    ])
+        dnl User does not insist on using GNU NLS library.  Figure out what
+        dnl to use.  If GNU gettext is available we use this.  Else we have
+        dnl to fall back to GNU NLS library.
+
+        dnl Add a version number to the cache macros.
+        define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
+        define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
+        define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
+
+        AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+         [AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+            [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
+            gt_cv_func_gnugettext_libc=yes,
+            gt_cv_func_gnugettext_libc=no)])
+
+        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+          dnl Sometimes libintl requires libiconv, so first search for libiconv.
+          ifelse(gt_included_intl, yes, , [
+            AM_ICONV_LINK
+          ])
+          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+          dnl even if libiconv doesn't exist.
+          AC_LIB_LINKFLAGS_BODY([intl])
+          AC_CACHE_CHECK([for GNU gettext in libintl],
+            gt_cv_func_gnugettext_libintl,
+           [gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+            dnl Now see whether libintl exists and does not depend on libiconv.
+            AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+              [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+              gt_cv_func_gnugettext_libintl=yes,
+              gt_cv_func_gnugettext_libintl=no)
+            dnl Now see whether libintl exists and depends on libiconv.
+            if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+                [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+               [LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                gt_cv_func_gnugettext_libintl=yes
+               ])
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"])
+        fi
+
+        dnl If an already present or preinstalled GNU gettext() is found,
+        dnl use it.  But if this macro is used in GNU gettext, and GNU
+        dnl gettext is already preinstalled in libintl, we update this
+        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
+        if test "$gt_cv_func_gnugettext_libc" = "yes" \
+           || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+                && test "$PACKAGE" != gettext; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+          dnl Reset the values set by searching for libintl.
+          LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
+
+    ifelse(gt_included_intl, yes, [
+        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+          dnl GNU gettext is not found in the C library.
+          dnl Fall back on included GNU gettext library.
+          nls_cv_use_gnu_gettext=yes
+        fi
+      fi
 
-# serial 3
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions used to generate GNU NLS library.
+        INTLOBJS="\$(GETTOBJS)"
+        BUILD_INCLUDED_LIBINTL=yes
+        USE_INCLUDED_LIBINTL=yes
+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+      fi
 
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions to use GNU gettext tools.
+        CATOBJEXT=.gmo
+      fi
+    ])
 
-# _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)])
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
+      AC_DEFINE(ENABLE_NLS, 1,
+        [Define to 1 if translation of program messages to the user's native language
+   is requested.])
+    else
+      USE_NLS=no
+    fi
+  fi
 
-# _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)])])
+  if test "$USE_NLS" = "yes"; then
 
-# _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])])
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+        AC_MSG_CHECKING([how to link with libintl])
+        AC_MSG_RESULT([$LIBINTL])
+        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+      fi
 
-# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+      dnl For backward compatibility. Some packages may be using this.
+      AC_DEFINE(HAVE_GETTEXT, 1,
+       [Define if the GNU gettext() function is already present or preinstalled.])
+      AC_DEFINE(HAVE_DCGETTEXT, 1,
+       [Define if the GNU dcgettext() function is already present or preinstalled.])
+    fi
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# 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.
+    dnl We need to process the po/ directory.
+    POSUB=po
+  fi
 
-# serial 4
+  ifelse(gt_included_intl, yes, [
+    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+    dnl to 'yes' because some of the testsuite requires it.
+    if test "$PACKAGE" = gettext; then
+      BUILD_INCLUDED_LIBINTL=yes
+    fi
 
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-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 conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+    dnl Make all variables we use known to autoconf.
+    AC_SUBST(BUILD_INCLUDED_LIBINTL)
+    AC_SUBST(USE_INCLUDED_LIBINTL)
+    AC_SUBST(CATOBJEXT)
+    AC_SUBST(INTLOBJS)
+
+    dnl For backward compatibility. Some configure.ins may be using this.
+    nls_cv_header_intl=
+    nls_cv_header_libgt=
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    DATADIRNAME=share
+    AC_SUBST(DATADIRNAME)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    INSTOBJEXT=.mo
+    AC_SUBST(INSTOBJEXT)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    GENCAT=gencat
+    AC_SUBST(GENCAT)
+
+    dnl Enable libtool support if the surrounding package wishes it.
+    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+  ])
+
+  dnl For backward compatibility. Some Makefiles may be using this.
+  INTLLIBS="$LIBINTL"
+  AC_SUBST(INTLLIBS)
+
+  dnl Make all documented variables known to autoconf.
+  AC_SUBST(LIBINTL)
+  AC_SUBST(LTLIBINTL)
+  AC_SUBST(POSUB)
+])
 
-      # 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".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
 
-   test "$[2]" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
+dnl Checks for all prerequisites of the po subdirectory,
+dnl except for USE_NLS.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+
+  dnl Perform the following tests also if --disable-nls has been given,
+  dnl because they are needed for "make dist" to work.
+
+  dnl Search for GNU msgfmt in the PATH.
+  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+  dnl The second test excludes FreeBSD msgfmt.
+  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+    [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+  dnl Search for GNU xgettext 0.11 or newer in the PATH.
+  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+  dnl The second test excludes FreeBSD xgettext.
+  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+    [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  dnl Remove leftover from FreeBSD xgettext call.
+  rm -f messages.po
+
+  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+    [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
+
+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+  dnl Test whether we really found GNU msgfmt.
+  if test "$GMSGFMT" != ":"; then
+    dnl If it is no GNU msgfmt we define it as : so that the
+    dnl Makefiles still can work.
+    if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+      AC_MSG_RESULT(
+        [found $GMSGFMT program is not GNU msgfmt; ignore it])
+      GMSGFMT=":"
+    fi
+  fi
 
-# Copyright (C) 2001, 2003, 2005  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.
+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+  dnl Test whether we really found GNU xgettext.
+  if test "$XGETTEXT" != ":"; then
+    dnl If it is no GNU xgettext we define it as : so that the
+    dnl Makefiles still can work.
+    if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
+       (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      AC_MSG_RESULT(
+        [found xgettext program is not GNU xgettext; ignore it])
+      XGETTEXT=":"
+    fi
+    dnl Remove leftover from FreeBSD xgettext call.
+    rm -f messages.po
+  fi
 
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# 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])])
+  AC_OUTPUT_COMMANDS([
+    for ac_file in $CONFIG_FILES; do
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+      # PO directories have a Makefile.in generated from Makefile.in.in.
+      case "$ac_file" in */Makefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+        esac
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
+          # on $ac_dir but don't depend on user-specified configuration
+          # parameters.
+          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+            # The LINGUAS file contains the set of available languages.
+            if test -n "$ALL_LINGUAS"; then
+              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+            fi
+            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            # Hide the ALL_LINGUAS assigment from automake.
+            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+          fi
+          case "$ac_given_srcdir" in
+            .) srcdirpre= ;;
+            *) srcdirpre='$(srcdir)/' ;;
+          esac
+          POFILES=
+          GMOFILES=
+          UPDATEPOFILES=
+          DUMMYPOFILES=
+          for lang in $ALL_LINGUAS; do
+            POFILES="$POFILES $srcdirpre$lang.po"
+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+          done
+          # CATALOGS depends on both $ac_dir and the user's LINGUAS
+          # environment variable.
+          INST_LINGUAS=
+          if test -n "$ALL_LINGUAS"; then
+            for presentlang in $ALL_LINGUAS; do
+              useit=no
+              if test "%UNSET%" != "$LINGUAS"; then
+                desiredlanguages="$LINGUAS"
+              else
+                desiredlanguages="$ALL_LINGUAS"
+              fi
+              for desiredlang in $desiredlanguages; do
+                # Use the presentlang catalog if desiredlang is
+                #   a. equal to presentlang, or
+                #   b. a variant of presentlang (because in this case,
+                #      presentlang can be used as a fallback for messages
+                #      which are not translated in the desiredlang catalog).
+                case "$desiredlang" in
+                  "$presentlang"*) useit=yes;;
+                esac
+              done
+              if test $useit = yes; then
+                INST_LINGUAS="$INST_LINGUAS $presentlang"
+              fi
+            done
+          fi
+          CATALOGS=
+          if test -n "$INST_LINGUAS"; then
+            for lang in $INST_LINGUAS; do
+              CATALOGS="$CATALOGS $lang.gmo"
+            done
+          fi
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+            if test -f "$f"; then
+              case "$f" in
+                *.orig | *.bak | *~) ;;
+                *) cat "$f" >> "$ac_dir/Makefile" ;;
+              esac
+            fi
+          done
+        fi
+        ;;
+      esac
+    done],
+   [# Capture the value of obsolete $ALL_LINGUAS because we need it to compute
+    # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
+    # from automake.
+    eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
+    # Capture the value of LINGUAS because we need it to compute CATALOGS.
+    LINGUAS="${LINGUAS-%UNSET%}"
+   ])
+])
 
-# Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  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.
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+  AC_REQUIRE([AC_PROG_CC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl
+  AC_REQUIRE([AC_PROG_RANLIB])dnl
+  AC_REQUIRE([AC_ISC_POSIX])dnl
+  AC_REQUIRE([AC_HEADER_STDC])dnl
+  AC_REQUIRE([AC_C_CONST])dnl
+  AC_REQUIRE([AC_C_INLINE])dnl
+  AC_REQUIRE([AC_TYPE_OFF_T])dnl
+  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+  AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+  AC_REQUIRE([AC_FUNC_MMAP])dnl
+  AC_REQUIRE([jm_GLIBC21])dnl
+  AC_REQUIRE([gt_INTDIV0])dnl
+  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
+  AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
+  AC_REQUIRE([gt_INTTYPES_PRI])dnl
+
+  AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+  AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
+geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
+strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
+
+  AM_ICONV
+  AM_LANGINFO_CODESET
+  if test $ac_cv_header_locale_h = yes; then
+    AM_LC_MESSAGES
+  fi
 
-# serial 2
+  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+  dnl because plural.y uses bison specific features. It requires at least
+  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+  dnl compile.
+  dnl bison is only needed for the maintainer (who touches plural.y). But in
+  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+  dnl the rule in general Makefile. Now, some people carelessly touch the
+  dnl files or have a broken "make" program, hence the plural.c rule will
+  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+  dnl present or too old.
+  AC_CHECK_PROGS([INTLBISON], [bison])
+  if test -z "$INTLBISON"; then
+    ac_verc_fail=yes
+  else
+    dnl Found it, now check the version.
+    AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+    case $ac_prog_version in
+      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+    esac
+    AC_MSG_RESULT([$ac_prog_version])
+  fi
+  if test $ac_verc_fail = yes; then
+    INTLBISON=:
+  fi
+])
 
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-#     tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-#     $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
+
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+  dnl Try to locate is.
+  MKINSTALLDIRS=
+  if test -n "$ac_aux_dir"; then
+    case "$ac_aux_dir" in
+      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+    esac
+  fi
+  if test -z "$MKINSTALLDIRS"; then
+    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+  fi
+  AC_SUBST(MKINSTALLDIRS)
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+
+# lib-prefix.m4 serial 1 (gettext-0.11)
+dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_ARG_WITH([lib-prefix],
+[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+  --without-lib-prefix    don't search for libraries in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  if test $use_additional = yes; then
+    dnl Potentially add $additional_includedir to $CPPFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/include,
+    dnl   2. if it's already present in $CPPFLAGS,
+    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_includedir" != "X/usr/include"; then
+      haveit=
+      for x in $CPPFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-I$additional_includedir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_includedir" = "X/usr/local/include"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_includedir"; then
+            dnl Really add $additional_includedir to $CPPFLAGS.
+            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+          fi
+        fi
+      fi
+    fi
+    dnl Potentially add $additional_libdir to $LDFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/lib,
+    dnl   2. if it's already present in $LDFLAGS,
+    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_libdir" != "X/usr/lib"; then
+      haveit=
+      for x in $LDFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-L$additional_libdir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_libdir" = "X/usr/local/lib"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_libdir"; then
+            dnl Really add $additional_libdir to $LDFLAGS.
+            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+          fi
+        fi
+      fi
+    fi
+  fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+  dnl Unfortunately, prefix and exec_prefix get only finally determined
+  dnl at the end of configure.
+  if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  $1
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+])
+
+# lib-link.m4 serial 3 (gettext-0.11.3)
+dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+    AC_LIB_LINKFLAGS_BODY([$1], [$2])
+    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+  ])
+  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+  dnl results of this search when this library appears as a dependency.
+  HAVE_LIB[]NAME=yes
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed lib[]Name and not disabled its use
+  dnl via --without-lib[]Name-prefix, he wants to use it.
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+    ac_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIB[]NAME"
+    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+    LIBS="$ac_save_LIBS"
+  ])
+  if test "$ac_cv_lib[]Name" = yes; then
+    HAVE_LIB[]NAME=yes
+    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+    AC_MSG_CHECKING([how to link with lib[]$1])
+    AC_MSG_RESULT([$LIB[]NAME])
+  else
+    HAVE_LIB[]NAME=no
+    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+    dnl $INC[]NAME either.
+    CPPFLAGS="$ac_save_CPPFLAGS"
+    LIB[]NAME=
+    LTLIB[]NAME=
+  fi
+  AC_SUBST([HAVE_LIB]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L,
+dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec.
+AC_DEFUN([AC_LIB_RPATH],
+[
+  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
+  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
+  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
+  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+  ])
+  wl="$acl_cv_wl"
+  libext="$acl_cv_libext"
+  shlibext="$acl_cv_shlibext"
+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  hardcode_direct="$acl_cv_hardcode_direct"
+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
+  sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
+  dnl Determine whether the user wants rpath handling at all.
+  AC_ARG_ENABLE(rpath,
+    [  --disable-rpath         do not hardcode runtime library paths],
+    :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_ARG_WITH([lib$1-prefix],
+[  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
+  --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  dnl Search the library and its dependencies in $additional_libdir and
+  dnl $LDFLAGS. Using breadth-first-seach.
+  LIB[]NAME=
+  LTLIB[]NAME=
+  INC[]NAME=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='$1 $2'
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+        dnl or AC_LIB_HAVE_LINKFLAGS call.
+        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+          else
+            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+            dnl that this library doesn't exist. So just drop it.
+            :
+          fi
+        else
+          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+          dnl and the already constructed $LIBNAME/$LTLIBNAME.
+          found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIB[]NAME; do
+              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+            dnl Found the library.
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+              dnl Linking with a shared library. We attempt to hardcode its
+              dnl directory into the executable's runpath, unless it's the
+              dnl standard /usr/lib.
+              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                dnl No hardcoding is needed.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+              else
+                dnl Use an explicit option to hardcode DIR into the resulting
+                dnl binary.
+                dnl Potentially add DIR to ltrpathdirs.
+                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                dnl The hardcoding into $LIBNAME is system dependent.
+                if test "$hardcode_direct" = yes; then
+                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+                  dnl resulting binary.
+                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                    dnl Use an explicit option to hardcode DIR into the resulting
+                    dnl binary.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    dnl Potentially add DIR to rpathdirs.
+                    dnl The rpathdirs will be appended to $LIBNAME at the end.
+                    haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                    dnl Rely on "-L$found_dir".
+                    dnl But don't add it if it's already contained in the LDFLAGS
+                    dnl or the already constructed $LIBNAME
+                    haveit=
+                    for x in $LDFLAGS $LIB[]NAME; do
+                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    else
+                      dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+                      dnl here, because this doesn't fit in flags passed to the
+                      dnl compiler. So give up. No hardcoding. This affects only
+                      dnl very old systems.
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                dnl Linking with a static library.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+              else
+                dnl We shouldn't come here, but anyway it's good to have a
+                dnl fallback.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+              fi
+            fi
+            dnl Assume the include files are nearby.
+            additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+              dnl Potentially add $additional_includedir to $INCNAME.
+              dnl But don't add it
+              dnl   1. if it's the standard /usr/include,
+              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
+              dnl   3. if it's already present in $CPPFLAGS or the already
+              dnl      constructed $INCNAME,
+              dnl   4. if it doesn't exist as a directory.
+              if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux*) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INC[]NAME; do
+                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                      dnl Really add $additional_includedir to $INCNAME.
+                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+            dnl Look for dependencies.
+            if test -n "$found_la"; then
+              dnl Read the .la file. It defines the variables
+              dnl dlname, library_names, old_library, dependency_libs, current,
+              dnl age, revision, installed, dlopen, dlpreopen, libdir.
+              save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+              dnl We use only dependency_libs.
+              for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+                    dnl But don't add it
+                    dnl   1. if it's the standard /usr/lib,
+                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
+                    dnl   3. if it's already present in $LDFLAGS or the already
+                    dnl      constructed $LIBNAME,
+                    dnl   4. if it doesn't exist as a directory.
+                    if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux*) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LIBNAME.
+                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LTLIBNAME.
+                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                      dnl Potentially add DIR to rpathdirs.
+                      dnl The rpathdirs will be appended to $LIBNAME at the end.
+                      haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                      dnl Potentially add DIR to ltrpathdirs.
+                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                      haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                    dnl Handle this in the next round.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                    dnl Handle this in the next round. Throw away the .la's
+                    dnl directory; it is already contained in a preceding -L
+                    dnl option.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                    dnl Most likely an immediate library name.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+            dnl Didn't find the library; assume it is in the system directories
+            dnl known to the linker and runtime loader. (All the system
+            dnl directories known to the linker should also be known to the
+            dnl runtime loader, otherwise the system is severely misconfigured.)
+            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+          fi
+        fi
+      fi
     done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+      dnl Weird platform: only the last -rpath option counts, the user must
+      dnl pass all path elements in one option. We can arrange that for a
+      dnl single library, but not when more than one $LIBNAMEs are used.
+      alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+      dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+      acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+    else
+      dnl The -rpath options are cumulative.
+      for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+    dnl When using libtool, the option that works for both libraries and
+    dnl executables is -R. The -R options are cumulative.
+    for found_dir in $ltrpathdirs; do
+      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+    done
+  fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+  for element in [$2]; do
+    haveit=
+    for x in $[$1]; do
+      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      [$1]="${[$1]}${[$1]:+ }$element"
+    fi
+  done
+])
+
+# lib-ld.m4 serial 1 (gettext-0.11)
+dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+  acl_cv_prog_gnu_ld=yes
+else
+  acl_cv_prog_gnu_ld=no
+fi])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by GCC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]* | [A-Za-z]:[\\/]*)]
+      [re_direlt='/[^/][^/]*/\.\./']
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
     ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
     ;;
   esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+	test "$with_gnu_ld" != no && break
+      else
+	test "$with_gnu_ld" != yes && break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+# iconv.m4 serial AM4 (gettext-0.11.3)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([iconv])
+])
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+AC_DEFUN([AM_ICONV_LINK],
+[
+  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+  dnl those with the standalone portable GNU libiconv installed).
+
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+  dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed libiconv and not disabled its use
+  dnl via --without-libiconv-prefix, he wants to use it. The first
+  dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+  am_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+      [iconv_t cd = iconv_open("","");
+       iconv(cd,NULL,NULL,NULL,NULL);
+       iconv_close(cd);],
+      am_cv_func_iconv=yes)
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+        [iconv_t cd = iconv_open("","");
+         iconv(cd,NULL,NULL,NULL,NULL);
+         iconv_close(cd);],
+        am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes)
+      LIBS="$am_save_LIBS"
+    fi
+  ])
+  if test "$am_cv_func_iconv" = yes; then
+    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
   fi
-done
-rm -rf conftest.dir
+  if test "$am_cv_lib_iconv" = yes; then
+    AC_MSG_CHECKING([how to link with libiconv])
+    AC_MSG_RESULT([$LIBICONV])
+  else
+    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+    dnl either.
+    CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
+  AC_SUBST(LIBICONV)
+  AC_SUBST(LTLIBICONV)
+])
+
+AC_DEFUN([AM_ICONV],
+[
+  AM_ICONV_LINK
+  if test "$am_cv_func_iconv" = yes; then
+    AC_MSG_CHECKING([for iconv declaration])
+    AC_CACHE_VAL(am_cv_proto_iconv, [
+      AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+    AC_MSG_RESULT([$]{ac_t:-
+         }[$]am_cv_proto_iconv)
+    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+      [Define as const if the declaration of iconv() needs const.])
+  fi
+])
+
+# progtest.m4 serial 2 (gettext-0.10.40)
+dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  /*)
+  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+	ac_cv_path_$1="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+  ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+# isc-posix.m4 serial 2 (gettext-0.11.2)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
+
+# This test replaces the one in autoconf.
+# Currently this macro should have the same name as the autoconf macro
+# because gettext's gettext.m4 (distributed in the automake package)
+# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
+# give these diagnostics:
+#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
+#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
+
+undefine([AC_ISC_POSIX])
+
+AC_DEFUN([AC_ISC_POSIX],
+  [
+    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
+    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
+  ]
+)
+
+# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([jm_GLIBC21],
+  [
+    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+      ac_cv_gnu_library_2_1,
+      [AC_EGREP_CPP([Lucky GNU user],
+	[
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+	],
+	ac_cv_gnu_library_2_1=yes,
+	ac_cv_gnu_library_2_1=no)
+      ]
+    )
+    AC_SUBST(GLIBC21)
+    GLIBC21="$ac_cv_gnu_library_2_1"
+  ]
+)
+
+# intdiv0.m4 serial 1 (gettext-0.11.3)
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gt_INTDIV0],
+[
+  AC_REQUIRE([AC_PROG_CC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+  AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
+    gt_cv_int_divbyzero_sigfpe,
+    [
+      AC_TRY_RUN([
+#include <stdlib.h>
+#include <signal.h>
+
+static void
+#ifdef __cplusplus
+sigfpe_handler (int sig)
+#else
+sigfpe_handler (sig) int sig;
+#endif
+{
+  /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
+  exit (sig != SIGFPE);
+}
+
+int x = 1;
+int y = 0;
+int z;
+int nan;
+
+int main ()
+{
+  signal (SIGFPE, sigfpe_handler);
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
+  signal (SIGTRAP, sigfpe_handler);
+#endif
+/* Linux/SPARC yields signal SIGILL.  */
+#if defined (__sparc__) && defined (__linux__)
+  signal (SIGILL, sigfpe_handler);
+#endif
+
+  z = x / y;
+  nan = y / y;
+  exit (1);
+}
+], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
+        [
+          # Guess based on the CPU.
+          case "$host_cpu" in
+            alpha* | i[34567]86 | m68k | s390*)
+              gt_cv_int_divbyzero_sigfpe="guessing yes";;
+            *)
+              gt_cv_int_divbyzero_sigfpe="guessing no";;
+          esac
+        ])
+    ])
+  case "$gt_cv_int_divbyzero_sigfpe" in
+    *yes) value=1;;
+    *) value=0;;
+  esac
+  AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
+    [Define if integer division by zero raises signal SIGFPE.])
+])
+
+# uintmax_t.m4 serial 6 (gettext-0.11)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+AC_PREREQ(2.13)
+
+# Define uintmax_t to `unsigned long' or `unsigned long long'
+# if <inttypes.h> does not exist.
+
+AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
+[
+  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
+  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
+  if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
+    AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
+    test $ac_cv_type_unsigned_long_long = yes \
+      && ac_type='unsigned long long' \
+      || ac_type='unsigned long'
+    AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
+  [Define to unsigned long or unsigned long long
+   if <inttypes.h> and <stdint.h> don't define.])
+  fi
+])
+
+# inttypes_h.m4 serial 4 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
+[
+  AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
+  [AC_TRY_COMPILE(
+    [#include <sys/types.h>
+#include <inttypes.h>],
+    [uintmax_t i = (uintmax_t) -1;],
+    jm_ac_cv_header_inttypes_h=yes,
+    jm_ac_cv_header_inttypes_h=no)])
+  if test $jm_ac_cv_header_inttypes_h = yes; then
+    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
+[Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
+   and declares uintmax_t. ])
+  fi
+])
+
+# stdint_h.m4 serial 2 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([jm_AC_HEADER_STDINT_H],
+[
+  AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
+  [AC_TRY_COMPILE(
+    [#include <sys/types.h>
+#include <stdint.h>],
+    [uintmax_t i = (uintmax_t) -1;],
+    jm_ac_cv_header_stdint_h=yes,
+    jm_ac_cv_header_stdint_h=no)])
+  if test $jm_ac_cv_header_stdint_h = yes; then
+    AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
+[Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
+   and declares uintmax_t. ])
+  fi
+])
+
+# ulonglong.m4 serial 3
+dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
+
+AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
+[
+  AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
+  [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],
+    [unsigned long long ullmax = (unsigned long long) -1;
+     return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
+    ac_cv_type_unsigned_long_long=yes,
+    ac_cv_type_unsigned_long_long=no)])
+  if test $ac_cv_type_unsigned_long_long = yes; then
+    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
+      [Define if you have the 'unsigned long long' type.])
+  fi
+])
+
+# inttypes.m4 serial 1 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
+# <sys/types.h>.
+
+AC_DEFUN([gt_HEADER_INTTYPES_H],
+[
+  AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
+  [
+    AC_TRY_COMPILE(
+      [#include <sys/types.h>
+#include <inttypes.h>],
+      [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
+  ])
+  if test $gt_cv_header_inttypes_h = yes; then
+    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
+      [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
+  fi
+])
+
+# inttypes-pri.m4 serial 1 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
+# macros to non-string values.  This is the case on AIX 4.3.3.
+
+AC_DEFUN([gt_INTTYPES_PRI],
+[
+  AC_REQUIRE([gt_HEADER_INTTYPES_H])
+  if test $gt_cv_header_inttypes_h = yes; then
+    AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+      gt_cv_inttypes_pri_broken,
+      [
+        AC_TRY_COMPILE([#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
+      ])
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
+    AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
+      [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+  fi
+])
+
+# codeset.m4 serial AM1 (gettext-0.10.40)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+    [AC_TRY_LINK([#include <langinfo.h>],
+      [char* cs = nl_langinfo(CODESET);],
+      am_cv_langinfo_codeset=yes,
+      am_cv_langinfo_codeset=no)
+    ])
+  if test $am_cv_langinfo_codeset = yes; then
+    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+  fi
+])
+
+# lcmessage.m4 serial 3 (gettext-0.11.3)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+
+AC_DEFUN([AM_LC_MESSAGES],
+[
+  AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+    [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+  if test $am_cv_val_LC_MESSAGES = yes; then
+    AC_DEFINE(HAVE_LC_MESSAGES, 1,
+      [Define if your <locale.h> file defines LC_MESSAGES.])
+  fi
+])
+
+# Configure paths for GLIB
+# Owen Taylor     97-11-3
+
+dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or 
+dnl gthread is specified in MODULES, pass to glib-config
+dnl
+AC_DEFUN([AM_PATH_GLIB],
+[dnl 
+dnl Get the cflags and libraries from the glib-config script
+dnl
+AC_ARG_WITH(glib-prefix,[  --with-glib-prefix=PFX   Prefix where GLIB is installed (optional)],
+            glib_config_prefix="$withval", glib_config_prefix="")
+AC_ARG_WITH(glib-exec-prefix,[  --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
+            glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
+AC_ARG_ENABLE(glibtest, [  --disable-glibtest       Do not try to compile and run a test GLIB program],
+		    , enable_glibtest=yes)
+
+  if test x$glib_config_exec_prefix != x ; then
+     glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
+     if test x${GLIB_CONFIG+set} != xset ; then
+        GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
+     fi
+  fi
+  if test x$glib_config_prefix != x ; then
+     glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
+     if test x${GLIB_CONFIG+set} != xset ; then
+        GLIB_CONFIG=$glib_config_prefix/bin/glib-config
+     fi
+  fi
+
+  for module in . $4
+  do
+      case "$module" in
+         gmodule) 
+             glib_config_args="$glib_config_args gmodule"
+         ;;
+         gthread) 
+             glib_config_args="$glib_config_args gthread"
+         ;;
+      esac
+  done
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
+  AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
+  min_glib_version=ifelse([$1], ,0.99.7,$1)
+  AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
+  no_glib=""
+  if test "$GLIB_CONFIG" = "no" ; then
+    no_glib=yes
+  else
+    GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
+    GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
+    glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_glibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GLIB_CFLAGS"
+      LIBS="$GLIB_LIBS $LIBS"
+dnl
+dnl Now check if the installed GLIB is sufficiently new. (Also sanity
+dnl checks the results of glib-config to some extent
+dnl
+      rm -f conf.glibtest
+      AC_TRY_RUN([
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.glibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_glib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_glib_version");
+     exit(1);
+   }
+
+  if ((glib_major_version != $glib_config_major_version) ||
+      (glib_minor_version != $glib_config_minor_version) ||
+      (glib_micro_version != $glib_config_micro_version))
+    {
+      printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
+             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
+             glib_major_version, glib_minor_version, glib_micro_version);
+      printf ("*** was found! If glib-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GLIB. 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 glib-config was wrong, set the environment variable GLIB_CONFIG\n");
+      printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
+      printf("*** before re-running configure\n");
+    } 
+  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
+	   (glib_minor_version != GLIB_MINOR_VERSION) ||
+           (glib_micro_version != GLIB_MICRO_VERSION))
+    {
+      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
+	     GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+	     glib_major_version, glib_minor_version, glib_micro_version);
+    }
+  else
+    {
+      if ((glib_major_version > major) ||
+        ((glib_major_version == major) && (glib_minor_version > minor)) ||
+        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
+               glib_major_version, glib_minor_version, glib_micro_version);
+        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
+	       major, minor, micro);
+        printf("*** GLIB 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 glib-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
+        printf("*** correct copy of glib-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_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_glib" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$GLIB_CONFIG" = "no" ; then
+       echo "*** The glib-config script installed by GLIB could not be found"
+       echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the GLIB_CONFIG environment variable to the"
+       echo "*** full path to glib-config."
+     else
+       if test -f conf.glibtest ; then
+        :
+       else
+          echo "*** Could not run GLIB test program, checking why..."
+          CFLAGS="$CFLAGS $GLIB_CFLAGS"
+          LIBS="$LIBS $GLIB_LIBS"
+          AC_TRY_LINK([
+#include <glib.h>
+#include <stdio.h>
+],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
+          echo "*** version of GLIB. If it is not finding GLIB, 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 GLIB was incorrectly installed"
+          echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
+          echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GLIB_CFLAGS=""
+     GLIB_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GLIB_CFLAGS)
+  AC_SUBST(GLIB_LIBS)
+  rm -f conf.glibtest
+])
+
+# 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
+
+  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
+
+  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
+  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");
+
+  /* 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;
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     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=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GTK_CFLAGS)
+  AC_SUBST(GTK_LIBS)
+  rm -f conf.gtktest
+])
 
diff -pruN dillo-0.8.6/autogen.sh dillo-0.8.6-i18n-misc-20060709/autogen.sh
--- dillo-0.8.6/autogen.sh	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/autogen.sh	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# Script to generate configure&make stuff
+#
+
+#-----------------------------------------------------
+# If defined, get these programs from the environment
+#
+: ${ACLOCAL:=aclocal}
+: ${AUTOHEADER:=autoheader}
+: ${AUTOCONF:=autoconf}
+: ${AUTOMAKE:=automake}
+
+#-------------------------
+# Required binaries check
+#          
+check_bin_file(){
+   which $1 > /dev/null 2>&1
+   if [ $? = 0 ]; then
+      return 0
+   else
+      return 1
+   fi
+}
+
+#------
+# Main
+#
+clear
+ERR="no"
+for cmd in "$ACLOCAL" "$AUTOHEADER" "$AUTOCONF" "$AUTOMAKE"
+do
+   if check_bin_file "$cmd"
+   then
+      echo -e "$cmd   \tfound"
+   else
+      echo -e "$cmd   \tNOT found"
+      ERR="yes"
+   fi
+done
+
+if test $ERR = "yes"
+then
+   echo
+   echo "ERROR: to run this program you need the following installed"
+   echo "       $ACLOCAL $AUTOHEADER $AUTOCONF $AUTOMAKE"
+   echo
+   exit 1
+fi
+
+echo "[Checks passed]"
+echo "Generating..."
+
+"$ACLOCAL"
+"$AUTOHEADER"
+"$AUTOCONF"
+"$AUTOMAKE" -a -c
+
diff -pruN dillo-0.8.6/bm-update dillo-0.8.6-i18n-misc-20060709/bm-update
--- dillo-0.8.6/bm-update	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/bm-update	2006-07-09 00:32:51.000000000 +0900
@@ -0,0 +1,54 @@
+#!/bin/sh
+SED=`which sed`
+if test "x$SED" = "x"; then
+    echo "ERROR: sed not found"
+    exit
+fi
+ICONV=`which iconv`
+if test "x$ICONV" = "x"; then
+    echo "ERROR: iconv not found"
+    exit
+fi
+
+CONVTEST=`LANG=C iconv -f UTF-8 -t UTF-8 ~/.dillo/bm.txt -o ~/.dillo/bm.txt.update 2>&1| sed -e "s/.*illegal.*/illegal/g"`
+
+rm -f ~/.dillo/bm.txt.update
+if test "x$CONVTEST" = "xillegal"; then
+    echo "bookmark needs update."
+else
+    echo "already updated.(or no bookmark)"
+    exit
+fi
+
+CHARSET=`locale | grep "LC_CTYPE.*\." | sed -e "s/^.*\.//g" -e "s/\"//g"`
+if test "x$CHARSET" = "x"; then
+    CHARSET="iso88591"
+fi
+
+case $CHARSET in
+	iso885915@euro)
+        CHARSET="iso885915"
+        ;;
+	koi8t)
+        CHARSET="koi8-t"
+        ;;
+	utf8*)
+        CHARSET="utf8"
+        ;;
+esac
+
+CONVTEST=`LANG=C iconv -f $CHARSET -t UTF-8 ~/.dillo/bm.txt -o ~/.dillo/bm.txt.update 2>&1| sed -e "s/.*illegal.*/illegal/g"`
+
+if test "x$CONVTEST" = "xillegal"; then
+    rm -f ~/.dillo/bm.txt.update
+    echo "** WARNING **: bookmark was broken!"
+    for i in `cat ~/.dillo/bm.txt|sed -e "s/ /\\\\\\\\s/g"`; do
+        echo $i|sed -e "s/\\\\s/ /g" |LANG=C iconv -f $CHARSET -t UTF-8 2>&1 >> ~/.dillo/bm.txt.update | sed -e "s/.*illegal.*/\\n/g" >> ~/.dillo/bm.txt.update;
+    done
+else
+    echo "update success!"
+fi
+
+mv -f ~/.dillo/bm.txt ~/.dillo/bm.txt.old
+mv -f ~/.dillo/bm.txt.update ~/.dillo/bm.txt
+echo "backup old bookmark as ~/.dillo/bm.txt.old"
diff -pruN dillo-0.8.6/config/Makefile.am dillo-0.8.6-i18n-misc-20060709/config/Makefile.am
--- dillo-0.8.6/config/Makefile.am	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config/Makefile.am	2006-05-16 01:21:15.000000000 +0900
@@ -0,0 +1,13 @@
+AM_CPPFLAGS=-DDILLORC_SYS='"$(sysconfdir)/dillorc"' @GTK_CFLAGS@ -DLOCALEDIR='"$(localedir)"'
+
+bin_PROGRAMS = dillocfg
+
+dillocfg_LDADD = @GTK_LIBS@
+dillocfg_SOURCES = dillocfg.c \
+				   dillocfg.h \
+				   dillocfg_option.c \
+				   dillocfg_option.h \
+				   dillocfg_token.h \
+				   dillocfg_token.c
+
+#EXTRA_DIST = dillocfg.tcl
diff -pruN dillo-0.8.6/config/Makefile.in dillo-0.8.6-i18n-misc-20060709/config/Makefile.in
--- dillo-0.8.6/config/Makefile.in	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config/Makefile.in	2006-05-16 01:21:15.000000000 +0900
@@ -0,0 +1,450 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLGUI_FALSE = @DLGUI_FALSE@
+DLGUI_TRUE = @DLGUI_TRUE@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_CONFIG = @GLIB_CONFIG@
+GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
+LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
+LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
+LIBJPEG_LIBS = @LIBJPEG_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBPTHREAD_LDFLAGS = @LIBPTHREAD_LDFLAGS@
+LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
+LIBS = @LIBS@
+LIBSSL_LIBS = @LIBSSL_LIBS@
+LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+AM_CPPFLAGS = -DDILLORC_SYS='"$(sysconfdir)/dillorc"' @GTK_CFLAGS@ -DLOCALEDIR='"$(localedir)"'
+
+bin_PROGRAMS = dillocfg
+
+dillocfg_LDADD = @GTK_LIBS@
+dillocfg_SOURCES = dillocfg.c \
+				   dillocfg.h \
+				   dillocfg_option.c \
+				   dillocfg_option.h \
+				   dillocfg_token.h \
+				   dillocfg_token.c
+
+subdir = config
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = dillocfg$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_dillocfg_OBJECTS = dillocfg.$(OBJEXT) dillocfg_option.$(OBJEXT) \
+	dillocfg_token.$(OBJEXT)
+dillocfg_OBJECTS = $(am_dillocfg_OBJECTS)
+dillocfg_DEPENDENCIES =
+dillocfg_LDFLAGS =
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/dillocfg.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dillocfg_option.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dillocfg_token.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(dillocfg_SOURCES)
+DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
+SOURCES = $(dillocfg_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  config/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 || exit 1; \
+	  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)
+dillocfg$(EXEEXT): $(dillocfg_OBJECTS) $(dillocfg_DEPENDENCIES) 
+	@rm -f dillocfg$(EXEEXT)
+	$(LINK) $(dillocfg_LDFLAGS) $(dillocfg_OBJECTS) $(dillocfg_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dillocfg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dillocfg_option.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dillocfg_token.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
+uninstall-info-am:
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+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
+
+ctags: CTAGS
+CTAGS:  $(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 "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_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 tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  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 $(PROGRAMS)
+
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
+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_sh_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 $(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-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic ctags distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am info \
+	info-am install install-am install-binPROGRAMS 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 pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-binPROGRAMS uninstall-info-am
+
+
+#EXTRA_DIST = dillocfg.tcl
+# 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 -pruN dillo-0.8.6/config/dillocfg.c dillo-0.8.6-i18n-misc-20060709/config/dillocfg.c
--- dillo-0.8.6/config/dillocfg.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config/dillocfg.c	2006-05-16 01:21:15.000000000 +0900
@@ -0,0 +1,482 @@
+/*
+ * File: dillocfg-gtk.c
+ *
+ * Copyright (C) 2003 Kiyo <kiyo@teki.jpn.ph>
+ *
+ * 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.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <locale.h>
+#include <gtk/gtk.h>
+
+#include "../config.h"
+#include "../src/intl.h"
+#include "dillocfg.h"
+#include "dillocfg_option.h"
+#include "dillocfg_token.h"
+
+static gboolean modified_ = FALSE;
+
+#define IS_LINE_END(c) (c  == '\0' || c == '#')
+#define SKIPSPACE(buf, i) while (!IS_LINE_END(buf[i]) && isspace(buf[i])) i++
+
+DillocfgWin *DillocfgWin_new();
+void DillocfgWin_init(DillocfgWin *d, gboolean use_default);
+void DillocfgWin_free(GtkWidget *widget, DillocfgWin *d);
+void DillocfgWin_callback_reset(GtkButton *button, gpointer user_data);
+void DillocfgWin_callback_reload(GtkButton *button, gpointer user_data);
+void DillocfgWin_callback_save(GtkButton *button, gpointer user_data);
+DillocfgInterface *DillocfgInterface_new(DillocfgWin *w, const gchar *label);
+DillocfgFont *DillocfgFont_new(DillocfgWin *w, const gchar *label);
+DillocfgColor *DillocfgColor_new(DillocfgWin *w, const gchar *label);
+DillocfgNetwork *DillocfgNetwork_new(DillocfgWin *w, const gchar *label);
+#ifndef DISABLE_TABS
+DillocfgTab *DillocfgTab_new(DillocfgWin *w, const gchar *label);
+#endif
+DillocfgOther *DillocfgOther_new(DillocfgWin *w, const gchar *label);
+DillocfgCookie *DillocfgCookie_new(DillocfgWin *w, const gchar *label);
+void ReadUserconfig(DillocfgWin *d);
+void WriteUserconfig(DillocfgWin *d);
+
+/****************************** M A I N ********************************/
+int main(int argc, char **argv) {
+   DillocfgWin *dialog;
+
+#ifdef ENABLE_NLS
+   /* set locale */
+   gtk_set_locale();
+   /* Initialize Gettext */
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+#endif
+   /* Initialize GUI and parse GTK related args */
+   gtk_init(&argc, &argv);
+   gdk_rgb_init();
+
+   dialog = DillocfgWin_new();
+   ReadUserconfig(dialog);
+
+   /* Start the GTK+ cycle */
+   gtk_main();
+
+   //g_print("Dillocfg:normal exit\n");
+   gtk_exit (0);
+   return 0;
+}
+
+DillocfgWin *DillocfgWin_new() {
+   DillocfgWin *d           = g_new(DillocfgWin, 1);
+   GtkWidget *dialog_main   = gtk_window_new(GTK_WINDOW_TOPLEVEL);//DIALOG);
+   GtkWidget *vbox          = gtk_vbox_new(FALSE, 0);
+   GtkWidget *button_hbox   = gtk_hbox_new(FALSE, 0);
+   GtkWidget *button_reset  = gtk_button_new_with_label(_("Reset"));
+   GtkWidget *button_reload = gtk_button_new_with_label(_("Reload"));
+   GtkWidget *button_save   = gtk_button_new_with_label(_("Save"));
+   GtkWidget *button_quit   = gtk_button_new_with_label(_("Quit"));
+
+   gtk_window_set_title(GTK_WINDOW(dialog_main), _("Dillo Preferences"));
+   gtk_window_set_policy(GTK_WINDOW(dialog_main), TRUE, TRUE, FALSE);
+   gtk_signal_connect(GTK_OBJECT(dialog_main), "delete_event",
+         GTK_SIGNAL_FUNC(gtk_widget_destroy), d);
+   gtk_signal_connect(GTK_OBJECT(dialog_main), "destroy",
+         GTK_SIGNAL_FUNC(DillocfgWin_free), d);
+   gtk_window_set_wmclass(GTK_WINDOW(dialog_main), "dillocfg", _("Dillo Preferences"));
+   gtk_widget_set_usize(dialog_main, WIDTH, HEIGHT);
+
+   d->notebook              = gtk_notebook_new();
+   gtk_notebook_set_homogeneous_tabs(GTK_NOTEBOOK(d->notebook), FALSE);
+   gtk_container_add(GTK_CONTAINER(dialog_main), vbox);
+   gtk_container_add(GTK_CONTAINER(vbox), d->notebook);
+   gtk_signal_connect(GTK_OBJECT(button_reset), "clicked",
+         GTK_SIGNAL_FUNC(DillocfgWin_callback_reset), d);
+   gtk_signal_connect(GTK_OBJECT(button_reload), "clicked",
+         GTK_SIGNAL_FUNC(DillocfgWin_callback_reload), d);
+   gtk_signal_connect(GTK_OBJECT(button_save), "clicked",
+         GTK_SIGNAL_FUNC(DillocfgWin_callback_save), d);
+   gtk_signal_connect(GTK_OBJECT(button_quit), "clicked",
+         GTK_SIGNAL_FUNC(DillocfgWin_free), d);
+   gtk_box_set_spacing(GTK_BOX(button_hbox), 5);
+   gtk_container_add(GTK_CONTAINER(button_hbox), button_reset);
+   gtk_container_add(GTK_CONTAINER(button_hbox), button_reload);
+   gtk_container_add(GTK_CONTAINER(button_hbox), button_save);
+   gtk_container_add(GTK_CONTAINER(button_hbox), button_quit);
+   gtk_box_pack_end(GTK_BOX(vbox), button_hbox, FALSE, FALSE, 5);
+
+   d->list      = NULL;
+   d->interface = DillocfgInterface_new(d, _("Interface"));
+   d->font      = DillocfgFont_new(d, _("  Font  "));
+   d->color     = DillocfgColor_new(d, _("  Color "));
+   d->network   = DillocfgNetwork_new(d, _(" Network "));
+#ifndef DISABLE_TABS
+   d->tab       = DillocfgTab_new(d, _("   Tab   "));
+#endif
+   d->cookie    = NULL;//DillocfgCookie_new(d, _(" Cookie "));
+   d->other     = DillocfgOther_new(d, _("  Other  "));
+
+   gtk_widget_show_all(dialog_main);
+   return d;
+}
+
+void DillocfgWin_init(DillocfgWin *d, gboolean use_default) {
+   g_list_foreach(d->list, (GFunc)Option_init, (gpointer)use_default);
+}
+
+void DillocfgWin_free(GtkWidget *widget, DillocfgWin *d) {
+   g_list_foreach(d->list, (GFunc)Option_free, (gpointer)&d->list);
+   g_free(d->interface);
+   g_free(d->font);
+   g_free(d->color);
+   g_free(d->network);
+#ifndef DISABLE_TABS
+   g_free(d->tab);
+#endif
+   g_free(d->cookie);
+   g_free(d->other);
+   g_list_free(d->list);
+   g_free(d);
+   gtk_main_quit();
+}
+
+#ifndef DISABLE_TABS
+DillocfgTab *DillocfgTab_new(DillocfgWin *w, const gchar *label) {
+   DillocfgTab *t              = g_new(DillocfgTab, 1);
+   gint x, y;
+   GtkWidget *vbox             = gtk_vbox_new(FALSE, 0);
+   GtkWidget *table            = gtk_table_new(4, 2, FALSE);
+   GtkWidget *table2           = gtk_table_new(2, 1, FALSE);
+
+   gtk_table_set_homogeneous(GTK_TABLE(table), TRUE);
+   gtk_table_set_homogeneous(GTK_TABLE(table2), TRUE);
+   gtk_container_add(GTK_CONTAINER(vbox), table);
+   gtk_container_add(GTK_CONTAINER(vbox), table2);
+   x = 0; y = 0;
+   t->tab_bar_homogeneous      = Option_new(TOKEN_TAB_BAR_HOMOGENEOUS, &w->list, table, x, y++);
+   t->tab_bar_scroller         = Option_new(TOKEN_TAB_BAR_SCROLLER, &w->list, table, x, y++);
+   t->tab_bar_show_fullscreen  = Option_new(TOKEN_TAB_BAR_SHOW_FULLSCREEN, &w->list, table, x, y++);
+   t->tab_close_middle_click   = Option_new(TOKEN_TAB_CLOSE_MIDDLE_CLICK, &w->list, table, x, y++);
+   x++; y = 0;
+   t->tab_bar_show_single_tab  = Option_new(TOKEN_TAB_BAR_SHOW_SINGLE_TAB, &w->list, table, x, y++);
+   t->tab_instead_of_window    = Option_new(TOKEN_TAB_INSTEAD_OF_WINDOW, &w->list, table, x, y++);
+   t->tab_load_in_background   = Option_new(TOKEN_TAB_LOAD_IN_BACKGROUND, &w->list, table, x, y++);
+   t->tab_title_compress
+      = Option_new(TOKEN_TAB_TITLE_COMPRESS, &w->list, table, x, y++);
+   x = 0; y = 0;
+   t->compress_vowels          = Option_new(TOKEN_COMPRESS_VOWELS, &w->list, table2, x, y++);
+   t->compress_common_prefixes = Option_new(TOKEN_COMPRESS_COMMON_PREFIXES, &w->list, table2, x, y++);
+   gtk_notebook_append_page(GTK_NOTEBOOK(w->notebook), vbox, gtk_label_new(label));
+   return t;
+}
+
+#endif
+
+DillocfgOther *DillocfgOther_new(DillocfgWin *w, const gchar *label) {
+   DillocfgOther *g    = g_new(DillocfgOther, 1);
+   gint x, y;
+   GtkWidget *vbox     = gtk_vbox_new(FALSE, 0);
+   GtkWidget *table    = gtk_table_new(9, 1, FALSE);
+
+   gtk_table_set_homogeneous(GTK_TABLE(table), TRUE);
+   gtk_container_add(GTK_CONTAINER(vbox), table);
+   x = 0; y = 0;
+   g->w3c_plus_heuristics
+                       = Option_new(TOKEN_W3C_PLUS_HEURISTICS, &w->list, table, x, y++);
+   g->use_dicache      = Option_new(TOKEN_USE_DICACHE, &w->list, table, x, y++);
+   g->focus_location_on_new
+      = Option_new(TOKEN_FOCUS_LOCATION_ON_NEW, &w->list, table, x, y++);
+   g->enterpress_forces_submit
+      = Option_new(TOKEN_ENTERPRESS_FORCES_SUBMIT, &w->list, table, x, y++);
+   g->generate_submit  = Option_new(TOKEN_GENERATE_SUBMIT, &w->list, table, x, y++);
+   g->limit_text_width = Option_new(TOKEN_LIMIT_TEXT_WIDTH, &w->list, table, x, y++);
+   g->search_url       = Option_new(TOKEN_SEARCH_URL, &w->list, table, x, y++);
+   g->search_charset   = Option_new(TOKEN_SEARCH_CHARSET, &w->list, table, x, y++);
+   g->accept_language  = Option_new(TOKEN_ACCEPT_LANGUAGE, &w->list, table, x, y++);
+   g->show_msg   = Option_new(TOKEN_SHOW_MSG, &w->list, table, x, y++);
+   g->show_extra_warnings   = Option_new(TOKEN_SHOW_EXTRA_WARNINGS, &w->list, table, x, y++);
+   gtk_notebook_append_page(GTK_NOTEBOOK(w->notebook), vbox, gtk_label_new(label));
+   return g;
+}
+
+DillocfgInterface *DillocfgInterface_new(DillocfgWin *w, const gchar *label) {
+   DillocfgInterface *di     = g_new(DillocfgInterface, 1);
+   gint x, y;
+   GtkWidget *vbox           = gtk_vbox_new(FALSE, 0);
+   GtkWidget *table          = gtk_table_new(10, 2, FALSE);
+
+   gtk_table_set_homogeneous (GTK_TABLE(table), FALSE);
+   gtk_container_add(GTK_CONTAINER(vbox), table);
+   x = 0; y = 0;
+   di->geometry              = Option_new(TOKEN_GEOMETRY, &w->list, table, x, y++);
+   di->panel_size            = Option_new(TOKEN_PANEL_SIZE, &w->list, table, x, y++);
+   di->show_back             = Option_new(TOKEN_SHOW_BACK, &w->list, table, x, y++);
+   di->show_forw             = Option_new(TOKEN_SHOW_FORW, &w->list, table, x, y++);
+   di->show_bookmarks        = Option_new(TOKEN_SHOW_BOOKMARKS, &w->list, table, x, y++);
+   di->show_clear_url        = Option_new(TOKEN_SHOW_CLEAR_URL, &w->list, table, x, y++);
+   di->show_home             = Option_new(TOKEN_SHOW_HOME, &w->list, table, x, y++);
+   di->show_menubar          = Option_new(TOKEN_SHOW_MENUBAR, &w->list, table, x, y++);
+   di->show_progress_box     = Option_new(TOKEN_SHOW_PROGRESS_BOX, &w->list, table, x, y++);
+   di->show_reload           = Option_new(TOKEN_SHOW_RELOAD, &w->list, table, x, y++);
+   x++; y = 0;
+   di->show_save             = Option_new(TOKEN_SHOW_SAVE, &w->list, table, x, y++);
+   di->show_stop             = Option_new(TOKEN_SHOW_STOP, &w->list, table, x, y++);
+   di->show_tooltip          = Option_new(TOKEN_SHOW_TOOLTIP, &w->list, table, x, y++);
+   di->show_url              = Option_new(TOKEN_SHOW_URL, &w->list, table, x, y++);
+   di->show_search           = Option_new(TOKEN_SHOW_SEARCH, &w->list, table, x, y++);
+   di->small_icons           = Option_new(TOKEN_SMALL_ICONS, &w->list, table, x, y++);
+   di->fullwindow_start      = Option_new(TOKEN_FULLWINDOW_START, &w->list, table, x, y++);
+   di->transient_dialogs     = Option_new(TOKEN_TRANSIENT_DIALOGS, &w->list, table, x, y++);
+   di->popup_dialogs     = Option_new(TOKEN_POPUP_DIALOGS, &w->list, table, x, y++);
+   di->show_popup_navigation = Option_new(TOKEN_SHOW_POPUP_NAVIGATION, &w->list, table, x, y++);
+   gtk_notebook_append_page(GTK_NOTEBOOK(w->notebook), vbox, gtk_label_new(label));
+   return di;
+}
+
+DillocfgFont *DillocfgFont_new(DillocfgWin *w, const gchar *label) {
+   DillocfgFont *r          = g_new(DillocfgFont, 1);
+   gint x, y;
+   GtkWidget *vbox          = gtk_vbox_new(FALSE, 5);
+   GtkWidget *table         = gtk_table_new(4, 1, FALSE);
+   GtkWidget *table2        = gtk_table_new(1, 2, FALSE);
+
+   gtk_table_set_homogeneous (GTK_TABLE(table), TRUE);
+   gtk_table_set_row_spacings(GTK_TABLE(table), 5);
+   gtk_table_set_homogeneous (GTK_TABLE(table2), TRUE);
+   //gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, FALSE, 5);
+   //gtk_box_pack_start(GTK_BOX(vbox), table2, TRUE, FALSE, 5);
+   gtk_container_add(GTK_CONTAINER(vbox), table);
+   gtk_container_add(GTK_CONTAINER(vbox), table2);
+   x=0; y=0;
+#ifdef DISABLE_ANTI_ALIAS
+   r->vw_fontname           = Option_new(TOKEN_VW_FONT, &w->list, table, x, y++);
+#else
+   r->vw_aafontname         = Option_new(TOKEN_VW_AAFONT, &w->list, table, x, y++);
+#endif
+#ifdef DISABLE_ANTI_ALIAS
+   r->fw_fontname           = Option_new(TOKEN_FW_FONT, &w->list, table, x, y++);
+#else
+   r->fw_aafontname         = Option_new(TOKEN_FW_AAFONT, &w->list, table, x, y++);
+#endif
+   r->font_sizes            = Option_new(TOKEN_FONT_SIZES, &w->list, table, x, y++);
+   r->font_factor           = Option_new(TOKEN_FONT_FACTOR, &w->list, table, x, y++);
+   x=0; y=0;
+   r->use_oblique           = Option_new(TOKEN_USE_OBLIQUE, &w->list, table2, x, y++);
+   x++; y=0;
+   r->limit_font_decoration = Option_new(TOKEN_LIMIT_FONT_DECORATION, &w->list, table2, x, y++);
+
+   gtk_notebook_append_page(GTK_NOTEBOOK(w->notebook), vbox, gtk_label_new(label));
+   return r;
+}
+
+DillocfgColor *DillocfgColor_new(DillocfgWin *w, const gchar *label) {
+   DillocfgColor *c       = g_new(DillocfgColor, 1);
+   gint x, y;
+   GtkWidget *vbox        = gtk_vbox_new(FALSE, 0);
+   GtkWidget *table       = gtk_table_new(3, 1, FALSE);
+   GtkWidget *table2      = gtk_table_new(2, 2, TRUE);
+
+   gtk_table_set_homogeneous (GTK_TABLE(table), TRUE);
+   gtk_table_set_homogeneous (GTK_TABLE(table2), FALSE);
+   gtk_box_pack_start(GTK_BOX(vbox), table,  FALSE, FALSE, 5);
+   gtk_box_pack_start(GTK_BOX(vbox), table2, FALSE, FALSE, 5);
+   x = 0; y = 0;
+   c->force_my_colors     = Option_new(TOKEN_FORCE_MY_COLORS, &w->list, table, x, y++);
+   c->contrast_visited_color
+                          = Option_new(TOKEN_CONTRAST_VISITED_COLOR, &w->list, table, x, y++);
+   c->allow_white_bg      = Option_new(TOKEN_ALLOW_WHITE_BG, &w->list, table, x, y++);
+   x = 0; y = 0;
+   c->link_color          = Option_new(TOKEN_LINK_COLOR, &w->list, table2, x, y++);
+   c->bg_color            = Option_new(TOKEN_BG_COLOR, &w->list, table2, x, y++);
+   x++; y = 0;
+   c->visited_color       = Option_new(TOKEN_VISITED_COLOR, &w->list, table2, x, y++);
+   c->text_color          = Option_new(TOKEN_TEXT_COLOR, &w->list, table2, x, y++);
+
+   gtk_notebook_append_page(GTK_NOTEBOOK(w->notebook), vbox, gtk_label_new(label));
+   return c;
+}
+
+DillocfgNetwork *DillocfgNetwork_new(DillocfgWin *w, const gchar *label) {
+   DillocfgNetwork *n = g_new(DillocfgNetwork, 1);
+   gint x, y;
+   GtkWidget *vbox    = gtk_vbox_new(FALSE, 0);
+   GtkWidget *table   = gtk_table_new(10, 2, FALSE);
+
+   gtk_container_add(GTK_CONTAINER(vbox), table);
+   x = 0; y = 0;
+   n->user_agent      = Option_new(TOKEN_USER_AGENT, &w->list, table, x, y++);
+   n->home            = Option_new(TOKEN_HOME, &w->list, table, x, y++);
+   n->start_page      = Option_new(TOKEN_START_PAGE, &w->list, table, x, y++);;
+   n->http_proxy      = Option_new(TOKEN_PROXY, &w->list, table, x, y++);;
+   n->http_proxyuser  = Option_new(TOKEN_PROXYUSER, &w->list, table, x, y++);;
+   n->no_proxy        = Option_new(TOKEN_NOPROXY, &w->list, table, x, y++);;
+   n->send_referer    = Option_new(TOKEN_SEND_REFERER, &w->list, table, x, y++);;
+   gtk_notebook_append_page(GTK_NOTEBOOK(w->notebook), vbox, gtk_label_new(label));
+   return n;
+}
+
+DillocfgCookie *DillocfgCookie_new(DillocfgWin *w, const gchar *label) {
+   DillocfgCookie *c = g_new(DillocfgCookie, 1);
+   gint x, y;
+   GtkWidget *vbox   = gtk_vbox_new(FALSE, 0);
+   GtkWidget *hbox   = gtk_hbox_new(FALSE, 0);
+   GtkWidget *table  = gtk_table_new(1, 1, TRUE);
+   GtkWidget *clist  = gtk_clist_new(2);
+   GtkWidget *add_btn= gtk_button_new_with_label(_("Add"));
+   GtkWidget *del_btn= gtk_button_new_with_label(_("Delete"));
+   gtk_table_set_homogeneous(GTK_TABLE(table), TRUE);
+   gtk_container_add(GTK_CONTAINER(hbox), add_btn);
+   gtk_container_add(GTK_CONTAINER(hbox), del_btn);
+   x = 0; y = 0;
+   c->cookie_default = Option_new(TOKEN_COOKIE_DEFAULT, &w->list, table, x, y++);
+   gtk_clist_set_column_title(GTK_CLIST(clist), 0, _("Address"));
+   gtk_clist_set_column_title(GTK_CLIST(clist), 1, _("Rule"));
+   gtk_clist_column_titles_show(GTK_CLIST(clist));
+   gtk_clist_set_column_width(GTK_CLIST(clist), 0, 200);
+   /*
+   gtk_clist_insert(GTK_CLIST(clist), 1, NULL);
+   gtk_clist_set_text(GTK_CLIST(clist), 0, 0, "DEFAULT");
+   gtk_clist_set_text(GTK_CLIST(clist), 0, 1, "ACCEPT");
+   */
+   gtk_widget_set_usize(table, 320, 32);
+   gtk_box_pack_start(GTK_BOX(vbox), clist, TRUE, TRUE, 10);
+   gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 10);
+   gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 10);
+   //gtk_table_attach_defaults(GTK_TABLE(table), clist, x, x + 1, y, y + 1);
+   gtk_notebook_append_page(GTK_NOTEBOOK(w->notebook), vbox, gtk_label_new(label));
+   return c;
+}
+
+#define BUFSIZE 4096
+void ReadUserconfig(DillocfgWin *d) {
+   FILE *usercfg, *usercookiecfg;
+   gchar *filepass = g_strconcat(g_get_home_dir(), "/", USER_CFG, NULL);
+   char buf[BUFSIZE], name[BUFSIZE], value[BUFSIZE];
+   gchar *locale = g_strdup (setlocale (LC_NUMERIC, NULL));;
+
+   setlocale (LC_NUMERIC, "C");
+   if (!(usercfg = fopen(filepass, "r"))) {
+      g_print(_("Read failed <%s>\n"), filepass);
+      return;
+   }
+   g_free(filepass);
+   filepass = g_strconcat(g_get_home_dir(), "/", USER_COOKIE_CFG, NULL);
+   if (!(usercookiecfg = fopen(filepass, "r"))) {
+      g_print(_("Read failed <%s>\n"), filepass);
+      return;
+   }
+   g_free(filepass);
+
+   /* First, set default data. */
+   DillocfgWin_init(d, TRUE);
+
+   /* Read dillorc. */
+   while (fgets(buf, BUFSIZE, usercfg)) {
+      /* Parse name and value. */
+      int i = 0, j = 0, k = 0;
+      guint token;
+      SKIPSPACE(buf, i);
+      if (buf[i] == '#') continue;
+      SKIPSPACE(buf, i);
+      while (!IS_LINE_END(buf[i]) && buf[i] != '=' && !isspace(buf[i]))
+         name[j++] = buf[i++];
+      name[j] = '\0';
+      SKIPSPACE(buf, i);
+      if (buf[i++] != '=') continue;
+      SKIPSPACE(buf, i);
+      if (buf[i] == '"') {
+         i++;
+         while (!IS_LINE_END(buf[i]) && buf[i] != '"') value[k++] = buf[i++];
+      } else
+         while (!IS_LINE_END(buf[i]) && !isspace(buf[i])) value[k++] = buf[i++];
+      value[k] = '\0';
+      if (strlen(value) == 0) continue;
+      token = name2token(name);
+      /* Set value */
+      Option_set(get_token_object(token), value);
+   }
+
+   /* Read cookiesrc */
+   while (fgets(buf, BUFSIZE, usercookiecfg)) {
+      /* Parse name and value. */
+      int i = 0, j = 0, k = 0;
+      guint token;
+      SKIPSPACE(buf, i);
+      if (buf[i] == '#') continue;
+      SKIPSPACE(buf, i);
+      while (!IS_LINE_END(buf[i]) && !isspace(buf[i])) name[j++] = buf[i++];
+      name[j] = '\0';
+      SKIPSPACE(buf, i);
+      while (!IS_LINE_END(buf[i]) && !isspace(buf[i])) value[k++] = buf[i++];
+      value[k] = '\0';
+      if (strlen(value) == 0) continue;
+      if (strcmp(name, "DEFAULT") == 0)
+         token = TOKEN_COOKIE_DEFAULT;
+      else
+         token = TOKEN_COOKIE;
+      /* Set value */
+      Option_set(get_token_object(token), value);
+   }
+   fclose(usercfg);
+   fclose(usercookiecfg);
+   setlocale(LC_NUMERIC, locale);
+   DillocfgWin_init(d, FALSE);
+   g_free (locale);
+}
+
+void DillocfgWin_callback_reset(GtkButton *button, gpointer user_data) {
+   DillocfgWin *d = (DillocfgWin *)user_data;
+   DillocfgWin_init(d, TRUE);
+   modified_ = TRUE;
+}
+
+void DillocfgWin_callback_reload(GtkButton *button, gpointer user_data) {
+   DillocfgWin *d = (DillocfgWin *)user_data;
+   ReadUserconfig(d);
+   modified_ = FALSE;
+}
+
+void WriteUserconfig(DillocfgWin *d) {
+   FILE *usercfg;
+   //FILE *usercookiecfg;
+   GList *list;
+   gchar *filepass = g_strconcat(g_get_home_dir(), "/", USER_CFG, NULL);
+
+   if (!(usercfg = fopen(filepass, "w"))) {
+      g_print(_("can't write <%s>\n"), filepass);
+      return;
+   }
+   g_free(filepass);
+   fprintf(usercfg, "#This file is written by Dillocfg\n");
+#if 0
+   filepass = g_strconcat(g_get_home_dir(), "/", USER_COOKIE_CFG, NULL);
+   if (!(usercookiecfg = fopen(filepass, "w"))) {
+      g_print(_("can't write <%s>\n"), filepass);
+      fclose(usercfg);
+      return;
+   }
+   g_free(filepass);
+   fprintf(usercookiecfg, "#This file is written by Dillocfg\n");
+#endif
+   for (list = g_list_first(d->list); list; list = g_list_next(list)) {
+      Option *o = (Option *)list->data;
+      if (get_token_type(o->base.token) == COOKIE)
+         ;//Option_get(o, usercookiecfg);
+      else
+         Option_get(o, usercfg);
+   }
+   fclose(usercfg);
+   //fclose(usercookiecfg);
+}
+
+void DillocfgWin_callback_save(GtkButton *button, gpointer user_data) {
+   DillocfgWin *d = (DillocfgWin *)user_data;
+   WriteUserconfig(d);
+   modified_ = FALSE;
+}
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/config/dillocfg.h dillo-0.8.6-i18n-misc-20060709/config/dillocfg.h
--- dillo-0.8.6/config/dillocfg.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config/dillocfg.h	2006-05-16 01:21:16.000000000 +0900
@@ -0,0 +1,126 @@
+#ifndef __DILLOCFG_GTK_H__
+#define __DILLOCFG_GTK_H__
+
+#include <gtk/gtk.h>
+
+#include "../config.h"
+#include "dillocfg_option.h"
+
+#define WIDTH  640
+#define HEIGHT 370
+#define USER_CFG ".dillo/dillorc"
+#define USER_COOKIE_CFG ".dillo/cookiesrc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#ifndef DISABLE_TABS
+   typedef struct {
+      Option *tab_bar_homogeneous;
+      Option *tab_bar_scroller;
+      Option *tab_bar_show_fullscreen;
+      Option *tab_bar_show_single_tab;
+      Option *tab_instead_of_window;
+      Option *tab_load_in_background;
+      Option *tab_close_middle_click;
+      Option *compress_vowels;
+      Option *compress_common_prefixes;
+      Option *tab_title_compress;
+   } DillocfgTab;
+#endif
+
+   typedef struct {
+      Option *w3c_plus_heuristics;
+      Option *use_dicache;
+      Option *focus_location_on_new;
+      Option *enterpress_forces_submit;
+      Option *limit_text_width;
+      Option *generate_submit;
+      Option *search_url;
+      Option *search_charset;
+      Option *accept_language;
+      Option *show_msg;
+      Option *show_extra_warnings;
+   } DillocfgOther;
+
+   typedef struct {
+      Option *geometry;
+      Option *panel_size;
+      Option *show_back;
+      Option *show_bookmarks;
+      Option *show_clear_url;
+      Option *show_forw;
+      Option *show_home;
+      Option *show_menubar;
+      Option *show_popup_navigation;
+      Option *show_progress_box;
+      Option *show_reload;
+      Option *show_save;
+      Option *show_stop;
+      Option *show_tooltip;
+      Option *show_url;
+      Option *show_search;
+      Option *small_icons;
+      Option *fullwindow_start;
+      Option *transient_dialogs;
+      Option *popup_dialogs;
+   } DillocfgInterface;
+
+   typedef struct {
+      Option *font_sizes;
+      Option *font_factor;
+      Option *vw_fontname;
+      Option *fw_fontname;
+      Option *vw_aafontname;
+      Option *fw_aafontname;
+      Option *use_oblique;
+      Option *limit_font_decoration;
+   } DillocfgFont;
+
+   typedef struct {
+      Option *force_my_colors;
+      Option *contrast_visited_color;
+      Option *allow_white_bg;
+      Option *link_color;
+      Option *bg_color;
+      Option *visited_color;
+      Option *text_color;
+   } DillocfgColor;
+
+   typedef struct {
+      Option *user_agent;
+      Option *home;
+      Option *start_page;
+      Option *http_proxy;
+      Option *http_proxyuser;
+      Option *no_proxy;
+      Option *send_referer;
+   } DillocfgNetwork;
+
+   typedef struct {
+      Option    *cookie_default;
+   } DillocfgCookie;
+
+   typedef struct {
+      GtkWidget         *notebook;
+      GList             *list;
+      DillocfgInterface *interface;
+      DillocfgFont      *font;
+      DillocfgColor     *color;
+      DillocfgNetwork   *network;
+#ifndef DISABLE_TABS
+      DillocfgTab       *tab;
+#endif
+      DillocfgCookie    *cookie;
+      DillocfgOther     *other;
+   } DillocfgWin;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /* __DILLOCFG_GTK_H__ */
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/config/dillocfg_option.c dillo-0.8.6-i18n-misc-20060709/config/dillocfg_option.c
--- dillo-0.8.6/config/dillocfg_option.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config/dillocfg_option.c	2006-05-16 01:21:16.000000000 +0900
@@ -0,0 +1,688 @@
+/*
+ * File: dillocfg-gtk_option.c
+ *
+ * Copyright (C) 2003 Kiyo <kiyo@teki.jpn.ph>
+ *
+ * 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.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <gtk/gtk.h>
+
+#include "../config.h"
+#include "../src/intl.h"
+#include "dillocfg_option.h"
+#include "dillocfg_token.h"
+
+/* Private class. */
+typedef struct {
+   OptionBase base;
+   GtkWidget *button;
+   gboolean   value;
+   gboolean   default_value;
+} CheckOption;
+
+typedef struct {
+   OptionBase base;
+   GtkWidget *hbox;
+   GtkWidget *entry;
+   gchar     *value;
+   gchar     *default_value;
+   gboolean  allow_space;
+} EntryOption;
+
+typedef struct {
+   OptionBase base;
+   GtkWidget *hbox;
+   GtkWidget *combo;
+   gchar     *value;
+   gchar     *default_value;
+} ComboOption;
+
+typedef ComboOption FontOption;
+
+typedef struct {
+   OptionBase base;
+   GtkWidget *hbox;
+   GtkWidget *option_menu;
+   gchar    **items;
+   gint       value;
+   gint       default_value;
+} SelectOption;
+
+typedef struct {
+   OptionBase base;
+   GtkWidget *hbox;
+   GtkWidget *label;
+   GdkImage  *image;
+   GtkWidget *button_image;
+   GtkWidget *dialog;
+   GdkColor  *value;
+   GdkColor  *default_value;
+} ColorOption;
+
+typedef struct {
+   OptionBase base;
+   GtkWidget *hbox;
+   GtkWidget *button;
+   double     value;
+   double     default_value;
+   gboolean is_integer;
+} SpinOption;
+
+typedef struct {
+   gint x;
+   gint y;
+} Geometry;
+
+typedef struct {
+   OptionBase base;
+   GtkWidget *hbox;
+   GtkWidget *button;
+   GtkWidget *button2;
+   Geometry   value;
+   Geometry   default_value;
+} GeometryOption;
+
+CheckOption *CheckOption_new(guint token,
+      GtkWidget *table, gint x, gint y);
+void   CheckOption_init(CheckOption *o, gboolean use_default);
+void   CheckOption_set(CheckOption *o, gchar *value);
+gchar *CheckOption_get(CheckOption *o);
+void   CheckOption_free(CheckOption *o);
+
+EntryOption *EntryOption_new(guint token,
+      GtkWidget *table, gint x, gint y);
+void   EntryOption_init(EntryOption *o, gboolean use_default);
+void   EntryOption_set(EntryOption *o, gchar *value);
+gchar *EntryOption_get(EntryOption *o);
+void   EntryOption_free(EntryOption *o);
+
+ComboOption *ComboOption_new(guint token,
+      GtkWidget *table, gint x, gint y);
+void   ComboOption_init(ComboOption *o, gboolean use_default);
+void   ComboOption_set(ComboOption *o, gchar *value);
+gchar *ComboOption_get(ComboOption *o);
+void   ComboOption_free(ComboOption *o);
+
+FontOption  *FontOption_new(guint token,
+      GtkWidget *table, gint x, gint y);
+
+SelectOption *SelectOption_new(guint token,
+      GtkWidget *table, gint x, gint y);
+void   SelectOption_init(SelectOption *o, gboolean use_default);
+void   SelectOption_set(SelectOption *o, gchar *value);
+gchar *SelectOption_get(SelectOption *o);
+void   SelectOption_free(SelectOption *o);
+
+ColorOption *ColorOption_new(guint token,
+      GtkWidget *table, gint x, gint y);
+void   ColorOption_init(ColorOption *o, gboolean use_default);
+void   ColorOption_set(ColorOption *o, gchar *value);
+gchar *ColorOption_get(ColorOption *o);
+void   ColorOption_free(ColorOption *o);
+
+SpinOption *SpinOption_new(guint token,
+      GtkWidget *table, gint x, gint y);
+void   SpinOption_init(SpinOption *o, gboolean use_default);
+void   SpinOption_set(SpinOption *o, gchar *value);
+gchar *SpinOption_get(SpinOption *o);
+void   SpinOption_free(SpinOption *o);
+
+GeometryOption *GeometryOption_new(guint token,
+      GtkWidget *table, gint x, gint y);
+void   GeometryOption_init(GeometryOption *o, gboolean use_default);
+void   GeometryOption_set(GeometryOption *o, gchar *value);
+gchar *GeometryOption_get(GeometryOption *o);
+void   GeometryOption_free(SpinOption *o);
+
+
+Option *Option_new(guint token, GList **list,
+      GtkWidget *table, gint x, gint y) {
+   guint type = get_token_type(token);
+   Option *o;
+   switch (type) {
+      case CHECK_OPTION:
+         o = (Option *)CheckOption_new(token, table, x, y);
+         break;
+      case ENTRY_OPTION:
+         o = (Option *)EntryOption_new(token, table, x, y);
+         break;
+      case COMBO_OPTION:
+         o = (Option *)ComboOption_new(token, table, x, y);
+         break;
+      case FONT_OPTION:
+         o = (Option *)FontOption_new(token, table, x, y);
+         break;
+      case SELECT_OPTION:
+      case COOKIE:
+         o = (Option *)SelectOption_new(token, table, x, y);
+         break;
+      case COLOR_OPTION:
+         o = (Option *)ColorOption_new(token, table, x, y);
+         break;
+      case SPIN_OPTION:
+         o = (Option *)SpinOption_new (token, table, x, y);
+         break;
+      case GEOMETRY_OPTION:
+         o = (Option *)GeometryOption_new(token, table, x, y);
+         break;
+      default:
+         o = (Option *)NULL;
+   }
+   set_token_object(token, o);
+   *list = g_list_append(*list, o);
+   return o;
+}
+
+void Option_init(Option *o, gboolean use_default) {
+   return ((o) ? o->base.init(o, use_default) : NULL);
+}
+
+void Option_set(Option *o, gchar *value) {
+   return ((o) ? o->base.set(o, value)        : NULL);
+}
+
+gchar *Option_get(Option *o, FILE *fp) {
+   if (!o) return NULL;
+   if (fp && o->base.get(o)) fprintf(fp, "%s\n", o->base.get(o));
+   return ((o) ? o->base.get(o)               : NULL);
+}
+
+void Option_free(Option *o, GList **list) {
+   return ((o) ? o->base.free(o)              : NULL);
+}
+
+CheckOption *CheckOption_new(guint token, GtkWidget *table, gint x, gint y) {
+   CheckOption *o   = g_new(CheckOption, 1);
+
+   o->base.token    = token;
+   o->base.init     = CheckOption_init;
+   o->base.set      = CheckOption_set;
+   o->base.get      = CheckOption_get;
+   o->base.free     = CheckOption_free;
+   o->button        = gtk_check_button_new_with_label(_(get_token_label(token)));
+   o->base.set(o, (gchar *)get_token_value(token));
+   o->default_value = o->value;
+   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(o->button), o->value);
+   gtk_table_attach_defaults(GTK_TABLE(table), o->button, x, x + 1, y, y + 1);
+   return o;
+}
+
+void CheckOption_init(CheckOption *o, gboolean use_default) {
+   if (use_default) o->value = o->default_value;
+   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(o->button), o->value);
+}
+
+void CheckOption_set(CheckOption *o, gchar *value) {
+   if (value)
+      o->value = (strcmp(value, "YES") == 0);
+}
+
+gchar *CheckOption_get(CheckOption *o) {
+   return g_strdup_printf("%s=%s", get_token_name(o->base.token),
+         (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(o->button)))
+         ? "YES" : "NO");
+}
+
+void CheckOption_free(CheckOption *o) {
+   g_free(o);
+}
+
+EntryOption *EntryOption_new(guint token,
+      GtkWidget *table, gint x, gint y) {
+   EntryOption *o    = g_new(EntryOption, 1);
+   GtkWidget *label  = gtk_label_new(_(get_token_label(token)));
+
+   o->base.token     = token;
+   o->base.init      = EntryOption_init;
+   o->base.set       = EntryOption_set;
+   o->base.get       = EntryOption_get;
+   o->base.free      = EntryOption_free;
+   o->hbox           = gtk_hbox_new(FALSE, 0);
+   o->entry          = gtk_entry_new();
+   o->value          = NULL;
+   o->base.set(o, (gchar *)get_token_value(token));
+   o->default_value  = g_strdup(o->value);
+   o->allow_space    = (gboolean)get_token_option(token);
+   //gtk_box_set_homogeneous(GTK_BOX(o->hbox), TRUE);
+   gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
+   if (o->value) gtk_entry_set_text(GTK_ENTRY(o->entry), o->value);
+   gtk_box_pack_start(GTK_BOX(o->hbox), label, FALSE, FALSE, 10);
+   gtk_box_pack_end(GTK_BOX(o->hbox), o->entry, TRUE, TRUE, 5);
+   gtk_table_attach_defaults(GTK_TABLE(table), o->hbox, x, x + 1, y, y + 1);
+   return o;
+}
+
+void EntryOption_init(EntryOption *o, gboolean use_default) {
+   if (use_default) {
+      g_free(o->value);
+      o->value = g_strdup(o->default_value);
+   }
+   if (o->value) gtk_entry_set_text(GTK_ENTRY(o->entry), o->value);
+}
+
+void EntryOption_set(EntryOption *o, gchar *value) {
+   g_free(o->value);
+   o->value = g_strdup(value);
+}
+
+gchar *EntryOption_get(EntryOption *o) {
+   gchar *format;
+   gchar *value = gtk_entry_get_text(GTK_ENTRY(o->entry));
+
+   if (!value) return NULL;
+   if (strcmp(value, "") == 0) return NULL;
+   if (o->allow_space) format = "%s=\"%s\"";
+   else format = "%s=%s";
+   return g_strdup_printf(format, get_token_name(o->base.token),
+         value);
+}
+
+void EntryOption_free(EntryOption *o) {
+   g_free(o);
+}
+
+ComboOption *ComboOption_new(guint token, GtkWidget *table, gint x, gint y) {
+   ComboOption *o  = g_new(ComboOption, 1);
+   GList *list = NULL;
+   gchar **items = NULL;
+   gint i;
+
+   o->base.token    = token;
+   o->base.init     = ComboOption_init;
+   o->base.set      = ComboOption_set;
+   o->base.get      = ComboOption_get;
+   o->base.free     = ComboOption_free;
+   o->hbox          = gtk_hbox_new(FALSE, 0);
+   o->combo         = gtk_combo_new();
+   items            = (gchar **)get_token_option(token);
+   for (i = 0; items[i]; i++)
+      list = g_list_append(list, items[i]);
+   o->value          = NULL;
+   gtk_combo_set_popdown_strings(GTK_COMBO(o->combo), list);
+   g_free(list);
+   o->base.set(o, (gchar *)get_token_value(token));
+   o->default_value  = g_strdup(o->value);
+   if (o->value) gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (o->combo)->entry), o->value);
+   gtk_box_pack_start(GTK_BOX(o->hbox),
+         gtk_label_new(_(get_token_label(token))), FALSE, FALSE, 5);
+   gtk_box_pack_start(GTK_BOX(o->hbox), o->combo, TRUE, TRUE, 5);
+   gtk_table_attach_defaults(GTK_TABLE(table), o->hbox, x, x + 1, y, y + 1);
+   return o;
+}
+
+void ComboOption_init(ComboOption *o, gboolean use_default) {
+   if (use_default) {
+      g_free(o->value);
+      o->value = g_strdup(o->default_value);
+   }
+   if (o->value) gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (o->combo)->entry), o->value);
+}
+
+void ComboOption_set(ComboOption *o, gchar *value) {
+   g_free(o->value);
+   o->value = g_strdup(value);
+}
+
+gchar *ComboOption_get(ComboOption *o) {
+   gchar *value = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO (o->combo)->entry));
+
+   if (!value) return NULL;
+   if (strcmp(value, "") == 0) return NULL;
+   return g_strdup_printf("%s=\"%s\"", get_token_name(o->base.token),
+         value);
+}
+
+void ComboOption_free(ComboOption *o) {
+   g_free(o);
+}
+
+/* FontOption class extends ComboOption. */
+FontOption *FontOption_new(guint token, GtkWidget *table, gint x, gint y) {
+   FontOption *o  = g_new(FontOption, 1);
+   GList *list = NULL;
+#define MAX_FONT_NAME 1024
+   gchar buf[MAX_FONT_NAME]; //max font name
+   FILE *fp;
+
+   o->base.token    = token;
+   o->base.init     = ComboOption_init;
+   o->base.set      = ComboOption_set;
+   o->base.get      = ComboOption_get;
+   o->base.free     = ComboOption_free;
+   o->hbox          = gtk_hbox_new(FALSE, 0);
+   o->combo         = gtk_combo_new();
+#ifdef DISABLE_ANTI_ALIAS
+   fp = popen("xlsfonts -fn \"-*-*\"|cut -d \"-\" -f 2-3|sort|uniq", "r");
+   list = g_list_append(list, "*-*");
+   list = g_list_append(list, "*-gothic");
+#else
+   fp = popen("fc-list|sed \"s/[:|,]/\\n#/g\"|grep -v \"^#\"|sort|uniq", "r");
+   list = g_list_append(list, "serif");
+   list = g_list_append(list, "sans-serif");
+   list = g_list_append(list, "monospace");
+#endif
+   while(fgets(buf, MAX_FONT_NAME, fp)) {
+      g_strchomp(buf);
+      list = g_list_append(list, g_strdup(buf));
+   }
+   pclose(fp);
+   o->value          = NULL;
+   if (list) gtk_combo_set_popdown_strings(GTK_COMBO(o->combo), list);
+   g_list_free(list);
+   o->base.set(o, (gchar *)get_token_value(token));
+   o->default_value  = g_strdup(o->value);
+   if (o->value) gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (o->combo)->entry), o->value);
+   gtk_box_pack_start(GTK_BOX(o->hbox),
+         gtk_label_new(_(get_token_label(token))), FALSE, FALSE, 5);
+   gtk_box_pack_start(GTK_BOX(o->hbox), o->combo, TRUE, TRUE, 5);
+   gtk_table_attach_defaults(GTK_TABLE(table), o->hbox, x, x + 1, y, y + 1);
+   return o;
+}
+
+SelectOption *SelectOption_new(guint token, GtkWidget *table, gint x, gint y) {
+   SelectOption *o  = g_new(SelectOption, 1);
+   GtkWidget *menu  = gtk_menu_new ();
+   gint i;
+
+   o->base.token    = token;
+   o->base.init     = SelectOption_init;
+   o->base.set      = SelectOption_set;
+   o->base.get      = SelectOption_get;
+   o->base.free     = SelectOption_free;
+   o->hbox          = gtk_hbox_new(FALSE, 0);
+   o->option_menu   = gtk_option_menu_new();
+   o->items         = (gchar **)get_token_option(token);
+   for (i = 0; o->items[i]; i++)
+      gtk_menu_append(GTK_MENU(menu), 
+            gtk_menu_item_new_with_label(o->items[i]));
+   gtk_option_menu_set_menu (GTK_OPTION_MENU(o->option_menu), menu);
+   o->base.set(o, (gchar *)get_token_value(token));
+   o->default_value = o->value;
+   gtk_option_menu_set_history(GTK_OPTION_MENU(o->option_menu), o->value);
+   gtk_box_pack_start(GTK_BOX(o->hbox),
+         gtk_label_new(_(get_token_label(token))), FALSE, FALSE, 5);
+   gtk_box_pack_start(GTK_BOX(o->hbox), o->option_menu, TRUE, TRUE, 5);
+   gtk_table_attach_defaults(GTK_TABLE(table), o->hbox, x, x + 1, y, y + 1);
+   return o;
+}
+
+void SelectOption_init(SelectOption *o, gboolean use_default) {
+   if (use_default) o->value = o->default_value;
+   gtk_option_menu_set_history (GTK_OPTION_MENU(o->option_menu), o->value);
+}
+
+void SelectOption_set(SelectOption *o, gchar *value) {
+   gint i;
+   for (i = 0; o->items[i]; i++)
+      if (!g_strcasecmp(value, o->items[i]))
+         o->value = i;
+}
+
+gchar *SelectOption_get(SelectOption *o) {
+   GtkWidget *menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(o->option_menu));
+   /* always null...
+      gchar *str = NULL;
+      GtkWidget *item = gtk_menu_get_active(GTK_MENU(menu));
+      GtkWidget *label = GTK_BIN(GTK_MENU_ITEM(item))->child;
+      if(!label) str = g_strdup("");
+      else gtk_label_get(GTK_LABEL(label), &str);
+      */
+   gint i = g_list_index(GTK_MENU_SHELL(menu)->children,
+         GTK_OPTION_MENU(o->option_menu)->menu_item);
+   gchar *format = (get_token_type(o->base.token) == COOKIE) ? "%s %s" : "%s=\"%s\"";
+   return g_strdup_printf(format, get_token_name(o->base.token), o->items[i]);
+}
+
+void SelectOption_free(SelectOption *o) {
+   g_free(o);
+}
+
+void change_color_GdkColor(const double *color, GdkColor* o) {
+   o->red   = color[0] * 65535;
+   o->green = color[1] * 65535;
+   o->blue  = color[2] * 65535;
+}
+
+void change_color_double(const GdkColor* o, double *color) {
+   color[0] = o->red   / (double)65535;
+   color[1] = o->green / (double)65535;
+   color[2] = o->blue  / (double)65535;
+}
+
+void ColorDialog_ok(GtkButton *button, gpointer user_data) {
+   ColorOption *o = (ColorOption *)user_data;
+   double color[4];
+   gtk_color_selection_get_color(
+         GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(o->dialog)->colorsel),
+         color);
+   change_color_GdkColor(color, o->value);
+   ColorOption_init(o, FALSE);
+   gtk_widget_destroy(o->dialog);
+}
+
+void ColorDialog_cancel(GtkButton *button, gpointer user_data) {
+   ColorOption *o = (ColorOption *)user_data;
+   gtk_widget_destroy(o->dialog);
+}
+
+void ColorOption_clicked(GtkButton *button, gpointer user_data) {
+   ColorOption *o = (ColorOption *)user_data;
+   gchar *title;
+   double color[4];
+   gtk_label_get(GTK_LABEL(o->label), &title);
+   change_color_double(o->value, color);
+   o->dialog = gtk_color_selection_dialog_new(title);
+   gtk_color_selection_set_color(
+         GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(o->dialog)->colorsel),
+         color);
+   gtk_signal_connect(
+         GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(o->dialog)->ok_button),
+         "clicked", GTK_SIGNAL_FUNC(ColorDialog_ok), o);
+   gtk_signal_connect(
+         GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(o->dialog)->cancel_button),
+         "clicked", GTK_SIGNAL_FUNC(ColorDialog_cancel), o);
+   gtk_widget_hide(GTK_COLOR_SELECTION_DIALOG(o->dialog)->help_button);
+   gtk_widget_show(o->dialog);
+}
+
+#define PREVIEW_SIZE 48
+ColorOption *ColorOption_new(guint token,
+      GtkWidget *table, gint x, gint y) {
+   ColorOption *o    = g_new(ColorOption, 1);
+   GtkWidget *button = gtk_button_new();
+
+   o->base.token     = token;
+   o->base.init      = ColorOption_init;
+   o->base.set       = ColorOption_set;
+   o->base.get       = ColorOption_get;
+   o->base.free      = ColorOption_free;
+   o->hbox           = gtk_hbox_new(FALSE, 0);
+   o->label          = gtk_label_new(_(get_token_label(token)));
+   o->image          = gdk_image_new(GDK_IMAGE_NORMAL,
+         gdk_visual_get_system(), PREVIEW_SIZE, PREVIEW_SIZE);
+   o->button_image   = gtk_image_new(o->image, NULL);
+   o->value          = g_new(GdkColor, 1);
+   o->base.set(o, (gchar *)get_token_value(token));
+   o->default_value  = g_new(GdkColor, 1);
+   o->default_value  = gdk_color_copy(o->value);
+   gtk_signal_connect(GTK_OBJECT(button), "clicked",
+         GTK_SIGNAL_FUNC(ColorOption_clicked), o);
+   gtk_container_add(GTK_CONTAINER(button), o->button_image);
+   //gtk_box_set_homogeneous(GTK_BOX(o->hbox), TRUE);
+   gtk_label_set_justify (GTK_LABEL(o->label), GTK_JUSTIFY_LEFT);
+   gtk_box_pack_start(GTK_BOX(o->hbox), button, FALSE, FALSE, 10);
+   gtk_box_pack_start(GTK_BOX(o->hbox), o->label, FALSE, FALSE, 10);
+   gtk_table_attach_defaults(GTK_TABLE(table), o->hbox, x, x + 1, y, y + 1);
+   return o;
+}
+
+guint32 change_color(GdkColor *o) {
+   gdk_colormap_alloc_color(gdk_colormap_get_system(),
+         o, TRUE, TRUE);
+   return o->pixel;
+}
+
+void ColorOption_init(ColorOption *o, gboolean use_default) {
+   int i, j;
+   if (use_default) o->value = gdk_color_copy(o->default_value);
+   for (i = 0; i < PREVIEW_SIZE; i++)
+      for (j = 0; j < PREVIEW_SIZE; j++)
+         gdk_image_put_pixel(o->image, i, j, change_color(o->value));
+   gtk_image_set(GTK_IMAGE(o->button_image), o->image, NULL);
+}
+
+void ColorOption_set(ColorOption *o, gchar *value) {
+   guint32 i;
+   if (strlen(value) != 8) return;
+   if (value[0] != '0' || value[1] != 'x') return;
+   sscanf(value, "0x%x", &i);
+   o->value->red   = (i&0x00FF0000) >> 8;
+   o->value->green = (i&0x0000FF00);
+   o->value->blue  = (i&0x000000FF) << 8;
+}
+
+gchar *ColorOption_get(ColorOption *o) {
+   return g_strdup_printf("%s=0x%.2x%.2x%.2x",
+         get_token_name(o->base.token),
+         o->value->red   >> 8,
+         o->value->green >> 8,
+         o->value->blue  >> 8);
+}
+
+void ColorOption_free(ColorOption *o) {
+   gdk_image_destroy (o->image);
+   g_free(o);
+}
+
+SpinOption *SpinOption_new(guint token,
+      GtkWidget *table, gint x, gint y) {
+   SpinOption *o      = g_new(SpinOption, 1);
+   OptionAdjustment_t *opt  = (OptionAdjustment_t *)get_token_option(token);
+
+   o->base.token      = token;
+   o->base.init       = SpinOption_init;
+   o->base.set        = SpinOption_set;
+   o->base.get        = SpinOption_get;
+   o->base.free       = SpinOption_free;
+   o->hbox            = gtk_hbox_new(FALSE, 0);
+   o->button          = gtk_spin_button_new(
+         (GtkAdjustment *)gtk_adjustment_new(0,
+                                             opt->lower,
+                                             opt->upper,
+                                             opt->increment,
+                                             opt->increment,
+                                             opt->increment),
+         opt->increment, opt->digits);
+   o->base.set(o, (gchar *)get_token_value(token));
+   o->default_value   = o->value;
+   o->is_integer      = (opt->digits == 0);
+   gtk_box_pack_start(GTK_BOX(o->hbox),
+         gtk_label_new(_(get_token_label(token))), FALSE, FALSE, 10);
+   gtk_box_pack_start(GTK_BOX(o->hbox), o->button, FALSE, FALSE, 10);
+   gtk_table_attach_defaults(GTK_TABLE(table), o->hbox, x, x + 1, y, y + 1);
+   return o;
+}
+
+void SpinOption_init(SpinOption *o, gboolean use_default) {
+   if (use_default) o->value = o->default_value;
+   gtk_spin_button_set_value(GTK_SPIN_BUTTON(o->button), o->value);
+}
+
+void SpinOption_set(SpinOption *o, gchar *value) {
+   if (o->is_integer)
+      o->value = strtol(value, NULL, 0);
+   else
+      o->value = strtod(value, NULL);
+}
+
+   gchar *SpinOption_get(SpinOption *o) {
+      if (o->is_integer)
+         return g_strdup_printf("%s=%d", get_token_name(o->base.token),
+               gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(o->button)));
+      else {
+         gchar *float_str = g_strdup_printf("%s=%f",
+               get_token_name(o->base.token),
+               gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(o->button)));
+         if (strchr(float_str, ','))
+            strchr(float_str, ',')[0] = '.';
+         return float_str;
+      }
+   }
+
+void SpinOption_free(SpinOption *o) {
+   g_free(o);
+}
+
+GeometryOption *GeometryOption_new(guint token,
+      GtkWidget *table, gint x, gint y) {
+   GeometryOption *o     = g_new(GeometryOption, 1);
+   OptionAdjustment_t *opt     = (OptionAdjustment_t *)get_token_option(token);
+
+   o->base.token         = token;
+   o->base.init          = GeometryOption_init;
+   o->base.set           = GeometryOption_set;
+   o->base.get           = GeometryOption_get;
+   o->base.free          = GeometryOption_free;
+   o->hbox               = gtk_hbox_new(FALSE, 0);
+   o->button             = gtk_spin_button_new(
+         (GtkAdjustment *)gtk_adjustment_new(0,
+                                             opt->lower,
+                                             opt->upper,
+                                             opt->increment,
+                                             opt->increment,
+                                             opt->increment),
+         opt->increment, 0);
+   o->button2            = gtk_spin_button_new(
+         (GtkAdjustment *)gtk_adjustment_new(0,
+                                             opt->lower,
+                                             opt->upper,
+                                             opt->increment,
+                                             opt->increment,
+                                             opt->increment),
+         opt->increment, 0);
+   o->base.set(o, (gchar *)get_token_value(token));
+   o->default_value      = o->value;
+   gtk_box_pack_start(GTK_BOX(o->hbox),
+         gtk_label_new(_(get_token_label(token))), FALSE, FALSE, 10);
+   gtk_box_pack_start(GTK_BOX(o->hbox), o->button, FALSE, FALSE, 10);
+   gtk_box_pack_start(GTK_BOX(o->hbox), gtk_label_new("X"), FALSE, FALSE, 0);
+   gtk_box_pack_start(GTK_BOX(o->hbox), o->button2, FALSE, FALSE, 10);
+   gtk_table_attach_defaults(GTK_TABLE(table), o->hbox, x, x + 1, y, y + 1);
+   return o;
+}
+
+void GeometryOption_init(GeometryOption *o, gboolean use_default) {
+   if(use_default) o->value = o->default_value;
+   gtk_spin_button_set_value(GTK_SPIN_BUTTON(o->button),  o->value.x);
+   gtk_spin_button_set_value(GTK_SPIN_BUTTON(o->button2), o->value.y);
+}
+
+void GeometryOption_set(GeometryOption *o, gchar *value) {
+   gchar *ptr;
+
+   if ((ptr = strchr(value, 'x'))) {
+      o->value.x = atoi(value);
+      o->value.y = atoi(++ptr);
+   }
+}
+
+gchar *GeometryOption_get(GeometryOption *o) {
+   return g_strdup_printf("%s=%dx%d", get_token_name(o->base.token),
+         gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(o->button)),
+         gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(o->button2)));
+}
+
+void GeometryOption_free(SpinOption *o) {
+   g_free(o);
+}
+
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/config/dillocfg_option.h dillo-0.8.6-i18n-misc-20060709/config/dillocfg_option.h
--- dillo-0.8.6/config/dillocfg_option.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config/dillocfg_option.h	2006-05-16 01:21:16.000000000 +0900
@@ -0,0 +1,57 @@
+#ifndef __DILLOCFG_GTK_OPTION_H__
+#define __DILLOCFG_GTK_OPTION_H__
+
+#include <stdio.h>
+#include <gtk/gtk.h>
+
+#include "../config.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+   typedef enum {
+      CHECK_OPTION = 0,
+      ENTRY_OPTION,
+      COMBO_OPTION,
+      FONT_OPTION,
+      SELECT_OPTION,
+      COLOR_OPTION,
+      SPIN_OPTION,
+      GEOMETRY_OPTION,
+      COOKIE
+   } OptionType;
+
+   typedef struct {
+      guint     token;
+      void  (*init)();
+      void   (*set)();
+      gchar *(*get)();
+      void  (*free)();
+   } OptionBase;
+
+   typedef struct {
+      OptionBase base;
+   } Option;
+
+   typedef struct {
+      gfloat lower;
+      gfloat upper;
+      gfloat increment;
+      guint  digits;
+   } OptionAdjustment_t;
+
+   Option *Option_new(guint token, GList **list, GtkWidget *table, gint x, gint y);
+   void    Option_init(Option *o, gboolean use_default);
+   void    Option_set(Option *o, gchar *value);
+   gchar  *Option_get(Option *o, FILE *fp);
+   void    Option_free(Option *o, GList **list);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /* __DILLOCFG_GTK_OPTION_H__ */
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/config/dillocfg_token.c dillo-0.8.6-i18n-misc-20060709/config/dillocfg_token.c
--- dillo-0.8.6/config/dillocfg_token.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config/dillocfg_token.c	2006-05-16 01:21:16.000000000 +0900
@@ -0,0 +1,635 @@
+/*
+ * File: dillocfg-gtk_token.c
+ *
+ * Copyright (C) 2003 Kiyo <kiyo@teki.jpn.ph>
+ *
+ * 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.
+ */
+
+#include <string.h>
+#include <gtk/gtk.h>
+
+#include "../config.h"
+#include "../src/intl.h"
+#include "dillocfg_token.h"
+#include "dillocfg_option.h"
+
+static const OptionAdjustment_t font_factor_option = {0.1, 20, 0.1, 1};
+static const OptionAdjustment_t geometry_option = {1, 65535, 1, 0};
+static const gchar *panel_sizes[] = {"tiny", "small", "medium", "large", NULL};
+static const gchar *user_agents[] = {
+   "Dillo/%v",
+   "Mozilla/3.0 (compatible;) Dillo/%v",
+   "Mozilla/4.0 (compatible; MSIE 4.0;) Dillo/%v",
+   "Mozilla/4.0 (Macintosh; U; PPC Mac OS X; ja-jp) Dillo/%v",
+   "DoCoMo/1.0/x505i (Dillo/%v)",
+   "J-PHONE/4.2/J-x53 (Dillo/%v)",
+   "KDDI-x24 UP.Browser/6.0.x.x (GUI) MMP/1.1 (Dillo/%v)",
+   NULL
+};
+static const gchar *cookie_rules[] = {
+   "ACCEPT_SESSION",
+   "DENY",
+   "ACCEPT",
+   NULL
+};
+
+/* symbol array */
+static struct {
+   const gchar   *name;
+   const gchar   *label;
+   const guint    token;
+   const guint    type;
+   const gchar   *value;
+   const gpointer option;
+   Option        *object;
+
+} symbols[] = {
+   { "null",
+      "null",
+      0,
+      -1,
+      NULL,
+      (const gpointer)NULL,
+      NULL 
+   },
+   { "geometry",
+      N_("Window Size"),
+      TOKEN_GEOMETRY,
+      GEOMETRY_OPTION,
+      "640x550",
+      (const gpointer)&geometry_option,
+      NULL 
+   },
+   { "http_proxy",
+      N_("HTTP Proxy"),
+      TOKEN_PROXY,
+      ENTRY_OPTION,
+      "",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "http_proxyuser",
+      N_("HTTP Proxy User"),
+      TOKEN_PROXYUSER,
+      ENTRY_OPTION,
+      "",
+      (const gpointer)FALSE,
+      NULL 
+   },
+   { "no_proxy",
+      N_("NO Proxy"),
+      TOKEN_NOPROXY,
+      ENTRY_OPTION,
+      "",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "user_agent",
+      N_("User-Agent"),
+      TOKEN_USER_AGENT,
+      SELECT_OPTION,
+      "Dillo/%v",
+      (const gpointer)&user_agents,
+      NULL 
+   },
+   { "send_referer",
+      N_("Send referer header"),
+      TOKEN_SEND_REFERER,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "link_color",
+      N_("Link color"),
+      TOKEN_LINK_COLOR,
+      COLOR_OPTION,
+      "0x0000ff",
+      NULL,
+      NULL 
+   },
+   { "visited_color",
+      N_("Visited color"),
+      TOKEN_VISITED_COLOR,
+      COLOR_OPTION,
+      "0xa020f0",
+      NULL,
+      NULL 
+   },
+   { "bg_color",
+      N_("BackGround color"),
+      TOKEN_BG_COLOR,
+      COLOR_OPTION,
+      "0xffffff",
+      NULL,
+      NULL 
+   },
+   { "allow_white_bg",
+      N_("Allow white bg"),
+      TOKEN_ALLOW_WHITE_BG,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "force_my_colors",
+      N_("Force my colors"),
+      TOKEN_FORCE_MY_COLORS,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "contrast_visited_color",
+      N_("Contrast visited color"),
+      TOKEN_CONTRAST_VISITED_COLOR,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "text_color",
+      N_("Text color"),
+      TOKEN_TEXT_COLOR,
+      COLOR_OPTION,
+      "0x000000",
+      NULL,
+      NULL 
+   },
+   { "use_oblique",
+      N_("Use oblique"),
+      TOKEN_USE_OBLIQUE,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "start_page",
+      N_("Start Page"),
+      TOKEN_START_PAGE,
+      ENTRY_OPTION,
+      "about:splash",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "home",
+      N_("HOMEPAGE"),
+      TOKEN_HOME,
+      ENTRY_OPTION,
+      "http://www.google.com/",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "search_url",
+      N_("Search-engine's URL"),
+      TOKEN_SEARCH_URL,
+      ENTRY_OPTION,
+      "http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=%s",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "search_charset",
+      N_("Search-engine's charset"),
+      TOKEN_SEARCH_CHARSET,
+      ENTRY_OPTION,
+      "UTF-8",
+      (const gpointer)FALSE,
+      NULL 
+   },
+   { "show_tooltip",
+      N_("Show Tooltip"),
+      TOKEN_SHOW_TOOLTIP,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "panel_size",
+      N_("Panel Size"),
+      TOKEN_PANEL_SIZE,
+      SELECT_OPTION,
+      "tiny",
+      (const gpointer)&panel_sizes,
+      NULL 
+   },
+   { "small_icons",
+      N_("Small icons"),
+      TOKEN_SMALL_ICONS,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "limit_text_width",
+      N_("Limit text width"),
+      TOKEN_LIMIT_TEXT_WIDTH,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "limit_font_decoration",
+      N_("Limit font decoration"),
+      TOKEN_LIMIT_FONT_DECORATION,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "font_factor",
+      N_("Font factor"),
+      TOKEN_FONT_FACTOR,
+      SPIN_OPTION,
+      "1.0",
+      (const gpointer)&font_factor_option,
+      NULL 
+   },
+   { "font_sizes",
+      N_("Font Sizes"),
+      TOKEN_FONT_SIZES,
+      ENTRY_OPTION,
+      "10 12 14 16 18 20",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "w3c_plus_heuristics",
+      N_("W3C+heuristics"),
+      TOKEN_W3C_PLUS_HEURISTICS,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "use_dicache",
+      N_("Use dicache"),
+      TOKEN_USE_DICACHE,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "show_back",
+      N_("Show Back"),
+      TOKEN_SHOW_BACK,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_forw",
+      N_("Show Forw"),
+      TOKEN_SHOW_FORW,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_home",
+      N_("Show Home"),
+      TOKEN_SHOW_HOME,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_reload",
+      N_("Show Reload"),
+      TOKEN_SHOW_RELOAD,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_save",
+      N_("Show Save"),
+      TOKEN_SHOW_SAVE,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_stop",
+      N_("Show Stop"),
+      TOKEN_SHOW_STOP,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_bookmarks",
+      N_("Show Bookmarks"),
+      TOKEN_SHOW_BOOKMARKS,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_menubar",
+      N_("Show Menubar"),
+      TOKEN_SHOW_MENUBAR,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_clear_url",
+      N_("Show ClearURL"),
+      TOKEN_SHOW_CLEAR_URL,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_url",
+      N_("Show URL box"),
+      TOKEN_SHOW_URL,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_search",
+      N_("Show Web Search"),
+      TOKEN_SHOW_SEARCH,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "show_progress_box",
+      N_("Show Progress box"),
+      TOKEN_SHOW_PROGRESS_BOX,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "show_popup_navigation",
+      N_("Show Popup navigation"),
+      TOKEN_SHOW_POPUP_NAVIGATION,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "fullwindow_start",
+      N_("Fullwindow start"),
+      TOKEN_FULLWINDOW_START,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "transient_dialogs",
+      N_("Transient dialogs"),
+      TOKEN_TRANSIENT_DIALOGS,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "popup_dialogs",
+      N_("Popup dialogs"),
+      TOKEN_POPUP_DIALOGS,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "vw_aafontname",
+      N_("vw_aafontname"),
+      TOKEN_VW_AAFONT,
+      FONT_OPTION,
+      "*",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "fw_aafontname",
+      N_("fw_aafontname"),
+      TOKEN_FW_AAFONT,
+      FONT_OPTION,
+      "*",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "vw_fontname",
+      N_("vw_fontname"),
+      TOKEN_VW_FONT,
+      FONT_OPTION,
+      "*-gothic",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "fw_fontname",
+      N_("fw_fontname"),
+      TOKEN_FW_FONT,
+      FONT_OPTION,
+      "*-gothic",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "generate_submit",
+      N_("Generate submit"),
+      TOKEN_GENERATE_SUBMIT,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "enterpress_forces_submit",
+      N_("Enterpress forces submit"),
+      TOKEN_ENTERPRESS_FORCES_SUBMIT,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "show_msg",
+      N_("Show debugging messsages"),
+      TOKEN_SHOW_MSG,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "show_extra_warnings",
+      N_("Show Extra Warnings"),
+      TOKEN_SHOW_EXTRA_WARNINGS,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "focus_location_on_new",
+      N_("Focus location on new"),
+      TOKEN_FOCUS_LOCATION_ON_NEW,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "accept_language",
+      N_("Accept Language"),
+      TOKEN_ACCEPT_LANGUAGE,
+      ENTRY_OPTION,
+      "en-us",
+      (const gpointer)TRUE,
+      NULL
+   },
+   { "accept_language",
+      N_("Accept Language"),
+      TOKEN_ACCEPT_LANGUAGE,
+      ENTRY_OPTION,
+      "en-us, ja",
+      (const gpointer)TRUE,
+      NULL
+   },
+#ifndef DISABLE_TABS
+   { "tab_load_in_background",
+      N_("Tab load in background"),
+      TOKEN_TAB_LOAD_IN_BACKGROUND,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "tab_close_middle_click",
+      N_("Tab close middle click"),
+      TOKEN_TAB_CLOSE_MIDDLE_CLICK,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "tab_instead_of_window",
+      N_("Tab instead of window"),
+      TOKEN_TAB_INSTEAD_OF_WINDOW,
+      CHECK_OPTION,
+      "YES",
+      FALSE,
+      NULL 
+   },
+   { "tab_bar_show_fullscreen",
+      N_("Tab bar show fullscreen"),
+      TOKEN_TAB_BAR_SHOW_FULLSCREEN,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "tab_bar_show_single_tab",
+      N_("Tab bar show single tab"),
+      TOKEN_TAB_BAR_SHOW_SINGLE_TAB,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "tab_bar_scroller",
+      N_("Tab bar scroller"),
+      TOKEN_TAB_BAR_SCROLLER,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "tab_bar_homogeneous",
+      N_("Tab bar homogeneous"),
+      TOKEN_TAB_BAR_HOMOGENEOUS,
+      CHECK_OPTION,
+      "YES",
+      NULL,
+      NULL 
+   },
+   { "tab_title_compress",
+      N_("Tab title compress"),
+      TOKEN_TAB_TITLE_COMPRESS,
+      CHECK_OPTION,
+      "NO",
+      NULL,
+      NULL 
+   },
+   { "compress_vowels",
+      N_("Compress vowels"),
+      TOKEN_COMPRESS_VOWELS,
+      ENTRY_OPTION,
+      "aeiouyAEIOUY",
+      (const gpointer)TRUE,
+      NULL 
+   },
+   { "compress_common_prefixes",
+      N_("Compress_common_prefixes"),
+      TOKEN_COMPRESS_COMMON_PREFIXES,
+      ENTRY_OPTION,
+      "index of ;re: ;fwd: ;www.;welcome to ;the ",
+      (const gpointer)TRUE,
+      NULL 
+   },
+#endif /* !DISABLE_TABS */
+   { "DEFAULT",
+      N_("Default"),
+      TOKEN_COOKIE_DEFAULT,
+      COOKIE,
+      "ACCEPT_SESSION",
+      (const gpointer)&cookie_rules,
+      NULL 
+   },
+   { NULL,
+      NULL,
+      TOKEN_COOKIE,
+      COOKIE,
+      "ACCEPT_SESSION",
+      (const gpointer)&cookie_rules,
+      NULL 
+   },
+
+};
+
+
+static guint token2num(guint tkn) {
+   gint i;
+   for (i = 0; i < N_TOKENS && symbols[i].token != tkn; i++);
+   return i;
+}
+
+guint name2token(const gchar *name) {
+   gint i;
+   for (i = 0; i < N_TOKENS; i++)
+      if (symbols[i].name && strcmp(symbols[i].name, name) == 0)
+         return (const guint)symbols[i].token;
+   return 0;
+}
+
+const gchar *get_token_name(guint tkn) {
+   return symbols[token2num(tkn)].name;
+}
+
+const gchar *get_token_label(guint tkn) {
+   return symbols[token2num(tkn)].label;
+}
+
+guint get_token_type(guint tkn) {
+   return symbols[token2num(tkn)].type;
+}
+
+gpointer get_token_value(guint tkn) {
+   return (const gpointer)symbols[token2num(tkn)].value;
+}
+
+gpointer get_token_option(guint tkn) {
+   return symbols[token2num(tkn)].option;
+}
+
+void set_token_object(guint tkn, Option *obj) {
+   symbols[token2num(tkn)].object = obj;
+}
+
+Option *get_token_object(guint tkn) {
+   return symbols[token2num(tkn)].object;
+}
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/config/dillocfg_token.h dillo-0.8.6-i18n-misc-20060709/config/dillocfg_token.h
--- dillo-0.8.6/config/dillocfg_token.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config/dillocfg_token.h	2006-05-16 01:21:16.000000000 +0900
@@ -0,0 +1,103 @@
+#ifndef __DILLOCFG_GTK_TOKEN_H__
+#define __DILLOCFG_GTK_TOKEN_H__
+
+#include <gtk/gtk.h>
+
+#include "../config.h"
+#include "dillocfg_option.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+   /* define enumeration values to be returned for specific symbols */
+   typedef enum {
+      TOKEN_NULL = 0,
+      TOKEN_GEOMETRY,
+      TOKEN_PROXY,
+      TOKEN_PROXYUSER,
+      TOKEN_NOPROXY,
+      TOKEN_USER_AGENT,
+      TOKEN_SEND_REFERER,
+      TOKEN_LINK_COLOR,
+      TOKEN_VISITED_COLOR,
+      TOKEN_BG_COLOR,
+      TOKEN_ALLOW_WHITE_BG,
+      TOKEN_FORCE_MY_COLORS,
+      TOKEN_CONTRAST_VISITED_COLOR,
+      TOKEN_TEXT_COLOR,
+      TOKEN_USE_OBLIQUE,
+      TOKEN_START_PAGE,
+      TOKEN_HOME,
+      TOKEN_SEARCH_URL,
+      TOKEN_SEARCH_CHARSET,
+      TOKEN_PANEL_SIZE,
+      TOKEN_SMALL_ICONS,
+      TOKEN_FONT_FACTOR,
+      TOKEN_FONT_SIZES,
+      TOKEN_SHOW_TOOLTIP,
+      TOKEN_LIMIT_TEXT_WIDTH,
+      TOKEN_LIMIT_FONT_DECORATION,
+      TOKEN_W3C_PLUS_HEURISTICS,
+      TOKEN_USE_DICACHE,
+      TOKEN_SHOW_BACK,
+      TOKEN_SHOW_FORW,
+      TOKEN_SHOW_HOME,
+      TOKEN_SHOW_RELOAD,
+      TOKEN_SHOW_SAVE,
+      TOKEN_SHOW_STOP,
+      TOKEN_SHOW_BOOKMARKS,
+      TOKEN_SHOW_MENUBAR,
+      TOKEN_SHOW_CLEAR_URL,
+      TOKEN_SHOW_URL,
+      TOKEN_SHOW_SEARCH,
+      TOKEN_SHOW_PROGRESS_BOX,
+      TOKEN_SHOW_POPUP_NAVIGATION,
+      TOKEN_FULLWINDOW_START,
+      TOKEN_TRANSIENT_DIALOGS,
+      TOKEN_POPUP_DIALOGS,
+      TOKEN_FW_FONT,
+      TOKEN_VW_FONT,
+      TOKEN_FW_AAFONT,
+      TOKEN_VW_AAFONT,
+      TOKEN_GENERATE_SUBMIT,
+      TOKEN_ENTERPRESS_FORCES_SUBMIT,
+      TOKEN_SHOW_MSG,
+      TOKEN_SHOW_EXTRA_WARNINGS,
+      TOKEN_FOCUS_LOCATION_ON_NEW,
+      TOKEN_ACCEPT_LANGUAGE,
+#ifndef DISABLE_TABS
+      TOKEN_TAB_LOAD_IN_BACKGROUND,
+      TOKEN_TAB_INSTEAD_OF_WINDOW,
+      TOKEN_TAB_BAR_SHOW_FULLSCREEN,
+      TOKEN_TAB_BAR_SHOW_SINGLE_TAB,
+      TOKEN_TAB_BAR_SCROLLER,
+      TOKEN_TAB_BAR_HOMOGENEOUS,
+      TOKEN_TAB_TITLE_COMPRESS,
+      TOKEN_TAB_CLOSE_MIDDLE_CLICK,
+      TOKEN_COMPRESS_VOWELS,
+      TOKEN_COMPRESS_COMMON_PREFIXES,
+#endif /* !DISABLE_TABS */
+      TOKEN_COOKIE_DEFAULT,
+      TOKEN_COOKIE,
+
+      TOKEN_LAST
+   } TokenType;
+#define N_TOKENS TOKEN_LAST
+
+   guint    name2token(const gchar *name);
+   const gchar   *get_token_name(guint tkn);
+   const gchar   *get_token_label(guint tkn);
+   guint    get_token_type(guint tkn);
+   gpointer get_token_value(guint tkn);
+   gpointer get_token_option(guint tkn);
+   Option        *get_token_object(guint tkn);
+   void           set_token_object(guint tkn, Option *obj);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /* __DILLOCFG_GTK_TOKEN_H__ */
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/config.guess dillo-0.8.6-i18n-misc-20060709/config.guess
--- dillo-0.8.6/config.guess	2005-03-22 16:17:05.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config.guess	2006-05-16 01:21:07.000000000 +0900
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
-timestamp='2005-02-10'
+timestamp='2004-03-12'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -53,7 +53,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -106,7 +106,6 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdi
 : ${TMPDIR=/tmp} ;
  { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
 dummy=$tmp/dummy ;
 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
@@ -203,15 +202,15 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
     amiga:OpenBSD:*:*)
 	echo m68k-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
+    arc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
     cats:OpenBSD:*:*)
 	echo arm-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
     hp300:OpenBSD:*:*)
 	echo m68k-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
-    luna88k:OpenBSD:*:*)
-    	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
     mac68k:OpenBSD:*:*)
 	echo m68k-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
@@ -227,12 +226,21 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
     mvmeppc:OpenBSD:*:*)
 	echo powerpc-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
+    pegasos:OpenBSD:*:*)
+	echo powerpc-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    pmax:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
     sgi:OpenBSD:*:*)
-	echo mips64-unknown-openbsd${UNAME_RELEASE}
+	echo mipseb-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
     sun3:OpenBSD:*:*)
 	echo m68k-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
+    wgrisc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
     *:OpenBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
@@ -245,6 +253,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
     *:MirBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
 	exit 0 ;;
+    *:MicroBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE}
+	exit 0 ;;
     alpha:OSF1:*:*)
 	case $UNAME_RELEASE in
 	*4.0)
@@ -319,9 +330,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
     *:OS/390:*:*)
 	echo i370-ibm-openedition
 	exit 0 ;;
-    *:z/VM:*:*)
-	echo s390-ibm-zvmoe
-	exit 0 ;;
     *:OS400:*:*)
         echo powerpc-ibm-os400
 	exit 0 ;;
@@ -342,10 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
     NILE*:*:*:dcosx)
 	echo pyramid-pyramid-svr4
 	exit 0 ;;
-    DRS?6000:unix:4.0:6*)
-	echo sparc-icl-nx6
-	exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+    DRS?6000:UNIX_SV:4.2*:7*)
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7 && exit 0 ;;
 	esac ;;
@@ -755,7 +760,7 @@ EOF
 	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 	exit 0 ;;
     *:UNICOS/mp:*:*)
-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
 	exit 0 ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
@@ -778,7 +783,21 @@ EOF
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
 	exit 0 ;;
     *:FreeBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	# Determine whether the default compiler uses glibc.
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#if __GLIBC__ >= 2
+	LIBC=gnu
+	#else
+	LIBC=
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	# GNU/KFreeBSD systems have a "k" prefix to indicate we are using
+	# FreeBSD's kernel, but not the complete OS.
+	case ${LIBC} in gnu) kernel_only='k' ;; esac
+	echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
 	exit 0 ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
@@ -789,8 +808,8 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit 0 ;;
-    x86:Interix*:[34]*)
-	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+    x86:Interix*:3*)
+	echo i586-pc-interix3
 	exit 0 ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
@@ -804,9 +823,6 @@ EOF
     i*:UWIN*:*)
 	echo ${UNAME_MACHINE}-pc-uwin
 	exit 0 ;;
-    amd64:CYGWIN*:*:*)
-	echo x86_64-unknown-cygwin
-	exit 0 ;;
     p*:CYGWIN*:*)
 	echo powerpcle-unknown-cygwin
 	exit 0 ;;
@@ -827,15 +843,6 @@ EOF
     arm*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit 0 ;;
-    cris:Linux:*:*)
-	echo cris-axis-linux-gnu
-	exit 0 ;;
-    crisv32:Linux:*:*)
-	echo crisv32-axis-linux-gnu
-	exit 0 ;;
-    frv:Linux:*:*)
-    	echo frv-unknown-linux-gnu
-	exit 0 ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit 0 ;;
@@ -917,9 +924,6 @@ EOF
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
 	exit 0 ;;
-    sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
     sh*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit 0 ;;
@@ -977,9 +981,6 @@ EOF
 	LIBC=gnuaout
 	#endif
 	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
 	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
@@ -1082,9 +1083,9 @@ EOF
     M680?0:D-NIX:5.3:*)
 	echo m68k-diab-dnix
 	exit 0 ;;
-    M68*:*:R3V[5678]*:*)
+    M68*:*:R3V[567]*:*)
 	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
 	OS_REL=''
 	test -r /etc/.relid \
 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -1182,10 +1183,9 @@ EOF
 	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
 	exit 0 ;;
     *:Darwin:*:*)
-	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
+	case `uname -p` in
 	    *86) UNAME_PROCESSOR=i686 ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
+	    powerpc) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 	exit 0 ;;
@@ -1200,9 +1200,6 @@ EOF
     *:QNX:*:4*)
 	echo i386-pc-qnx
 	exit 0 ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
-	echo nse-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
     NSR-?:NONSTOP_KERNEL:*:*)
 	echo nsr-tandem-nsk${UNAME_RELEASE}
 	exit 0 ;;
@@ -1250,16 +1247,6 @@ EOF
     *:DragonFly:*:*)
 	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
 	exit 0 ;;
-    *:*VMS:*:*)
-    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-	case "${UNAME_MACHINE}" in
-	    A*) echo alpha-dec-vms && exit 0 ;;
-	    I*) echo ia64-dec-vms && exit 0 ;;
-	    V*) echo vax-dec-vms && exit 0 ;;
-	esac ;;
-    *:XENIX:*:SysV)
-	echo i386-pc-xenix
-	exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
diff -pruN dillo-0.8.6/config.h.in dillo-0.8.6-i18n-misc-20060709/config.h.in
--- dillo-0.8.6/config.h.in	2006-04-27 01:06:37.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config.h.in	2006-05-16 01:21:07.000000000 +0900
@@ -1,23 +1,40 @@
 /* config.h.in.  Generated from configure.in by autoheader.  */
 
+/* Enable SSL Processing */
+#undef DILLO_SSL
+
 /* Enable GIF images */
 #undef ENABLE_GIF
 
 /* Enable JPEG images */
 #undef ENABLE_JPEG
 
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+#undef ENABLE_NLS
+
 /* Enable PNG images */
 #undef ENABLE_PNG
 
 /* Enable SSL support */
 #undef ENABLE_SSL
 
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+   */
+#undef HAVE_DCGETTEXT
+
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
 /* Define to 1 if you have the `gethostbyname' function. */
 #undef HAVE_GETHOSTBYNAME
 
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT
+
+/* Define if you have the iconv() function. */
+#undef HAVE_ICONV
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
@@ -30,9 +47,18 @@
 /* Define to 1 if you have the `socket' library (-lsocket). */
 #undef HAVE_LIBSOCKET
 
+/* Define to 1 if you have the `ssl' library (-lssl). */
+#undef HAVE_LIBSSL
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
+/* Define to 1 if you have the <openssl/err.h> header file. */
+#undef HAVE_OPENSSL_ERR_H
+
+/* Define to 1 if you have the <openssl/ssl.h> header file. */
+#undef HAVE_OPENSSL_SSL_H
+
 /* Define to 1 if you have the <png.h> header file. */
 #undef HAVE_PNG_H
 
diff -pruN dillo-0.8.6/config.rpath dillo-0.8.6-i18n-misc-20060709/config.rpath
--- dillo-0.8.6/config.rpath	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config.rpath	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,513 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+#   Copyright 1996-2002 Free Software Foundation, Inc.
+#   Taken from GNU libtool, 2001
+#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+#   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.
+#
+#   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.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shlibext=
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+wl=
+if test "$GCC" = yes; then
+  wl='-Wl,'
+else
+  case "$host_os" in
+    aix3* | aix4* | aix5*)
+      wl='-Wl,'
+      ;;
+    hpux9* | hpux10* | hpux11*)
+      wl='-Wl,'
+      ;;
+    irix5* | irix6*)
+      wl='-Wl,'
+      ;;
+    linux*)
+      echo '__INTEL_COMPILER' > conftest.$ac_ext
+      if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null
+      then
+        :
+      else
+        # Intel icc
+        wl='-Qoption,ld,'
+      fi
+      ;;
+    osf3* | osf4* | osf5*)
+      wl='-Wl,'
+      ;;
+    solaris*)
+      wl='-Wl,'
+      ;;
+    sunos4*)
+      wl='-Qoption ld '
+      ;;
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      if test "x$host_vendor" = xsni; then
+        wl='-LD'
+      else
+        wl='-Wl,'
+      fi
+      ;;
+  esac
+fi
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+  case "$host_os" in
+    aix3* | aix4* | aix5*)
+      # On AIX, the GNU linker is very broken
+      ld_shlibs=no
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can use
+      # them.
+      ld_shlibs=no
+      ;;
+    beos*)
+      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    cygwin* | mingw* | pw32*)
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+        ld_shlibs=no
+      elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    sunos4*)
+      hardcode_direct=yes
+      ;;
+    *)
+      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+  esac
+  if test "$ld_shlibs" = yes; then
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+  fi
+else
+  case "$host_os" in
+    aix3*)
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes; then
+        # Neither direct hardcoding nor static linking is supported with a
+        # broken collect2.
+        hardcode_direct=unsupported
+      fi
+      ;;
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+        # On IA64, the linker does run time linking by default, so we don't
+        # have to do anything special.
+        aix_use_runtimelinking=no
+      else
+        aix_use_runtimelinking=no
+        # Test if we are trying to use run time linking or normal
+        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+        # need to do runtime linking.
+        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+          for ld_flag in $LDFLAGS; do
+            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+              aix_use_runtimelinking=yes
+              break
+            fi
+          done
+        esac
+      fi
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      if test "$GCC" = yes; then
+        case $host_os in aix4.[012]|aix4.[012].*)
+          collect2name=`${CC} -print-prog-name=collect2`
+          if test -f "$collect2name" && \
+            strings "$collect2name" | grep resolve_lib_name >/dev/null
+          then
+            # We have reworked collect2
+            hardcode_direct=yes
+          else
+            # We have old collect2
+            hardcode_direct=unsupported
+            hardcode_minus_L=yes
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_libdir_separator=
+          fi
+        esac
+      fi
+      if test "$aix_use_runtimelinking" = yes; then
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+      else
+        if test "$host_cpu" = ia64; then
+          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+        else
+          hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+        fi
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      libext=lib
+      ;;
+    darwin* | rhapsody*)
+      hardcode_direct=yes
+      ;;
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+    freebsd2.2*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    freebsd2*)
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    freebsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    hpux9* | hpux10* | hpux11*)
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+      hardcode_minus_L=yes # Not in the search PATH, but as the default
+                           # location of the library.
+      ;;
+    irix5* | irix6*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    netbsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    newsos6)
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    openbsd*)
+      hardcode_direct=yes
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      else
+        case "$host_os" in
+          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+            hardcode_libdir_flag_spec='-R$libdir'
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+            ;;
+        esac
+      fi
+      ;;
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      ;;
+    osf3*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    osf4* | osf5*)
+      if test "$GCC" = yes; then
+        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+        # Both cc and cxx compiler support -rpath directly
+        hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      ;;
+    sunos4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    sysv4)
+      if test "x$host_vendor" = xsno; then
+        hardcode_direct=yes # is this really true???
+      else
+        hardcode_direct=no # Motorola manual says yes, but my tests say they lie
+      fi
+      ;;
+    sysv4.3*)
+      ;;
+    sysv5*)
+      hardcode_libdir_flag_spec=
+      ;;
+    uts4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    dgux*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+        ld_shlibs=yes
+      fi
+      ;;
+    sysv4.2uw2*)
+      hardcode_direct=yes
+      hardcode_minus_L=no
+      ;;
+    sysv5uw7* | unixware7*)
+      ;;
+    *)
+      ld_shlibs=no
+      ;;
+  esac
+fi
+
+# Check dynamic linker characteristics
+libname_spec='lib$name'
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+case "$host_os" in
+  aix3*)
+    shlibext=so
+    ;;
+  aix4* | aix5*)
+    shlibext=so
+    ;;
+  amigaos*)
+    shlibext=ixlibrary
+    ;;
+  beos*)
+    shlibext=so
+    ;;
+  bsdi4*)
+    shlibext=so
+    sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+    sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+    ;;
+  cygwin* | mingw* | pw32*)
+    case $GCC,$host_os in
+      yes,cygwin*)
+        shlibext=dll.a
+        ;;
+      yes,mingw*)
+        shlibext=dll
+        sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
+        ;;
+      yes,pw32*)
+        shlibext=dll
+        ;;
+      *)
+        shlibext=dll
+        ;;
+    esac
+    ;;
+  darwin* | rhapsody*)
+    shlibext=dylib
+    ;;
+  freebsd1*)
+    ;;
+  freebsd*)
+    shlibext=so
+    ;;
+  gnu*)
+    shlibext=so
+    ;;
+  hpux9* | hpux10* | hpux11*)
+    shlibext=sl
+    ;;
+  irix5* | irix6*)
+    shlibext=so
+    case "$host_os" in
+      irix5*)
+        libsuff= shlibsuff=
+        ;;
+      *)
+        case $LD in
+          *-32|*"-32 ") libsuff= shlibsuff= ;;
+          *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;;
+          *-64|*"-64 ") libsuff=64 shlibsuff=64 ;;
+          *) libsuff= shlibsuff= ;;
+        esac
+        ;;
+    esac
+    sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+    sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+    ;;
+  linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+    ;;
+  linux-gnu*)
+    shlibext=so
+    ;;
+  netbsd*)
+    shlibext=so
+    ;;
+  newsos6)
+    shlibext=so
+    ;;
+  openbsd*)
+    shlibext=so
+    ;;
+  os2*)
+    libname_spec='$name'
+    shlibext=dll
+    ;;
+  osf3* | osf4* | osf5*)
+    shlibext=so
+    sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+    sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+    ;;
+  sco3.2v5*)
+    shlibext=so
+    ;;
+  solaris*)
+    shlibext=so
+    ;;
+  sunos4*)
+    shlibext=so
+    ;;
+  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    shlibext=so
+    case "$host_vendor" in
+      motorola)
+        sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+        ;;
+    esac
+    ;;
+  uts4*)
+    shlibext=so
+    ;;
+  dgux*)
+    shlibext=so
+    ;;
+  sysv4*MP*)
+    if test -d /usr/nec; then
+      shlibext=so
+    fi
+    ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec="$escaped_sys_lib_search_path_spec"
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec="$escaped_sys_lib_dlsearch_path_spec"
+
+EOF
diff -pruN dillo-0.8.6/config.sub dillo-0.8.6-i18n-misc-20060709/config.sub
--- dillo-0.8.6/config.sub	2005-03-22 16:17:05.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/config.sub	2006-05-16 01:21:07.000000000 +0900
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
-timestamp='2005-02-10'
+timestamp='2004-03-12'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -70,7 +70,7 @@ Report bugs and patches to <config-patch
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -145,7 +145,7 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray)
+	-apple | -axis)
 		os=
 		basic_machine=$1
 		;;
@@ -237,7 +237,7 @@ case $basic_machine in
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
-	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+	| m32r | m32rle | m68000 | m68k | m88k | mcore \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -264,10 +264,10 @@ case $basic_machine in
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
 	| strongarm \
-	| tahoe | thumb | tic4x | tic80 | tron \
+	| tahoe | thumb | tic80 | tron \
 	| v850 | v850e \
 	| we32k \
-	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| x86 | xscale | xstormy16 | xtensa \
 	| z8k)
 		basic_machine=$basic_machine-unknown
 		;;
@@ -300,7 +300,7 @@ case $basic_machine in
 	| avr-* \
 	| bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | craynv-* | cydra-* \
+	| clipper-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
 	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
@@ -310,7 +310,7 @@ case $basic_machine in
 	| ip2k-* | iq2000-* \
 	| m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| m88110-* | m88k-* | mcore-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -326,9 +326,8 @@ case $basic_machine in
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
 	| mipstx39-* | mipstx39el-* \
-	| mmix-* \
 	| msp430-* \
-	| none-* | np1-* | ns16k-* | ns32k-* \
+	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
@@ -343,8 +342,8 @@ case $basic_machine in
 	| tron-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
+	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+	| xtensa-* \
 	| ymp-* \
 	| z8k-*)
 		;;
@@ -446,10 +445,6 @@ case $basic_machine in
 		basic_machine=j90-cray
 		os=-unicos
 		;;
-	craynv)
-		basic_machine=craynv-cray
-		os=-unicosmp
-		;;
 	cr16c)
 		basic_machine=cr16c-unknown
 		os=-elf
@@ -457,9 +452,6 @@ case $basic_machine in
 	crds | unos)
 		basic_machine=m68k-crds
 		;;
-	crisv32 | crisv32-* | etraxfs*)
-		basic_machine=crisv32-axis
-		;;
 	cris | cris-* | etrax*)
 		basic_machine=cris-axis
 		;;
@@ -489,10 +481,6 @@ case $basic_machine in
 		basic_machine=m88k-motorola
 		os=-sysv3
 		;;
-	djgpp)
-		basic_machine=i586-pc
-		os=-msdosdjgpp
-		;;
 	dpx20 | dpx20-*)
 		basic_machine=rs6000-bull
 		os=-bosx
@@ -671,6 +659,10 @@ case $basic_machine in
 	mips3*)
 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
 		;;
+	mmix*)
+		basic_machine=mmix-knuth
+		os=-mmixware
+		;;
 	monitor)
 		basic_machine=m68k-rom68k
 		os=-coff
@@ -751,6 +743,10 @@ case $basic_machine in
 	np1)
 		basic_machine=np1-gould
 		;;
+	nv1)
+		basic_machine=nv1-cray
+		os=-unicosmp
+		;;
 	nsr-tandem)
 		basic_machine=nsr-tandem
 		;;
@@ -797,24 +793,18 @@ case $basic_machine in
 	pentiumpro | p6 | 6x86 | athlon | athlon_*)
 		basic_machine=i686-pc
 		;;
-	pentiumii | pentium2 | pentiumiii | pentium3)
+	pentiumii | pentium2)
 		basic_machine=i686-pc
 		;;
-	pentium4)
-		basic_machine=i786-pc
-		;;
 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
 		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
 	pentiumpro-* | p6-* | 6x86-* | athlon-*)
 		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+	pentiumii-* | pentium2-*)
 		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
-	pentium4-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
 	pn)
 		basic_machine=pn-gould
 		;;
@@ -873,10 +863,6 @@ case $basic_machine in
 	sb1el)
 		basic_machine=mipsisa64sb1el-unknown
 		;;
-	sei)
-		basic_machine=mips-sei
-		os=-seiux
-		;;
 	sequent)
 		basic_machine=i386-sequent
 		;;
@@ -884,9 +870,6 @@ case $basic_machine in
 		basic_machine=sh-hitachi
 		os=-hms
 		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
 	sparclite-wrs | simso-wrs)
 		basic_machine=sparclite-wrs
 		os=-vxworks
@@ -961,6 +944,10 @@ case $basic_machine in
 		basic_machine=t90-cray
 		os=-unicos
 		;;
+        tic4x | c4x*)
+		basic_machine=tic4x-unknown
+		os=-coff
+		;;
 	tic54x | c54x*)
 		basic_machine=tic54x-unknown
 		os=-coff
@@ -1033,10 +1020,6 @@ case $basic_machine in
 		basic_machine=hppa1.1-winbond
 		os=-proelf
 		;;
-	xbox)
-		basic_machine=i686-pc
-		os=-mingw32
-		;;
 	xps | xps100)
 		basic_machine=xps100-honeywell
 		;;
@@ -1067,9 +1050,6 @@ case $basic_machine in
 	romp)
 		basic_machine=romp-ibm
 		;;
-	mmix)
-		basic_machine=mmix-knuth
-		;;
 	rs6000)
 		basic_machine=rs6000-ibm
 		;;
@@ -1202,9 +1182,6 @@ case $os in
 	-mac*)
 		os=`echo $os | sed -e 's|mac|macos|'`
 		;;
-	-linux-dietlibc)
-		os=-linux-dietlibc
-		;;
 	-linux*)
 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
 		;;
@@ -1305,9 +1282,6 @@ case $os in
 	-kaos*)
 		os=-kaos
 		;;
-	-zvmoe)
-		os=-zvmoe
-		;;
 	-none)
 		;;
 	*)
@@ -1339,9 +1313,6 @@ case $basic_machine in
 	arm*-semi)
 		os=-aout
 		;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
 	# This must come before the *-dec entry.
 	pdp10-*)
 		os=-tops20
@@ -1388,9 +1359,6 @@ case $basic_machine in
 	*-ibm)
 		os=-aix
 		;;
-    	*-knuth)
-		os=-mmixware
-		;;
 	*-wec)
 		os=-proelf
 		;;
diff -pruN dillo-0.8.6/configure dillo-0.8.6-i18n-misc-20060709/configure
--- dillo-0.8.6/configure	2006-04-27 01:06:45.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/configure	2006-05-16 01:21:07.000000000 +0900
@@ -309,7 +309,7 @@ ac_includes_default="\
 # 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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DLGUI_TRUE DLGUI_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE GLIB_CONFIG GLIB_CFLAGS GLIB_LIBS GTK_CONFIG GTK_CFLAGS GTK_LIBS EGREP LIBJPEG_LIBS LIBJPEG_LDFLAGS LIBJPEG_CPPFLAGS LIBPNG_LIBS LIBPNG_CFLAGS LIBZ_LIBS LIBSSL_LIBS LIBPTHREAD_LIBS LIBPTHREAD_LDFLAGS LIBFLTK_CXXFLAGS LIBFLTK_LIBS src doc bin util lib LIBOBJS LTLIBOBJS'
+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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot DLGUI_TRUE DLGUI_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE USE_NLS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB localedir GLIB_CONFIG GLIB_CFLAGS GLIB_LIBS GTK_CONFIG GTK_CFLAGS GTK_LIBS EGREP XFT_CONFIG PKG_CONFIG LIBJPEG_LIBS LIBJPEG_LDFLAGS LIBJPEG_CPPFLAGS LIBPNG_LIBS LIBPNG_CFLAGS LIBZ_LIBS LIBSSL_LIBS LIBPTHREAD_LIBS LIBPTHREAD_LDFLAGS LIBFLTK_CXXFLAGS LIBFLTK_LIBS src doc bin util lib LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -862,6 +862,8 @@ Optional Features:
   --enable-gprof          Try to compile and run with profiling enabled
   --enable-insure         Try to compile and run with Insure++
   --enable-ansi           Try to compile and run with ANSI flags
+  --disable-tabs          Don't compile support for tabs
+  --disable-anti-alias    Don't compile support for anti-alias
   --enable-ipv6           Build with support for IPv6
   --enable-rtfl           Build with rtfl messages
   --disable-cookies       Don't compile support for cookies
@@ -871,8 +873,11 @@ Optional Features:
   --disable-ssl           Disable ssl features (eg. https)
   --disable-dlgui         Disable FLTK2 GUI for downloads
   --disable-threaded-dns  Disable the advantage of a reentrant resolver library
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-meta-refresh   Allow meta refresh
+  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors
+  --disable-rpath         do not hardcode runtime library paths
+  --disable-nls           do not use Native Language Support
   --disable-glibtest       Do not try to compile and run a test GLIB program
   --disable-gtktest       Do not try to compile and run a test GTK program
 
@@ -881,6 +886,11 @@ Optional Packages:
   --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-gnu-ld           assume the C compiler uses GNU ld default=no
+  --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib
+  --without-libiconv-prefix     don't search for libiconv in includedir and libdir
+  --with-libintl-prefix=DIR  search for libintl in DIR/include and DIR/lib
+  --without-libintl-prefix     don't search for libintl in includedir and libdir
   --with-glib-prefix=PFX   Prefix where GLIB is installed (optional)
   --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)
   --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)
@@ -1444,7 +1454,7 @@ test -n "$target_alias" &&
     NONENONEs,x,x, &&
   program_prefix=${target_alias}-
 
-am__api_version="1.9"
+am__api_version="1.7"
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
@@ -1582,6 +1592,7 @@ _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`
 
@@ -1595,39 +1606,6 @@ else
 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # We used to keeping the `.' as first argument, in order to
-  # allow $(mkdir_p) to be used without argument.  As in
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.  However this is wrong
-  # for two reasons:
-  #  1. if the package is installed by a user who cannot write `.'
-  #     make install will fail,
-  #  2. the above comment should most certainly read
-  #     $(mkdir_p) $(DESTDIR)$(somedir)
-  #     so it does not work when $(somedir) is undefined and
-  #     $(DESTDIR) is not.
-  #  To support the latter case, we have to write
-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
-  #  so the `.' trick is pointless.
-  mkdir_p='mkdir -p --'
-else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
-  done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
-  else
-    mkdir_p='$(install_sh) -d'
-  fi
-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.
@@ -1706,7 +1684,7 @@ else
 fi
 rmdir .tst 2>/dev/null
 
-# test to see if srcdir already configured
+ # 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
@@ -1726,7 +1704,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=dillo
- VERSION=0.8.6
+ VERSION=0.8.6-i18n-misc
 
 
 cat >>confdefs.h <<_ACEOF
@@ -1754,6 +1732,9 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_ru
 
 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
@@ -1846,13 +1827,6 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(inst
 
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
 
 
 
@@ -1901,6 +1875,20 @@ if test "${enable_ansi+set}" = set; then
 else
   enable_ansi=no
 fi;
+# Check whether --enable-tabs or --disable-tabs was given.
+if test "${enable_tabs+set}" = set; then
+  enableval="$enable_tabs"
+
+else
+  enable_tabs=yes
+fi;
+# Check whether --enable-anti_alias or --disable-anti_alias was given.
+if test "${enable_anti_alias+set}" = set; then
+  enableval="$enable_anti_alias"
+
+else
+  enable_anti_alias=yes
+fi;
 # Check whether --enable-ipv6 or --disable-ipv6 was given.
 if test "${enable_ipv6+set}" = set; then
   enableval="$enable_ipv6"
@@ -1909,7 +1897,9 @@ fi;
 # Check whether --enable-rtfl or --disable-rtfl was given.
 if test "${enable_rtfl+set}" = set; then
   enableval="$enable_rtfl"
-  enable_rtfl=yes
+
+else
+  enable_rtfl=no
 fi;
 # Check whether --enable-cookies or --disable-cookies was given.
 if test "${enable_cookies+set}" = set; then
@@ -1970,6 +1960,13 @@ else
   DLGUI_FALSE=
 fi
 
+# Check whether --enable-meta_refresh or --disable-meta_refresh was given.
+if test "${enable_meta_refresh+set}" = set; then
+  enableval="$enable_meta_refresh"
+
+else
+  enable_meta_refresh=no
+fi;
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -3007,9 +3004,7 @@ else
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      : > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
@@ -3037,14 +3032,9 @@ else
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+      # (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored.
+      if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
         am_cv_CC_dependencies_compiler_type=$depmode
         break
       fi
@@ -3075,101 +3065,128 @@ else
 fi
 
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-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
-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:$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 "$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
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+  am_cv_prog_cc_stdc=no
+ac_save_CC="$CC"
+# 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
-  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
+  CC="$ac_save_CC $ac_arg"
+  cat >conftest.$ac_ext <<_ACEOF
+/* 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;
 
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+int
+main ()
+{
+
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (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); }; } &&
+	 { 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
+  am_cv_prog_cc_stdc="$ac_arg"; break
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-if test -z "$ac_cv_prog_CC"; then
-  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:$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
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 done
+CC="$ac_save_CC"
 
 fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
 
-  CC=$ac_ct_CC
+if test -z "$am_cv_prog_cc_stdc"; then
+  echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6
 else
-  CC="$ac_cv_prog_CC"
+  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
+  x|xno) ;;
+  *) CC="$CC $am_cv_prog_cc_stdc" ;;
+esac
 
-if test -z "$CC"; then
-  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
+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:$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
+if test "${ac_cv_prog_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -3178,7 +3195,7 @@ do
   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"
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -3187,27 +3204,27 @@ done
 
 fi
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
 fi
-if test -z "$ac_cv_prog_CC"; then
-  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
+if test -z "$ac_cv_prog_RANLIB"; then
+  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:$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
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -3216,97 +3233,281 @@ do
   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"
+    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=":"
 fi
 fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-  CC=$ac_ct_CC
+  RANLIB=$ac_ct_RANLIB
 else
-  CC="$ac_cv_prog_CC"
+  RANLIB="$ac_cv_prog_RANLIB"
 fi
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+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:$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
+  CPP=
 fi
-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:$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
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-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
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      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
+/* 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:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&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
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* 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:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&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
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
 done
-done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
 
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # 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
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+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
+/* 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:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&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
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
 fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* 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:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&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
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
+rm -f conftest.err conftest.$ac_ext
 
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { 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
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+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
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
   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:$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
+if test "${ac_cv_prog_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -3315,7 +3516,7 @@ do
   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"
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -3324,31 +3525,31 @@ done
 
 fi
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-    test -n "$CC" && break
+    test -n "$CXX" && break
   done
 fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
 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_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -3357,7 +3558,7 @@ do
   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"
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -3366,33 +3567,26 @@ done
 
 fi
 fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-  test -n "$ac_ct_CC" && break
+  test -n "$ac_ct_CXX" && break
 done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
 
-  CC=$ac_ct_CC
-fi
-
+  CXX=$ac_ct_CXX
 fi
 
 
-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
+     "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
@@ -3410,9 +3604,9 @@ ac_compiler=`set X $ac_compile; echo $2`
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-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 "$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_cxx_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -3427,189 +3621,13 @@ main ()
 {
 #ifndef __GNUC__
        choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (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); }; } &&
-	 { 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_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-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:$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
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (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); }; } &&
-	 { 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_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-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
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    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
-/* 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;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std1 is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std1.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-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];
+#endif
+
   ;
   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
+rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>conftest.er1
   ac_status=$?
@@ -3618,7 +3636,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
+	 { ac_try='test -z "$ac_cxx_werror_flag"
 			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
@@ -3631,38 +3649,42 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
+  ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
+echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-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
+int
+main ()
+{
 
-# 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
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
+  ;
+  return 0;
+}
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
@@ -3673,7 +3695,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
+	 { ac_try='test -z "$ac_cxx_werror_flag"
 			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
@@ -3686,7 +3708,33 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  for ac_declaration in \
+  ac_cv_prog_cxx_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+for ac_declaration in \
    '' \
    'extern "C" void std::exit (int) throw (); using std::exit;' \
    'extern "C" void std::exit (int); using std::exit;' \
@@ -3719,7 +3767,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
+	 { ac_try='test -z "$ac_cxx_werror_flag"
 			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
@@ -3764,7 +3812,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
+	 { ac_try='test -z "$ac_cxx_werror_flag"
 			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
@@ -3792,23 +3840,17 @@ if test -n "$ac_declaration"; then
   echo '#endif'             >>confdefs.h
 fi
 
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 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
 
-depcc="$CC"   am_compiler_list=
+depcc="$CXX"  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
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -3830,7 +3872,7 @@ else
   # directory.
   mkdir sub
 
-  am_cv_CC_dependencies_compiler_type=none
+  am_cv_CXX_dependencies_compiler_type=none
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
@@ -3845,9 +3887,7 @@ else
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      : > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
@@ -3875,15 +3915,10 @@ else
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
+      # (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored.
+      if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
         break
       fi
     fi
@@ -3892,807 +3927,1684 @@ else
   cd ..
   rm -rf conftest.dir
 else
-  am_cv_CC_dependencies_compiler_type=none
+  am_cv_CXX_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:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
 
 
 if
   test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
 else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
 fi
 
 
 
-am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
+ALL_LINGUAS="ja zh_CN zh_TW"
 
-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
+        MKINSTALLDIRS=
+  if test -n "$ac_aux_dir"; then
+    case "$ac_aux_dir" in
+      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+    esac
+  fi
+  if test -z "$MKINSTALLDIRS"; then
+    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+  fi
+
+
+
+
+
+        # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; 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_RANLIB+set}" = set; then
+if test "${ac_cv_path_MSGFMT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+	ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+  echo "$as_me:$LINENO: result: $MSGFMT" >&5
+echo "${ECHO_T}$MSGFMT" >&6
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; 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_GMSGFMT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  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"
+    ac_cv_path_GMSGFMT="$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_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
 fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
+GMSGFMT=$ac_cv_path_GMSGFMT
+
+if test -n "$GMSGFMT"; then
+  echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+echo "${ECHO_T}$GMSGFMT" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
+
+        # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; 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_XGETTEXT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+	ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
 fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  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
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+  echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+echo "${ECHO_T}$XGETTEXT" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    rm -f messages.po
+
+    # Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; 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_RANLIB+set}" = set; then
+if test "${ac_cv_path_MSGMERGE+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+  case "$MSGMERGE" in
+  /*)
+  ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then
+	ac_cv_path_MSGMERGE="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+  ;;
+esac
+fi
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+  echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+echo "${ECHO_T}$MSGMERGE" >&6
 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_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+      if test "$GMSGFMT" != ":"; then
+            if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+      echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
+echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6
+      GMSGFMT=":"
+    fi
   fi
-done
-done
 
-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+      if test "$XGETTEXT" != ":"; then
+            if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
+       (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
+echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6
+      XGETTEXT=":"
+    fi
+        rm -f messages.po
+  fi
+
+            ac_config_commands="$ac_config_commands default-1"
+
+
+
+      if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by GCC" >&5
+echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | [A-Za-z]:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${acl_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+	test "$with_gnu_ld" != no && break
+      else
+	test "$with_gnu_ld" != yes && break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
 fi
 fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
-
-  RANLIB=$ac_ct_RANLIB
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${acl_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  RANLIB="$ac_cv_prog_RANLIB"
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+  acl_cv_prog_gnu_ld=yes
+else
+  acl_cv_prog_gnu_ld=no
 fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-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:$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
-  CPP=
 fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
+echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6
+with_gnu_ld=$acl_cv_prog_gnu_ld
+
+
+
+                                                echo "$as_me:$LINENO: checking for shared library run path origin" >&5
+echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6
+if test "${acl_cv_rpath+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      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
-/* 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:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&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
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
+
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+
 fi
-if test -z "$ac_cpp_err"; then
+echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
+echo "${ECHO_T}$acl_cv_rpath" >&6
+  wl="$acl_cv_wl"
+  libext="$acl_cv_libext"
+  shlibext="$acl_cv_shlibext"
+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  hardcode_direct="$acl_cv_hardcode_direct"
+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
+  sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
+    # Check whether --enable-rpath or --disable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval="$enable_rpath"
   :
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  enable_rpath=yes
+fi;
 
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* 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:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&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
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
+
+
+
+
+
+    use_additional=yes
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then
+  withval="$with_libiconv_prefix"
+
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+
+fi;
+      LIBICONV=
+  LTLIBICONV=
+  INCICONV=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='iconv '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$hardcode_direct" = yes; then
+                                                      LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                                                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+              else
+                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux*) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux*) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+                    LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+            LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+      done
+    fi
   fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+    done
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6
+    # Check whether --enable-nls or --disable-nls was given.
+if test "${enable_nls+set}" = set; then
+  enableval="$enable_nls"
+  USE_NLS=$enableval
 else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  USE_NLS=yes
+fi;
+  echo "$as_me:$LINENO: result: $USE_NLS" >&5
+echo "${ECHO_T}$USE_NLS" >&6
 
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
 
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
 
-    done
-    ac_cv_prog_CPP=$CPP
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
 
-fi
-  CPP=$ac_cv_prog_CPP
+    if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
+
+
+
+
+
+
+        echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
+echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6
+if test "${gt_cv_func_gnugettext1_libc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_prog_CPP=$CPP
-fi
-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
 /* 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
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+int
+main ()
+{
+bindtextdomain ("", "");
+return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
+  ;
+  return 0;
+}
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&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
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* 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:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (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); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&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
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
+  (exit $ac_status); }; }; then
+  gt_cv_func_gnugettext1_libc=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-  # Passes both tests.
-ac_preproc_ok=:
-break
+gt_cv_func_gnugettext1_libc=no
 fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { 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; }; }
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5
+echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-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
+        if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
 
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
-  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:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # 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_CXX="$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
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
 
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
-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_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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_CXX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
 
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
 
-  test -n "$ac_ct_CXX" && break
-done
-test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+          am_save_CPPFLAGS="$CPPFLAGS"
 
-  CXX=$ac_ct_CXX
-fi
+  for element in $INCICONV; do
+    haveit=
+    for x in $CPPFLAGS; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-# 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
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
+
+
+  echo "$as_me:$LINENO: checking for iconv" >&5
+echo $ECHO_N "checking for iconv... $ECHO_C" >&6
+if test "${am_cv_func_iconv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+       iconv(cd,NULL,NULL,NULL,NULL);
+       iconv_close(cd);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   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
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (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); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s 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); }
-
-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_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  (exit $ac_status); }; }; then
+  am_cv_func_iconv=yes
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
+#include <stdlib.h>
+#include <iconv.h>
 int
 main ()
 {
-#ifndef __GNUC__
-       choke me
-#endif
-
+iconv_t cd = iconv_open("","");
+         iconv(cd,NULL,NULL,NULL,NULL);
+         iconv_close(cd);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
+	 { ac_try='test -z "$ac_c_werror_flag"
 			 || test ! -s conftest.err'
   { (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); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -s 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
-  ac_compiler_gnu=yes
+  am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+      LIBS="$am_save_LIBS"
+    fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
+echo "${ECHO_T}$am_cv_func_iconv" >&6
+  if test "$am_cv_func_iconv" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ICONV 1
+_ACEOF
+
+  fi
+  if test "$am_cv_lib_iconv" = yes; then
+    echo "$as_me:$LINENO: checking how to link with libiconv" >&5
+echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6
+    echo "$as_me:$LINENO: result: $LIBICONV" >&5
+echo "${ECHO_T}$LIBICONV" >&6
+  else
+            CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
+
+
+
+
+
+
+    use_additional=yes
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-libintl-prefix or --without-libintl-prefix was given.
+if test "${with_libintl_prefix+set}" = set; then
+  withval="$with_libintl_prefix"
+
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+
+fi;
+      LIBINTL=
+  LTLIBINTL=
+  INCINTL=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='intl '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$hardcode_direct" = yes; then
+                                                      LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                                                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+              else
+                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux*) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux*) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+                    LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+            LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+    done
+  fi
 
-fi
-echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
-GXX=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cxx_g+set}" = set; then
+          echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
+echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6
+if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+                        cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();
 int
 main ()
 {
-
+bindtextdomain ("", "");
+return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
+	 { ac_try='test -z "$ac_c_werror_flag"
 			 || test ! -s conftest.err'
   { (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); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -s 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
-  ac_cv_prog_cxx_g=yes
+  gt_cv_func_gnugettext1_libintl=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_prog_cxx_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+gt_cv_func_gnugettext1_libintl=no
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+                        if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();
 int
 main ()
 {
-exit (42);
+bindtextdomain ("", "");
+return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
+	 { ac_try='test -z "$ac_c_werror_flag"
 			 || test ! -s conftest.err'
   { (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); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -s 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
-  :
+  LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                gt_cv_func_gnugettext1_libintl=yes
+
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-continue
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"
+fi
+echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5
+echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6
+        fi
+
+                                        if test "$gt_cv_func_gnugettext1_libc" = "yes" \
+           || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
+                && test "$PACKAGE" != gettext; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+                    LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
+
+
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_NLS 1
+_ACEOF
+
+    else
+      USE_NLS=no
+    fi
+  fi
+
+  if test "$USE_NLS" = "yes"; then
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+        echo "$as_me:$LINENO: checking how to link with libintl" >&5
+echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6
+        echo "$as_me:$LINENO: result: $LIBINTL" >&5
+echo "${ECHO_T}$LIBINTL" >&6
+
+  for element in $INCINTL; do
+    haveit=
+    for x in $CPPFLAGS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
+
+      fi
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETTEXT 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_DCGETTEXT 1
+_ACEOF
+
+    fi
+
+        POSUB=po
+  fi
+
+
+
+    INTLLIBS="$LIBINTL"
+
+
+
+
+
+
+LDFLAGS="$LDFLAGS $INTLLIBS"
+echo "$as_me:$LINENO: checking for iconv in -liconv" >&5
+echo $ECHO_N "checking for iconv in -liconv... $ECHO_C" >&6
+if test "${ac_cv_lib_iconv_iconv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-liconv  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_declaration
+
+/* 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 iconv ();
 int
 main ()
 {
-exit (42);
+iconv ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
+	 { ac_try='test -z "$ac_c_werror_flag"
 			 || test ! -s conftest.err'
   { (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); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -s 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
-  break
+  ac_cv_lib_iconv_iconv=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_iconv_iconv=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-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
-
-depcc="$CXX"  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_CXX_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
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_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
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # 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.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/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=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
-
-
-if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5
+echo "${ECHO_T}$ac_cv_lib_iconv_iconv" >&6
+if test $ac_cv_lib_iconv_iconv = yes; then
+  haslibiconv=yes
 else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
+  haslibiconv=no
 fi
 
+if test "x$haslibiconv" = "xyes"; then
+    LDFLAGS="$LDFLAGS $LIBICONV"
+fi
+localedir='${prefix}/share/locale'
 
 
 if test "`$CPP -v < /dev/null 2>&1 | grep '/usr/local/include' 2>&1`" = ""; then
@@ -4701,7 +5613,6 @@ if test "`$CPP -v < /dev/null 2>&1 | gre
 fi
 
 
-
 for ac_func in gethostbyname
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -6290,6 +7201,11 @@ fi
 
 
 
+  if test -e /usr/include/jpeglib.h || test -e /usr/local/include/jpeglib.h
+  then
+    jpeg_ok=yes
+  fi
+
   if test "x$jpeg_ok" = "xyes"; then
     old_libs="$LIBS"
     echo "$as_me:$LINENO: checking for jpeg_destroy_decompress in -ljpeg" >&5
@@ -6387,7 +7303,6 @@ _ACEOF
 
 fi
 
-if test "x$enable_png" = "xyes"; then
   if test "${ac_cv_header_zlib_h+set}" = set; then
   echo "$as_me:$LINENO: checking for zlib.h" >&5
 echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
@@ -6614,7 +7529,6 @@ fi
     { echo "$as_me:$LINENO: WARNING: *** No libz found. Disabling PNG images ***" >&5
 echo "$as_me: WARNING: *** No libz found. Disabling PNG images ***" >&2;}
   fi
-fi
 
 if test "x$enable_png" = "xyes" && test "x$libz_ok" = "xyes"; then
   echo "$as_me:$LINENO: checking for libpng-config" >&5
@@ -6807,21 +7721,269 @@ if test `eval echo '${'$as_ac_Header'}'`
 _ACEOF
  png_ok=yes && break
 else
-  png_ok=no
+  png_ok=no
+fi
+
+done
+
+
+    if test "x$png_ok" = "xyes"; then
+      old_libs="$LIBS"
+      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
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpng $LIBZ_LIBS -lm $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* 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
+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 png_check_sig ();
+int
+main ()
+{
+png_check_sig ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (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); }; } &&
+	 { ac_try='test -s 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
+  ac_cv_lib_png_png_check_sig=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_png_png_check_sig=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+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
+  png_ok=yes
+else
+  png_ok=no
+fi
+
+      LIBS="$old_libs"
+
+      if test "x$png_ok" = "xyes"; then
+        LIBPNG_LIBS="-lpng -lm"
+      fi
+    fi
+
+    if test "x$png_ok" = "xno"; then
+      { echo "$as_me:$LINENO: WARNING: *** No libpng found. Disabling PNG images ***" >&5
+echo "$as_me: WARNING: *** No libpng found. Disabling PNG images ***" >&2;}
+    fi
+  fi
+fi
+
+if test "x$png_ok" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_PNG
+_ACEOF
+
+fi
+
+if test "x$enable_gif" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_GIF
+_ACEOF
+
+fi
+
+if test "x$enable_ssl" = "xyes"; then
+  if test "${ac_cv_header_openssl_ssl_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for openssl/ssl.h" >&5
+echo $ECHO_N "checking for openssl/ssl.h... $ECHO_C" >&6
+if test "${ac_cv_header_openssl_ssl_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_openssl_ssl_h" >&5
+echo "${ECHO_T}$ac_cv_header_openssl_ssl_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking openssl/ssl.h usability" >&5
+echo $ECHO_N "checking openssl/ssl.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <openssl/ssl.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (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); }; } &&
+	 { 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.err 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 openssl/ssl.h presence" >&5
+echo $ECHO_N "checking openssl/ssl.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <openssl/ssl.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&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
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+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:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: openssl/ssl.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: openssl/ssl.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: openssl/ssl.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: openssl/ssl.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: openssl/ssl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: openssl/ssl.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: openssl/ssl.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for openssl/ssl.h" >&5
+echo $ECHO_N "checking for openssl/ssl.h... $ECHO_C" >&6
+if test "${ac_cv_header_openssl_ssl_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_openssl_ssl_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_openssl_ssl_h" >&5
+echo "${ECHO_T}$ac_cv_header_openssl_ssl_h" >&6
+
+fi
+if test $ac_cv_header_openssl_ssl_h = yes; then
+  ssl_ok=yes
+else
+  ssl_ok=no
 fi
 
-done
 
 
-    if test "x$png_ok" = "xyes"; then
-      old_libs="$LIBS"
-      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
+  if test "x$ssl_ok" = "xyes"; then
+    old_libs="$LIBS"
+    echo "$as_me:$LINENO: checking for SSL_library_init in -lssl" >&5
+echo $ECHO_N "checking for SSL_library_init in -lssl... $ECHO_C" >&6
+if test "${ac_cv_lib_ssl_SSL_library_init+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpng $LIBZ_LIBS -lm $LIBS"
+LIBS="-lssl -lcrypto $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -6835,11 +7997,11 @@ 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 png_check_sig ();
+char SSL_library_init ();
 int
 main ()
 {
-png_check_sig ();
+SSL_library_init ();
   ;
   return 0;
 }
@@ -6866,68 +8028,62 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_lib_png_png_check_sig=yes
+  ac_cv_lib_ssl_SSL_library_init=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_png_png_check_sig=no
+ac_cv_lib_ssl_SSL_library_init=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-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
-  png_ok=yes
+echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_library_init" >&5
+echo "${ECHO_T}$ac_cv_lib_ssl_SSL_library_init" >&6
+if test $ac_cv_lib_ssl_SSL_library_init = yes; then
+  ssl_ok=yes
 else
-  png_ok=no
+  ssl_ok=no
 fi
 
-      LIBS="$old_libs"
-
-      if test "x$png_ok" = "xyes"; then
-        LIBPNG_LIBS="-lpng -lm"
-      fi
-    fi
+    LIBS="$old_libs"
+  fi
 
-    if test "x$png_ok" = "xno"; then
-      { echo "$as_me:$LINENO: WARNING: *** No libpng found. Disabling PNG images ***" >&5
-echo "$as_me: WARNING: *** No libpng found. Disabling PNG images ***" >&2;}
-    fi
+  if test "x$ssl_ok" = "xyes"; then
+    LIBSSL_LIBS="-lcrypto -lssl"
+  else
+    { echo "$as_me:$LINENO: WARNING: *** No libssl found. Disabling ssl support.***" >&5
+echo "$as_me: WARNING: *** No libssl found. Disabling ssl support.***" >&2;}
   fi
 fi
 
-if test "x$png_ok" = "xyes"; then
+if test "x$ssl_ok" = "xyes"; then
 
 cat >>confdefs.h <<\_ACEOF
-#define ENABLE_PNG
+#define ENABLE_SSL
 _ACEOF
 
 fi
 
-if test "x$enable_gif" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_GIF
-_ACEOF
+if test "x$enable_ssl" = "xyes" ; then
 
-fi
 
-if test "x$enable_ssl" = "xyes"; then
-  if test "${ac_cv_header_openssl_ssl_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for openssl/ssl.h" >&5
-echo $ECHO_N "checking for openssl/ssl.h... $ECHO_C" >&6
-if test "${ac_cv_header_openssl_ssl_h+set}" = set; then
+for ac_header in openssl/ssl.h openssl/err.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: $ac_cv_header_openssl_ssl_h" >&5
-echo "${ECHO_T}$ac_cv_header_openssl_ssl_h" >&6
+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 openssl/ssl.h usability" >&5
-echo $ECHO_N "checking openssl/ssl.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -6935,7 +8091,7 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
-#include <openssl/ssl.h>
+#include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
@@ -6971,15 +8127,15 @@ echo "$as_me:$LINENO: result: $ac_header
 echo "${ECHO_T}$ac_header_compiler" >&6
 
 # Is the header present?
-echo "$as_me:$LINENO: checking openssl/ssl.h presence" >&5
-echo $ECHO_N "checking openssl/ssl.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <openssl/ssl.h>
+#include <$ac_header>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -7013,25 +8169,25 @@ echo "${ECHO_T}$ac_header_preproc" >&6
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
   yes:no: )
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: openssl/ssl.h: proceeding with the compiler's result" >&2;}
+    { 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 compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
     ac_header_preproc=yes
     ;;
   no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: openssl/ssl.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: openssl/ssl.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: openssl/ssl.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: openssl/ssl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: openssl/ssl.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: openssl/ssl.h: in the future, the compiler will take precedence" >&2;}
+    { 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: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&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;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
 ## ------------------------------------------ ##
@@ -7042,34 +8198,34 @@ _ASBOX
       sed "s/^/$as_me: WARNING:     /" >&2
     ;;
 esac
-echo "$as_me:$LINENO: checking for openssl/ssl.h" >&5
-echo $ECHO_N "checking for openssl/ssl.h... $ECHO_C" >&6
-if test "${ac_cv_header_openssl_ssl_h+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
 else
-  ac_cv_header_openssl_ssl_h=$ac_header_preproc
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_openssl_ssl_h" >&5
-echo "${ECHO_T}$ac_cv_header_openssl_ssl_h" >&6
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
 fi
-if test $ac_cv_header_openssl_ssl_h = yes; then
-  ssl_ok=yes
-else
-  ssl_ok=no
+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
 
 
-  if test "x$ssl_ok" = "xyes"; then
-    old_libs="$LIBS"
-    echo "$as_me:$LINENO: checking for SSL_library_init in -lssl" >&5
-echo $ECHO_N "checking for SSL_library_init in -lssl... $ECHO_C" >&6
-if test "${ac_cv_lib_ssl_SSL_library_init+set}" = set; then
+echo "$as_me:$LINENO: checking for SSL_connect in -lssl" >&5
+echo $ECHO_N "checking for SSL_connect in -lssl... $ECHO_C" >&6
+if test "${ac_cv_lib_ssl_SSL_connect+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lssl -lcrypto $LIBS"
+LIBS="-lssl  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7083,11 +8239,11 @@ 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 SSL_library_init ();
+char SSL_connect ();
 int
 main ()
 {
-SSL_library_init ();
+SSL_connect ();
   ;
   return 0;
 }
@@ -7114,45 +8270,42 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_lib_ssl_SSL_library_init=yes
+  ac_cv_lib_ssl_SSL_connect=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_ssl_SSL_library_init=no
+ac_cv_lib_ssl_SSL_connect=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_library_init" >&5
-echo "${ECHO_T}$ac_cv_lib_ssl_SSL_library_init" >&6
-if test $ac_cv_lib_ssl_SSL_library_init = yes; then
-  ssl_ok=yes
-else
-  ssl_ok=no
-fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_connect" >&5
+echo "${ECHO_T}$ac_cv_lib_ssl_SSL_connect" >&6
+if test $ac_cv_lib_ssl_SSL_connect = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSSL 1
+_ACEOF
 
-    LIBS="$old_libs"
-  fi
+  LIBS="-lssl $LIBS"
 
-  if test "x$ssl_ok" = "xyes"; then
-    LIBSSL_LIBS="-lcrypto -lssl"
-  else
-    { echo "$as_me:$LINENO: WARNING: *** No libssl found. Disabling ssl support.***" >&5
-echo "$as_me: WARNING: *** No libssl found. Disabling ssl support.***" >&2;}
-  fi
+else
+  enable_ssl="no"
 fi
 
-if test "x$ssl_ok" = "xyes"; then
+  if test "x$enable_ssl" = "xno" ; then
+    { echo "$as_me:$LINENO: WARNING: *** No libssl found. Disabling ssl. ***" >&5
+echo "$as_me: WARNING: *** No libssl found. Disabling ssl. ***" >&2;}
+  else
 
 cat >>confdefs.h <<\_ACEOF
-#define ENABLE_SSL
+#define DILLO_SSL 1
 _ACEOF
 
+  fi
 fi
 
-
 if test -z "$LIBPTHREAD_LIBS"; then
 case $target in
   *-*-linux*|*-*-solaris*)
@@ -7839,6 +8992,132 @@ echo "$as_me: WARNING: *** Try setting L
   ;;
 esac
 
+if test "x$enable_tabs" = "xno" ; then
+  CFLAGS="$CFLAGS -DDISABLE_TABS"
+fi
+if test "x$enable_anti_alias" = "xno" ; then
+  CFLAGS="$CFLAGS -DDISABLE_ANTI_ALIAS"
+else
+  # Extract the first word of "xft-config", so it can be a program name with args.
+set dummy xft-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_XFT_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $XFT_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_XFT_CONFIG="$XFT_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/usr/local/bin"
+for as_dir in $as_dummy
+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_XFT_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_XFT_CONFIG" && ac_cv_path_XFT_CONFIG="no"
+  ;;
+esac
+fi
+XFT_CONFIG=$ac_cv_path_XFT_CONFIG
+
+if test -n "$XFT_CONFIG"; then
+  echo "$as_me:$LINENO: result: $XFT_CONFIG" >&5
+echo "${ECHO_T}$XFT_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  if test "$XFT_CONFIG" = "no" ; 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_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/usr/local/bin"
+for as_dir in $as_dummy
+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_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    if test "$PKG_CONFIG" = "no" ; then
+      if test -d "/usr/include/freetype2" ; then
+        CPPFLAGS="$CPPFLAGS -I/usr/include/freetype2"
+      elif test -d "/usr/include/freetype1" ; then
+        CPPFLAGS="$CPPFLAGS -I/usr/include/freetype1"
+      fi
+      if test -e "/usr/X11R6/include/X11/Xft/Xft.h" ; then
+        echo "$as_me:$LINENO: checking checking for Xft" >&5
+echo $ECHO_N "checking checking for Xft... $ECHO_C" >&6
+        if test -e "/usr/X11R6/lib/libXft.so.2" ; then
+          echo "$as_me:$LINENO: result: Xft2" >&5
+echo "${ECHO_T}Xft2" >&6
+          LIBS="/usr/X11R6/lib/libXft.so.2 $LIBS"
+        elif test -e "/usr/lib/libXft.so.2" ; then
+          echo "$as_me:$LINENO: result: Xft2" >&5
+echo "${ECHO_T}Xft2" >&6
+          LIBS="/usr/lib/libXft.so.2 $LIBS"
+        else
+          echo "$as_me:$LINENO: result: Xft" >&5
+echo "${ECHO_T}Xft" >&6
+          LIBS="-lXft $LIBS"
+        fi
+      else
+        { echo "$as_me:$LINENO: WARNING: *** Xft not found. Disabling anti-alias.***" >&5
+echo "$as_me: WARNING: *** Xft not found. Disabling anti-alias.***" >&2;}
+        enable_anti_alias="no"
+        CFLAGS="$CFLAGS -DDISABLE_ANTI_ALIAS"
+      fi
+    else
+      CFLAGS="$CFLAGS `$PKG_CONFIG xft --cflags`"
+      LDFLAGS="$LDFLAGS `$PKG_CONFIG xft --libs`"
+    fi
+  else
+    CFLAGS="$CFLAGS `$XFT_CONFIG --cflags`"
+    LDFLAGS="$LDFLAGS `$XFT_CONFIG --libs`"
+  fi
+fi
 if test "x$enable_cookies" = "xno" ; then
   CFLAGS="$CFLAGS -DDISABLE_COOKIES"
 fi
@@ -7861,6 +9140,9 @@ fi
 if test "x$enable_threaded_dns" = "xyes" ; then
   CFLAGS="$CFLAGS -DD_DNS_THREADED"
 fi
+if test "x$enable_meta_refresh" = "xyes" ; then
+  CFLAGS="$CFLAGS -DENABLE_META_REFRESH"
+fi
 
 echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
@@ -8225,7 +9507,7 @@ fi
 
 
 
-                                                                      ac_config_files="$ac_config_files Makefile dpip/Makefile dpid/Makefile dpi/Makefile doc/Makefile src/Makefile src/IO/Makefile"
+                                                                                                    ac_config_files="$ac_config_files Makefile dpip/Makefile dpid/Makefile dpi/Makefile doc/Makefile config/Makefile src/Makefile src/IO/Makefile po/Makefile.in m4/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
@@ -8338,13 +9620,6 @@ echo "$as_me: error: conditional \"am__f
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -8786,6 +10061,13 @@ cat >>$CONFIG_STATUS <<_ACEOF
 #
 
 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+# Capture the value of obsolete $ALL_LINGUAS because we need it to compute
+    # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
+    # from automake.
+    eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
+    # Capture the value of LINGUAS because we need it to compute CATALOGS.
+    LINGUAS="${LINGUAS-%UNSET%}"
+
 
 _ACEOF
 
@@ -8801,9 +10083,13 @@ do
   "dpid/Makefile" ) CONFIG_FILES="$CONFIG_FILES dpid/Makefile" ;;
   "dpi/Makefile" ) CONFIG_FILES="$CONFIG_FILES dpi/Makefile" ;;
   "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+  "config/Makefile" ) CONFIG_FILES="$CONFIG_FILES config/Makefile" ;;
   "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
   "src/IO/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/IO/Makefile" ;;
+  "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+  "m4/Makefile" ) CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
   "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+  "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
   "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;}
@@ -8913,17 +10199,14 @@ s,@AUTOCONF@,$AUTOCONF,;t t
 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,@mkdir_p@,$mkdir_p,;t t
 s,@AWK@,$AWK,;t t
 s,@SET_MAKE@,$SET_MAKE,;t t
 s,@am__leading_dot@,$am__leading_dot,;t t
-s,@AMTAR@,$AMTAR,;t t
-s,@am__tar@,$am__tar,;t t
-s,@am__untar@,$am__untar,;t t
 s,@DLGUI_TRUE@,$DLGUI_TRUE,;t t
 s,@DLGUI_FALSE@,$DLGUI_FALSE,;t t
 s,@CC@,$CC,;t t
@@ -8951,6 +10234,19 @@ s,@ac_ct_CXX@,$ac_ct_CXX,;t t
 s,@CXXDEPMODE@,$CXXDEPMODE,;t t
 s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t
 s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t
+s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t
+s,@MSGFMT@,$MSGFMT,;t t
+s,@GMSGFMT@,$GMSGFMT,;t t
+s,@XGETTEXT@,$XGETTEXT,;t t
+s,@MSGMERGE@,$MSGMERGE,;t t
+s,@USE_NLS@,$USE_NLS,;t t
+s,@LIBICONV@,$LIBICONV,;t t
+s,@LTLIBICONV@,$LTLIBICONV,;t t
+s,@INTLLIBS@,$INTLLIBS,;t t
+s,@LIBINTL@,$LIBINTL,;t t
+s,@LTLIBINTL@,$LTLIBINTL,;t t
+s,@POSUB@,$POSUB,;t t
+s,@localedir@,$localedir,;t t
 s,@GLIB_CONFIG@,$GLIB_CONFIG,;t t
 s,@GLIB_CFLAGS@,$GLIB_CFLAGS,;t t
 s,@GLIB_LIBS@,$GLIB_LIBS,;t t
@@ -8958,6 +10254,8 @@ s,@GTK_CONFIG@,$GTK_CONFIG,;t t
 s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t
 s,@GTK_LIBS@,$GTK_LIBS,;t t
 s,@EGREP@,$EGREP,;t t
+s,@XFT_CONFIG@,$XFT_CONFIG,;t t
+s,@PKG_CONFIG@,$PKG_CONFIG,;t t
 s,@LIBJPEG_LIBS@,$LIBJPEG_LIBS,;t t
 s,@LIBJPEG_LDFLAGS@,$LIBJPEG_LDFLAGS,;t t
 s,@LIBJPEG_CPPFLAGS@,$LIBJPEG_CPPFLAGS,;t t
@@ -9598,21 +10896,27 @@ echo X"$mf" |
   else
     continue
   fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  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
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
   # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  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 "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+  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
@@ -9658,6 +10962,102 @@ echo "$as_me: error: cannot create direc
   done
 done
  ;;
+    default-1 )
+    for ac_file in $CONFIG_FILES; do
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+      # PO directories have a Makefile.in generated from Makefile.in.in.
+      case "$ac_file" in */Makefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+        esac
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
+          # on $ac_dir but don't depend on user-specified configuration
+          # parameters.
+          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+            # The LINGUAS file contains the set of available languages.
+            if test -n "$ALL_LINGUAS"; then
+              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+            fi
+            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            # Hide the ALL_LINGUAS assigment from automake.
+            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+          fi
+          case "$ac_given_srcdir" in
+            .) srcdirpre= ;;
+            *) srcdirpre='$(srcdir)/' ;;
+          esac
+          POFILES=
+          GMOFILES=
+          UPDATEPOFILES=
+          DUMMYPOFILES=
+          for lang in $ALL_LINGUAS; do
+            POFILES="$POFILES $srcdirpre$lang.po"
+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+          done
+          # CATALOGS depends on both $ac_dir and the user's LINGUAS
+          # environment variable.
+          INST_LINGUAS=
+          if test -n "$ALL_LINGUAS"; then
+            for presentlang in $ALL_LINGUAS; do
+              useit=no
+              if test "%UNSET%" != "$LINGUAS"; then
+                desiredlanguages="$LINGUAS"
+              else
+                desiredlanguages="$ALL_LINGUAS"
+              fi
+              for desiredlang in $desiredlanguages; do
+                # Use the presentlang catalog if desiredlang is
+                #   a. equal to presentlang, or
+                #   b. a variant of presentlang (because in this case,
+                #      presentlang can be used as a fallback for messages
+                #      which are not translated in the desiredlang catalog).
+                case "$desiredlang" in
+                  "$presentlang"*) useit=yes;;
+                esac
+              done
+              if test $useit = yes; then
+                INST_LINGUAS="$INST_LINGUAS $presentlang"
+              fi
+            done
+          fi
+          CATALOGS=
+          if test -n "$INST_LINGUAS"; then
+            for lang in $INST_LINGUAS; do
+              CATALOGS="$CATALOGS $lang.gmo"
+            done
+          fi
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+            if test -f "$f"; then
+              case "$f" in
+                *.orig | *.bak | *~) ;;
+                *) cat "$f" >> "$ac_dir/Makefile" ;;
+              esac
+            fi
+          done
+        fi
+        ;;
+      esac
+    done ;;
   esac
 done
 _ACEOF
@@ -9692,3 +11092,19 @@ if test "$no_create" != yes; then
 fi
 
 
+echo ""
+echo "Finished configure:"
+echo "           tabs: $enable_tabs";
+echo "        cookies: $enable_cookies";
+echo "     anti-alias: $enable_anti_alias";
+echo "            ssl: $enable_ssl";
+echo "   meta refresh: $enable_meta_refresh";
+echo "         efence: $enable_efence";
+echo "          gprof: $enable_gprof";
+echo "         insure: $enable_insure";
+echo "           rftl: $enable_rtfl";
+echo "         prefix: $prefix";
+
+echo ""
+echo "Run configure --help for explanation of these options,"
+echo "otherwise type 'make' to build Dillo."
diff -pruN dillo-0.8.6/configure.in dillo-0.8.6-i18n-misc-20060709/configure.in
--- dillo-0.8.6/configure.in	2006-04-27 01:05:29.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/configure.in	2006-05-16 01:21:07.000000000 +0900
@@ -5,7 +5,7 @@ AC_INIT(src/dillo.c)
 dnl Detect the canonical host and target build environment
 AC_CANONICAL_SYSTEM
 
-AM_INIT_AUTOMAKE(dillo, 0.8.6)
+AM_INIT_AUTOMAKE(dillo, 0.8.6-i18n-misc)
 AM_CONFIG_HEADER(config.h)
 
 dnl Options
@@ -21,8 +21,13 @@ AC_ARG_ENABLE(insure, [  --enable-insure
                     , enable_insure=no)
 AC_ARG_ENABLE(ansi,   [  --enable-ansi           Try to compile and run with ANSI flags],
                     , enable_ansi=no)
+AC_ARG_ENABLE(tabs,   [  --disable-tabs          Don't compile support for tabs],
+                    , enable_tabs=yes)
+AC_ARG_ENABLE(anti_alias,[  --disable-anti-alias    Don't compile support for anti-alias],
+                    , enable_anti_alias=yes)
 AC_ARG_ENABLE(ipv6,   [  --enable-ipv6           Build with support for IPv6], , )
-AC_ARG_ENABLE(rtfl,   [  --enable-rtfl           Build with rtfl messages], enable_rtfl=yes)
+AC_ARG_ENABLE(rtfl,   [  --enable-rtfl           Build with rtfl messages],
+                    , enable_rtfl=no)
 AC_ARG_ENABLE(cookies,[  --disable-cookies       Don't compile support for cookies],
                     , enable_cookies=yes)
 AC_ARG_ENABLE(png,    [  --disable-png           Disable support for PNG images],
@@ -38,6 +43,8 @@ AC_ARG_ENABLE(dlgui,  [  --disable-dlgui
 AC_ARG_ENABLE(threaded-dns,[  --disable-threaded-dns  Disable the advantage of a reentrant resolver library],
               enable_threaded_dns=$enableval, enable_threaded_dns=yes)
 AM_CONDITIONAL(DLGUI, test x$enable_dlgui = xyes)
+AC_ARG_ENABLE(meta_refresh, [  --enable-meta-refresh   Allow meta refresh],
+                    , enable_meta_refresh=no)
 
 AC_PROG_CC
 AM_PROG_CC_STDC
@@ -46,6 +53,20 @@ AC_PROG_CPP
 AC_PROG_CXX
 
 dnl --------------------------------------
+dnl Check for Gettext
+dnl --------------------------------------
+dnl
+ALL_LINGUAS="ja zh_CN zh_TW"
+AM_GNU_GETTEXT([external])
+LDFLAGS="$LDFLAGS $INTLLIBS"
+AC_CHECK_LIB(iconv, iconv, haslibiconv=yes, haslibiconv=no)
+if test "x$haslibiconv" = "xyes"; then
+    LDFLAGS="$LDFLAGS $LIBICONV"
+fi
+localedir='${prefix}/share/locale'
+AC_SUBST(localedir)
+
+dnl --------------------------------------
 dnl Check whether to add /usr/local or not
 dnl (this is somewhat a religious problem)
 dnl --------------------------------------
@@ -128,6 +149,11 @@ dnl
 if test "x$enable_jpeg" = "xyes"; then
   AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)
 
+  if test -e /usr/include/jpeglib.h || test -e /usr/local/include/jpeglib.h
+  then
+    jpeg_ok=yes
+  fi
+
   if test "x$jpeg_ok" = "xyes"; then
     old_libs="$LIBS"
     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress, jpeg_ok=yes, jpeg_ok=no)
@@ -155,7 +181,7 @@ dnl ------------------------------
 dnl Test for zlib (libpng uses it)
 dnl ------------------------------
 dnl
-if test "x$enable_png" = "xyes"; then
+dnl if test "x$enable_png" = "xyes"; then
   AC_CHECK_HEADER(zlib.h, libz_ok=yes, libz_ok=no)
 
   if test "x$libz_ok" = "xyes"; then
@@ -169,7 +195,7 @@ if test "x$enable_png" = "xyes"; then
   else
     AC_MSG_WARN([*** No libz found. Disabling PNG images ***])
   fi
-fi
+dnl fi
 
 dnl ---------------
 dnl Test for libpng
@@ -267,6 +293,19 @@ if test "x$ssl_ok" = "xyes"; then
   AC_DEFINE([ENABLE_SSL], [], [Enable SSL support])
 fi
 
+dnl ----------------------
+dnl Test for libssl
+dnl ----------------------
+dnl
+if test "x$enable_ssl" = "xyes" ; then
+  AC_CHECK_HEADERS(openssl/ssl.h openssl/err.h)
+  AC_CHECK_LIB(ssl, SSL_connect, , enable_ssl="no")
+  if test "x$enable_ssl" = "xno" ; then
+    AC_MSG_WARN(*** No libssl found. Disabling ssl. ***)
+  else
+    AC_DEFINE(DILLO_SSL, 1, [Enable SSL Processing])
+  fi
+fi
 
 dnl ----------------------
 dnl Test for POSIX threads
@@ -351,6 +390,47 @@ dnl --------------------
 dnl Command line options
 dnl --------------------
 dnl
+if test "x$enable_tabs" = "xno" ; then
+  CFLAGS="$CFLAGS -DDISABLE_TABS"
+fi
+if test "x$enable_anti_alias" = "xno" ; then
+  CFLAGS="$CFLAGS -DDISABLE_ANTI_ALIAS"
+else
+  AC_PATH_PROG(XFT_CONFIG, xft-config, no, $PATH:/usr/local/bin)
+  if test "$XFT_CONFIG" = "no" ; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no, $PATH:/usr/local/bin)
+    if test "$PKG_CONFIG" = "no" ; then
+      if test -d "/usr/include/freetype2" ; then
+        CPPFLAGS="$CPPFLAGS -I/usr/include/freetype2"
+      elif test -d "/usr/include/freetype1" ; then
+        CPPFLAGS="$CPPFLAGS -I/usr/include/freetype1"
+      fi
+      if test -e "/usr/X11R6/include/X11/Xft/Xft.h" ; then
+        AC_MSG_CHECKING(checking for Xft)
+        if test -e "/usr/X11R6/lib/libXft.so.2" ; then
+          AC_MSG_RESULT(Xft2)
+          LIBS="/usr/X11R6/lib/libXft.so.2 $LIBS"
+        elif test -e "/usr/lib/libXft.so.2" ; then
+          AC_MSG_RESULT(Xft2)
+          LIBS="/usr/lib/libXft.so.2 $LIBS"
+        else
+          AC_MSG_RESULT(Xft)
+          LIBS="-lXft $LIBS"
+        fi
+      else
+        AC_MSG_WARN(*** Xft not found. Disabling anti-alias.***)
+        enable_anti_alias="no"
+        CFLAGS="$CFLAGS -DDISABLE_ANTI_ALIAS"
+      fi
+    else
+      CFLAGS="$CFLAGS `$PKG_CONFIG xft --cflags`"
+      LDFLAGS="$LDFLAGS `$PKG_CONFIG xft --libs`"
+    fi
+  else
+    CFLAGS="$CFLAGS `$XFT_CONFIG --cflags`"
+    LDFLAGS="$LDFLAGS `$XFT_CONFIG --libs`"
+  fi
+fi
 if test "x$enable_cookies" = "xno" ; then
   CFLAGS="$CFLAGS -DDISABLE_COOKIES"
 fi
@@ -373,7 +453,10 @@ fi
 if test "x$enable_threaded_dns" = "xyes" ; then
   CFLAGS="$CFLAGS -DD_DNS_THREADED"
 fi
-
+if test "x$enable_meta_refresh" = "xyes" ; then
+  CFLAGS="$CFLAGS -DENABLE_META_REFRESH"
+fi
+   
 dnl -----------------------
 dnl Checks for header files
 dnl -----------------------
@@ -429,5 +512,25 @@ AC_SUBST(LIBFLTK_LIBS)
 AC_SUBST(datadir)
 AC_SUBST(src doc bin util lib)
 
-AC_OUTPUT(Makefile dpip/Makefile dpid/Makefile dpi/Makefile doc/Makefile src/Makefile src/IO/Makefile)
+AC_OUTPUT(Makefile dpip/Makefile dpid/Makefile dpi/Makefile doc/Makefile config/Makefile src/Makefile src/IO/Makefile po/Makefile.in m4/Makefile)
 
+dnl ----------------------
+dnl Show configure summary
+dnl ----------------------
+echo ""
+echo "Finished configure:"
+echo "           tabs: $enable_tabs";
+echo "        cookies: $enable_cookies";
+echo "     anti-alias: $enable_anti_alias";
+echo "            ssl: $enable_ssl";
+echo "   meta refresh: $enable_meta_refresh";
+dnl echo "           ipv6: $enable_ipv6";
+echo "         efence: $enable_efence";
+echo "          gprof: $enable_gprof";
+echo "         insure: $enable_insure";
+echo "           rftl: $enable_rtfl";
+echo "         prefix: $prefix";
+                                                                                
+echo ""
+echo "Run configure --help for explanation of these options,"
+echo "otherwise type 'make' to build Dillo."
diff -pruN dillo-0.8.6/depcomp dillo-0.8.6-i18n-misc-20060709/depcomp
--- dillo-0.8.6/depcomp	2005-03-22 16:17:05.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/depcomp	2006-05-16 01:21:07.000000000 +0900
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2005-02-09.22
+scriptversion=2004-04-25.13
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004 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
@@ -43,18 +43,17 @@ Environment variables:
   depmode     Dependency tracking mode.
   source      Source file read by `PROGRAMS ARGS'.
   object      Object file output by `PROGRAMS ARGS'.
-  DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
   tmpdepfile  Temporary file to use when outputing dependencies.
   libtool     Whether libtool is used (yes/no).
 
 Report bugs to <bug-automake@gnu.org>.
 EOF
-    exit $?
+    exit 0
     ;;
   -v | --v*)
     echo "depcomp $scriptversion"
-    exit $?
+    exit 0
     ;;
 esac
 
@@ -62,10 +61,18 @@ if test -z "$depmode" || test -z "$sourc
   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
 
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
-  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
@@ -197,25 +204,19 @@ sgi)
 
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
-  # in a .u file.  In older versions, 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.
-  # Version 6 uses the directory in both cases.
-  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
+  # 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 -f "$tmpdepfile"; then :
-  else
-    stripped=`echo "$stripped" | sed 's,^.*/,,'`
-    tmpdepfile="$stripped.u"
-  fi
 
+  stat=$?
   if test $stat -eq 0; then :
   else
     rm -f "$tmpdepfile"
@@ -223,7 +224,6 @@ aix)
   fi
 
   if test -f "$tmpdepfile"; then
-    outname="$stripped.o"
     # 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:'.
@@ -239,9 +239,11 @@ aix)
   ;;
 
 icc)
-  # Intel's C compiler understands `-MD -MF file'.  However on
+  # Must come before tru64.
+
+  # Intel's C compiler understands `-MD -MF file'.  However
   #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
+  # will fill foo.d with something like
   #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h
   # which is wrong.  We want:
@@ -249,12 +251,6 @@ icc)
   #    sub/foo.o: sub/foo.h
   #    sub/foo.c:
   #    sub/foo.h:
-  # ICC 7.1 will output
-  #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using \ :
-  #    foo.o: sub/foo.c ... \
-  #     sub/foo.h ... \
-  #     ...
 
   "$@" -MD -MF "$tmpdepfile"
   stat=$?
@@ -264,15 +260,11 @@ icc)
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form `foo.o: dependent.h',
-  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # 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 "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
-  # Some versions of the HPUX 10.20 sed can't process this invocation
-  # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-    sed -e 's/$/ :/' >> "$depfile"
+  sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -287,47 +279,37 @@ tru64)
    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
 
    if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mecanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
+      # Dependencies are output in .lo.d with libtool 1.4.
+      # They are output in .o.d with libtool 1.5.
+      tmpdepfile1="$dir.libs/$base.lo.d"
+      tmpdepfile2="$dir.libs/$base.o.d"
+      tmpdepfile3="$dir.libs/$base.d"
       "$@" -Wc,-MD
    else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
+      tmpdepfile1="$dir$base.o.d"
+      tmpdepfile2="$dir$base.d"
+      tmpdepfile3="$dir$base.d"
       "$@" -MD
    fi
 
    stat=$?
    if test $stat -eq 0; then :
    else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
       exit $stat
    fi
 
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
+   if test -f "$tmpdepfile1"; then
+      tmpdepfile="$tmpdepfile1"
+   elif test -f "$tmpdepfile2"; then
+      tmpdepfile="$tmpdepfile2"
+   else
+      tmpdepfile="$tmpdepfile3"
+   fi
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      # That's a tab and a space in the [].
-      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$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
@@ -340,7 +322,7 @@ tru64)
 
 dashmstdout)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o.
+  # always write the proprocessed file to stdout, regardless of -o.
   "$@" || exit $?
 
   # Remove the call to Libtool.
@@ -436,7 +418,7 @@ makedepend)
 
 cpp)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout.
+  # always write the proprocessed file to stdout.
   "$@" || exit $?
 
   # Remove the call to Libtool.
@@ -478,7 +460,7 @@ cpp)
 
 msvisualcpp)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o,
+  # always write the proprocessed file to stdout, regardless of -o,
   # because we must use -o when running libtool.
   "$@" || exit $?
   IFS=" "
diff -pruN dillo-0.8.6/dillorc dillo-0.8.6-i18n-misc-20060709/dillorc
--- dillo-0.8.6/dillorc	2005-01-13 22:30:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dillorc	2006-05-16 01:21:07.000000000 +0900
@@ -3,7 +3,6 @@
 # Copy this file to ~/.dillo/dillorc and edit to your taste.
 # Lines that start with a '#' are comments.
 
-
 #-------------------------------------------------------------------------
 #                             FIRST SECTION                             :)
 #-------------------------------------------------------------------------
@@ -22,18 +21,29 @@ use_dicache=NO
 
 # Fontname for variable width rendering (most of the text).
 #   - some fonts may slow down rendering, some others not!
-#   - try to tune a fontname/font_factor combination.
-# Ex. {helvetica, lucida, times, "new century schoolbook", utopia, ...}
-vw_fontname=helvetica
+#   - try to tune a fontname/font_sizes combination.
+# format is "fndry-fmly" (fndry and fmly is XLFD's item.)
+# Ex. {"*-*", "*-gothic", "misc-fixed" ...}
+vw_fontname="*-gothic"
 
 # Fontname for fixed width rendering (mainly <pre> quoted text)
-fw_fontname=courier
+fw_fontname="*-gothic"
+
+# If Anti-Alias is enable, These options will be applied.
+# format is the same as family of Xft.
+# Ex. {"sans-serif", "monospace" ...}
+vw_aafontname="*"
+fw_aafontname="*"
+
+# Fontsizes
+# The 3rd value is used for plain text
+# font_sizes="10 12 14 16 18 20"
 
 # All fontsizes are scaled by this value (default is 1.0)
 #font_factor=1.2
 
 # If you prefer oblique over italic fonts, uncoment next line
-#use_oblique=YES
+use_oblique=NO
 
 # Show tooltip popup for images?
 # Note: We use the "title" attribute and not "alt".
@@ -68,10 +78,16 @@ home="http://www.dillo.org/"
 
 # Set search url to use with the search dialog.
 # %s is replaced with urlencoded keywords, and %% by '%'.
-search_url="http://www.google.com/search?q=%s"
+search_url="http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=%s"
+#search_url="http://www.google.co.jp/search?ie=UTF-8&oe=UTF-8&q=%s"
+#search_url="http://www.excite.co.jp/dictionary/english_japanese/?match=beginswith&dictionary=NEW_EJJE&search=%s"
 #search_url="http://search.lycos.com/default.asp?query=%s"
 #search_url="http://www.alltheweb.com/search?cat=web&query=%s"
 
+# Search engine's charset
+#search_charset=EUC-JP
+search_charset=UTF-8
+
 # Set the proxy information for http
 #http_proxy=http://localhost:8080/
 
@@ -84,6 +100,12 @@ search_url="http://www.google.com/search
 #no_proxy = ".mynet.com"
 #no_proxy = ".mynet.com .other.net .foo.bar.org"
 
+# Set the User-Agent
+# (%v = Version)
+#user_agent = "Dillo/%v"
+
+# Disable sending referer header
+#send_referer=NO
 
 #-------------------------------------------------------------------------
 #                            COLORS SECTION
@@ -94,7 +116,8 @@ search_url="http://www.google.com/search
 # Set the background color
 # bg_color=gray
 # bg_color=0xd6d6c0
-bg_color=0xdcd1ba
+#bg_color=0xdcd1ba
+bg_color=white
 
 # Set the text color
 text_color=black
@@ -123,8 +146,8 @@ contrast_visited_color=YES
 # small  :  very nice! (it's "medium" without icon titles)
 # medium :  nice!
 # large  :  Traditional
-panel_size=medium
-small_icons=NO
+panel_size=tiny
+small_icons=YES
 
 # Here you can choose to hide some widgets of the dillo panel...
 #show_back=NO
@@ -137,16 +160,69 @@ small_icons=NO
 #show_menubar=NO
 #show_clear_url=NO
 #show_url=NO
-#show_search=NO
+#show_search=YES
 #show_progress_box=NO
 
+# Show or hide navigation controls (back, forward, etc) in popup menu...
+show_popup_navigation=YES
+
 # Start dillo windows with a hidden panel?
 fullwindow_start=NO
 
+# Use popup dialogs (YES/NO, default YES). Disable this to use the status
+# bar and location bar instead of popup dialogs for several functions
+popup_dialogs=NO
+
 # Enabling this will restrain OpenUrl and FindText, but may be required
 # for the ION window manager.
 transient_dialogs=NO
 
+# Forcus location bar on new window.
+# focus_location_on_new=YES
+
+# Enabling this will make 'load link in new tab' be executed in the
+# background, leaving the focus on the current tab
+tab_load_in_background=YES
+
+# Enabling this will open a new tab (instead of a new window)
+# on link-middle-click (button 2) and for the "_blank" url target
+tab_instead_of_window=YES
+
+# Show the tab bar (sometimes called the 'gutter') even when there is
+# only a single tab (document) loaded in the browser window?
+# tab_bar_show_single_tab=NO
+
+# Show the tab bar even in full screen mode?
+# tab_bar_show_fullscreen=NO
+
+# Make all tabs the same width?
+# tab_bar_homogeneous=YES
+
+# When there are more tabs than fit on the tab bar, add scrolling arrows
+# to the tab bar.
+# tab_bar_scroller=NO
+
+# Enabling this will close a tab by middle click
+# tab_close_middle_click=YES
+
+# Compress titles in tabs by removing vowels? If this is set to NO,
+# tabs will be shortened instead. This is what it looks like:
+#
+# Normal                Compressed               Shortened
+# The Quick Brown Fox   Th Qck Brwn Fx           The Q...Fox
+# tab_title_compress=YES
+
+# This defines which vowels are considered 'expendable' by the tab
+# title compression algorithm. The tab title will be shortened by
+# removing characters matching this pattern, starting from the end
+# of the tab title. Adjust this to taste or language if needed.
+# compress_vowels="aeiouyAEIOUY"
+
+# A semicolon-separated string of common prefixes. The compression
+# algorithm begins by trying to discard anything from the title
+# which matches this pattern.
+# compress_common_prefixes="index of ;re: ;fwd: ;www.;welcome to ;the "
+
 # When filling forms, our default behaviour is to submit on enterpress,
 # but only when there's a single text entry (to avoid incomplete submits).
 # OTOH, if you have to fill the same form lots of times, you may find
@@ -156,7 +232,7 @@ enterpress_forces_submit=NO
 # Some forms lack a submit button, and dillo can generate a custom one
 # internally. Unfortunately there's no guarantee for it to work. :(
 # (my experience is that forms that lack a submit rely on Javascript)
-generate_submit=NO
+generate_submit=YES
 
 #-------------------------------------------------------------------------
 #                        DEBUG MESSAGES SECTION
diff -pruN dillo-0.8.6/doc/Adblock.txt dillo-0.8.6-i18n-misc-20060709/doc/Adblock.txt
--- dillo-0.8.6/doc/Adblock.txt	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/doc/Adblock.txt	2006-05-16 01:21:08.000000000 +0900
@@ -0,0 +1,9 @@
+==================
+ Adblock in Dillo
+==================
+compatible with Firefox Adblock.
+
+~/.dillo/adblock.txt contains a list of URLs.
+Please add URL which you want to disregard to it.
+it ignores any lines starting with [
+(not that they would have a chance to match anyway).
diff -pruN dillo-0.8.6/doc/Makefile.am dillo-0.8.6-i18n-misc-20060709/doc/Makefile.am
--- dillo-0.8.6/doc/Makefile.am	2003-08-09 04:25:19.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/doc/Makefile.am	2006-05-16 01:21:08.000000000 +0900
@@ -1,4 +1,5 @@
 EXTRA_DIST = \
+	Adblock.txt \
 	Cache.txt \
 	Cookies.txt \
 	Dillo.txt \
diff -pruN dillo-0.8.6/doc/Makefile.in dillo-0.8.6-i18n-misc-20060709/doc/Makefile.in
--- dillo-0.8.6/doc/Makefile.in	2006-04-27 01:07:11.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/doc/Makefile.in	2006-05-16 01:21:08.000000000 +0900
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
@@ -13,6 +13,7 @@
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
+
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -20,6 +21,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 top_builddir = ..
+
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
@@ -36,18 +38,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-subdir = doc
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
@@ -77,6 +67,7 @@ EXEEXT = @EXEEXT@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_CONFIG = @GLIB_CONFIG@
 GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_CONFIG = @GTK_CONFIG@
 GTK_LIBS = @GTK_LIBS@
@@ -84,9 +75,12 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
 LDFLAGS = @LDFLAGS@
 LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
 LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
 LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
 LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
 LIBJPEG_LIBS = @LIBJPEG_LIBS@
@@ -98,8 +92,13 @@ LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
 LIBS = @LIBS@
 LIBSSL_LIBS = @LIBSSL_LIBS@
 LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -108,11 +107,16 @@ PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_RANLIB = @ac_ct_RANLIB@
@@ -124,8 +128,6 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TR
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -144,9 +146,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
-mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
@@ -159,6 +161,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 EXTRA_DIST = \
+	Adblock.txt \
 	Cache.txt \
 	Cookies.txt \
 	Dillo.txt \
@@ -176,38 +179,21 @@ EXTRA_DIST = \
 	Dpid.txt \
 	README
 
+subdir = doc
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = README $(srcdir)/Makefile.in Makefile.am
 all: all-am
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 	cd $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu  doc/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
 uninstall-info-am:
 tags: TAGS
 TAGS:
@@ -215,6 +201,10 @@ TAGS:
 ctags: CTAGS
 CTAGS:
 
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -228,7 +218,7 @@ distdir: $(DISTFILES)
 	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
 	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
 	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
 	  else \
 	    dir=''; \
 	  fi; \
@@ -246,6 +236,7 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: check-am
 all-am: Makefile
+
 installdirs:
 install: install-am
 install-exec: install-exec-am
@@ -266,7 +257,7 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-rm -f $(CONFIG_CLEAN_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -283,8 +274,6 @@ dvi: dvi-am
 
 dvi-am:
 
-html: html-am
-
 info: info-am
 
 info-am:
@@ -318,8 +307,8 @@ ps-am:
 uninstall-am: uninstall-info-am
 
 .PHONY: all all-am check check-am clean clean-generic distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-exec \
+	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 \
diff -pruN dillo-0.8.6/doc/README dillo-0.8.6-i18n-misc-20060709/doc/README
--- dillo-0.8.6/doc/README	2003-08-09 04:25:19.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/doc/README	2006-05-16 01:21:07.000000000 +0900
@@ -18,8 +18,6 @@
    DwPage.txt          Dillo Widget page (shortly)          Incomplete
    DwStyle.txt         Styles of Dillo Widgets              Pending
    DwTable.txt         Tables in dillo                      Current
-   Selection.txt       Selections, and link activation      Current (?)
-   Cookies.txt         Explains how to enable cookies       Current
    Dpid.txt            Dillo plugin daemon                  Current
  --------------------------------------------------------------------------
  [This documents cover dillo's internal working. They're NOT a user manual]
diff -pruN dillo-0.8.6/dpi/Makefile.am dillo-0.8.6-i18n-misc-20060709/dpi/Makefile.am
--- dillo-0.8.6/dpi/Makefile.am	2006-01-04 05:16:10.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/Makefile.am	2006-05-16 01:21:15.000000000 +0900
@@ -1,3 +1,4 @@
+AM_CPPFLAGS=-DLOCALEDIR='"$(localedir)"'
 AM_CFLAGS = @GLIB_CFLAGS@
 AM_CXXFLAGS = @GLIB_CFLAGS@
 
diff -pruN dillo-0.8.6/dpi/Makefile.in dillo-0.8.6-i18n-misc-20060709/dpi/Makefile.in
--- dillo-0.8.6/dpi/Makefile.in	2006-04-27 01:07:15.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/Makefile.in	2006-05-16 01:21:15.000000000 +0900
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
@@ -14,8 +14,6 @@
 
 @SET_MAKE@
 
-SOURCES = $(bookmarks_dpi_SOURCES) $(cookies_dpi_SOURCES) $(datauri_filter_dpi_SOURCES) $(downloads_dpi_SOURCES) $(file_dpi_SOURCES) $(ftp_filter_dpi_SOURCES) $(hello_filter_dpi_SOURCES) $(https_filter_dpi_SOURCES)
-
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -23,6 +21,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 top_builddir = ..
+
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
@@ -39,93 +38,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-bookmarks_PROGRAMS = bookmarks.dpi$(EXEEXT)
-downloads_PROGRAMS = downloads.dpi$(EXEEXT)
-ftp_PROGRAMS = ftp.filter.dpi$(EXEEXT)
-https_PROGRAMS = https.filter.dpi$(EXEEXT)
-hello_PROGRAMS = hello.filter.dpi$(EXEEXT)
-file_PROGRAMS = file.dpi$(EXEEXT)
-cookies_PROGRAMS = cookies.dpi$(EXEEXT)
-datauri_PROGRAMS = datauri.filter.dpi$(EXEEXT)
-subdir = dpi
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bookmarksdir)" \
-	"$(DESTDIR)$(cookiesdir)" "$(DESTDIR)$(datauridir)" \
-	"$(DESTDIR)$(downloadsdir)" "$(DESTDIR)$(filedir)" \
-	"$(DESTDIR)$(ftpdir)" "$(DESTDIR)$(hellodir)" \
-	"$(DESTDIR)$(httpsdir)"
-bookmarksPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-cookiesPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-datauriPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-downloadsPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-filePROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-ftpPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-helloPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-httpsPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bookmarks_PROGRAMS) $(cookies_PROGRAMS) \
-	$(datauri_PROGRAMS) $(downloads_PROGRAMS) $(file_PROGRAMS) \
-	$(ftp_PROGRAMS) $(hello_PROGRAMS) $(https_PROGRAMS)
-am_bookmarks_dpi_OBJECTS = bookmarks.$(OBJEXT) dpiutil.$(OBJEXT)
-bookmarks_dpi_OBJECTS = $(am_bookmarks_dpi_OBJECTS)
-bookmarks_dpi_DEPENDENCIES = ../dpip/libDpip.a
-am_cookies_dpi_OBJECTS = cookies.$(OBJEXT) dpiutil.$(OBJEXT)
-cookies_dpi_OBJECTS = $(am_cookies_dpi_OBJECTS)
-cookies_dpi_DEPENDENCIES = ../dpip/libDpip.a
-am_datauri_filter_dpi_OBJECTS = datauri.$(OBJEXT) dpiutil.$(OBJEXT)
-datauri_filter_dpi_OBJECTS = $(am_datauri_filter_dpi_OBJECTS)
-datauri_filter_dpi_DEPENDENCIES = ../dpip/libDpip.a
-am__downloads_dpi_SOURCES_DIST = downloads-old.c dpiutil.c dpiutil.h \
-	downloads.cc
-@DLGUI_FALSE@am_downloads_dpi_OBJECTS = downloads-old.$(OBJEXT) \
-@DLGUI_FALSE@	dpiutil.$(OBJEXT)
-@DLGUI_TRUE@am_downloads_dpi_OBJECTS = downloads.$(OBJEXT) \
-@DLGUI_TRUE@	dpiutil.$(OBJEXT)
-downloads_dpi_OBJECTS = $(am_downloads_dpi_OBJECTS)
-@DLGUI_FALSE@downloads_dpi_DEPENDENCIES = ../dpip/libDpip.a
-@DLGUI_TRUE@downloads_dpi_DEPENDENCIES = ../dpip/libDpip.a
-am_file_dpi_OBJECTS = file.$(OBJEXT) dpiutil.$(OBJEXT)
-file_dpi_OBJECTS = $(am_file_dpi_OBJECTS)
-file_dpi_DEPENDENCIES = ../dpip/libDpip.a
-am_ftp_filter_dpi_OBJECTS = ftp.$(OBJEXT) dpiutil.$(OBJEXT)
-ftp_filter_dpi_OBJECTS = $(am_ftp_filter_dpi_OBJECTS)
-ftp_filter_dpi_DEPENDENCIES = ../dpip/libDpip.a
-am_hello_filter_dpi_OBJECTS = hello.$(OBJEXT) dpiutil.$(OBJEXT)
-hello_filter_dpi_OBJECTS = $(am_hello_filter_dpi_OBJECTS)
-hello_filter_dpi_DEPENDENCIES = ../dpip/libDpip.a
-am_https_filter_dpi_OBJECTS = https.$(OBJEXT) dpiutil.$(OBJEXT)
-https_filter_dpi_OBJECTS = $(am_https_filter_dpi_OBJECTS)
-https_filter_dpi_DEPENDENCIES = ../dpip/libDpip.a
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-SOURCES = $(bookmarks_dpi_SOURCES) $(cookies_dpi_SOURCES) \
-	$(datauri_filter_dpi_SOURCES) $(downloads_dpi_SOURCES) \
-	$(file_dpi_SOURCES) $(ftp_filter_dpi_SOURCES) \
-	$(hello_filter_dpi_SOURCES) $(https_filter_dpi_SOURCES)
-DIST_SOURCES = $(bookmarks_dpi_SOURCES) $(cookies_dpi_SOURCES) \
-	$(datauri_filter_dpi_SOURCES) \
-	$(am__downloads_dpi_SOURCES_DIST) $(file_dpi_SOURCES) \
-	$(ftp_filter_dpi_SOURCES) $(hello_filter_dpi_SOURCES) \
-	$(https_filter_dpi_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
@@ -155,6 +67,7 @@ EXEEXT = @EXEEXT@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_CONFIG = @GLIB_CONFIG@
 GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_CONFIG = @GTK_CONFIG@
 GTK_LIBS = @GTK_LIBS@
@@ -162,9 +75,12 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
 LDFLAGS = @LDFLAGS@
 LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
 LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
 LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
 LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
 LIBJPEG_LIBS = @LIBJPEG_LIBS@
@@ -176,8 +92,13 @@ LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
 LIBS = @LIBS@
 LIBSSL_LIBS = @LIBSSL_LIBS@
 LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -186,11 +107,16 @@ PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_RANLIB = @ac_ct_RANLIB@
@@ -202,8 +128,6 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TR
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -222,9 +146,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
-mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
@@ -236,8 +160,10 @@ target_alias = @target_alias@
 target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
+AM_CPPFLAGS = -DLOCALEDIR='"$(localedir)"'
 AM_CFLAGS = @GLIB_CFLAGS@
 AM_CXXFLAGS = @GLIB_CFLAGS@
+
 bookmarksdir = $(libdir)/dillo/dpi/bookmarks
 downloadsdir = $(libdir)/dillo/dpi/downloads
 ftpdir = $(libdir)/dillo/dpi/ftp
@@ -246,68 +172,135 @@ hellodir = $(libdir)/dillo/dpi/hello
 filedir = $(libdir)/dillo/dpi/file
 cookiesdir = $(libdir)/dillo/dpi/cookies
 datauridir = $(libdir)/dillo/dpi/datauri
+bookmarks_PROGRAMS = bookmarks.dpi
+downloads_PROGRAMS = downloads.dpi
+ftp_PROGRAMS = ftp.filter.dpi
+https_PROGRAMS = https.filter.dpi
+hello_PROGRAMS = hello.filter.dpi
+file_PROGRAMS = file.dpi
+cookies_PROGRAMS = cookies.dpi
+datauri_PROGRAMS = datauri.filter.dpi
+
 bookmarks_dpi_LDADD = @GLIB_LIBS@ ../dpip/libDpip.a
-@DLGUI_FALSE@downloads_dpi_LDADD = @GLIB_LIBS@ ../dpip/libDpip.a
 @DLGUI_TRUE@downloads_dpi_LDADD = @GLIB_LIBS@ @LIBFLTK_LIBS@ ../dpip/libDpip.a
+@DLGUI_FALSE@downloads_dpi_LDADD = @GLIB_LIBS@ ../dpip/libDpip.a
 ftp_filter_dpi_LDADD = @GLIB_LIBS@ ../dpip/libDpip.a
 https_filter_dpi_LDADD = @GLIB_LIBS@ @LIBSSL_LIBS@ ../dpip/libDpip.a
 hello_filter_dpi_LDADD = @GLIB_LIBS@ ../dpip/libDpip.a
 file_dpi_LDADD = @GLIB_LIBS@ @LIBPTHREAD_LIBS@ ../dpip/libDpip.a
 cookies_dpi_LDADD = @GLIB_LIBS@ ../dpip/libDpip.a
 datauri_filter_dpi_LDADD = @GLIB_LIBS@ ../dpip/libDpip.a
+
 file_dpi_LDFLAGS = @LIBPTHREAD_LDFLAGS@
+
 bookmarks_dpi_SOURCES = bookmarks.c dpiutil.c dpiutil.h
-@DLGUI_FALSE@downloads_dpi_SOURCES = downloads-old.c dpiutil.c dpiutil.h
 @DLGUI_TRUE@downloads_dpi_SOURCES = downloads.cc dpiutil.c dpiutil.h
+@DLGUI_FALSE@downloads_dpi_SOURCES = downloads-old.c dpiutil.c dpiutil.h
 ftp_filter_dpi_SOURCES = ftp.c dpiutil.c dpiutil.h
 https_filter_dpi_SOURCES = https.c dpiutil.c dpiutil.h
 hello_filter_dpi_SOURCES = hello.c dpiutil.c dpiutil.h
 file_dpi_SOURCES = file.c dpiutil.c dpiutil.h
 cookies_dpi_SOURCES = cookies.c dpiutil.c dpiutil.h
 datauri_filter_dpi_SOURCES = datauri.c dpiutil.c dpiutil.h
+subdir = dpi
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bookmarks_PROGRAMS = bookmarks.dpi$(EXEEXT)
+cookies_PROGRAMS = cookies.dpi$(EXEEXT)
+datauri_PROGRAMS = datauri.filter.dpi$(EXEEXT)
+downloads_PROGRAMS = downloads.dpi$(EXEEXT)
+file_PROGRAMS = file.dpi$(EXEEXT)
+ftp_PROGRAMS = ftp.filter.dpi$(EXEEXT)
+hello_PROGRAMS = hello.filter.dpi$(EXEEXT)
+https_PROGRAMS = https.filter.dpi$(EXEEXT)
+PROGRAMS = $(bookmarks_PROGRAMS) $(cookies_PROGRAMS) $(datauri_PROGRAMS) \
+	$(downloads_PROGRAMS) $(file_PROGRAMS) $(ftp_PROGRAMS) \
+	$(hello_PROGRAMS) $(https_PROGRAMS)
+
+am_bookmarks_dpi_OBJECTS = bookmarks.$(OBJEXT) dpiutil.$(OBJEXT)
+bookmarks_dpi_OBJECTS = $(am_bookmarks_dpi_OBJECTS)
+bookmarks_dpi_DEPENDENCIES = ../dpip/libDpip.a
+bookmarks_dpi_LDFLAGS =
+am_cookies_dpi_OBJECTS = cookies.$(OBJEXT) dpiutil.$(OBJEXT)
+cookies_dpi_OBJECTS = $(am_cookies_dpi_OBJECTS)
+cookies_dpi_DEPENDENCIES = ../dpip/libDpip.a
+cookies_dpi_LDFLAGS =
+am_datauri_filter_dpi_OBJECTS = datauri.$(OBJEXT) dpiutil.$(OBJEXT)
+datauri_filter_dpi_OBJECTS = $(am_datauri_filter_dpi_OBJECTS)
+datauri_filter_dpi_DEPENDENCIES = ../dpip/libDpip.a
+datauri_filter_dpi_LDFLAGS =
+am__downloads_dpi_SOURCES_DIST = downloads.cc dpiutil.c dpiutil.h \
+	downloads-old.c
+@DLGUI_TRUE@am_downloads_dpi_OBJECTS = downloads.$(OBJEXT) \
+@DLGUI_TRUE@	dpiutil.$(OBJEXT)
+@DLGUI_FALSE@am_downloads_dpi_OBJECTS = downloads-old.$(OBJEXT) \
+@DLGUI_FALSE@	dpiutil.$(OBJEXT)
+downloads_dpi_OBJECTS = $(am_downloads_dpi_OBJECTS)
+@DLGUI_TRUE@downloads_dpi_DEPENDENCIES = ../dpip/libDpip.a
+@DLGUI_FALSE@downloads_dpi_DEPENDENCIES = ../dpip/libDpip.a
+downloads_dpi_LDFLAGS =
+am_file_dpi_OBJECTS = file.$(OBJEXT) dpiutil.$(OBJEXT)
+file_dpi_OBJECTS = $(am_file_dpi_OBJECTS)
+file_dpi_DEPENDENCIES = ../dpip/libDpip.a
+am_ftp_filter_dpi_OBJECTS = ftp.$(OBJEXT) dpiutil.$(OBJEXT)
+ftp_filter_dpi_OBJECTS = $(am_ftp_filter_dpi_OBJECTS)
+ftp_filter_dpi_DEPENDENCIES = ../dpip/libDpip.a
+ftp_filter_dpi_LDFLAGS =
+am_hello_filter_dpi_OBJECTS = hello.$(OBJEXT) dpiutil.$(OBJEXT)
+hello_filter_dpi_OBJECTS = $(am_hello_filter_dpi_OBJECTS)
+hello_filter_dpi_DEPENDENCIES = ../dpip/libDpip.a
+hello_filter_dpi_LDFLAGS =
+am_https_filter_dpi_OBJECTS = https.$(OBJEXT) dpiutil.$(OBJEXT)
+https_filter_dpi_OBJECTS = $(am_https_filter_dpi_OBJECTS)
+https_filter_dpi_DEPENDENCIES = ../dpip/libDpip.a
+https_filter_dpi_LDFLAGS =
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/bookmarks.Po ./$(DEPDIR)/cookies.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/datauri.Po ./$(DEPDIR)/downloads-old.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/downloads.Po ./$(DEPDIR)/dpiutil.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/file.Po ./$(DEPDIR)/ftp.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/hello.Po ./$(DEPDIR)/https.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+DIST_SOURCES = $(bookmarks_dpi_SOURCES) $(cookies_dpi_SOURCES) \
+	$(datauri_filter_dpi_SOURCES) $(am__downloads_dpi_SOURCES_DIST) \
+	$(file_dpi_SOURCES) $(ftp_filter_dpi_SOURCES) \
+	$(hello_filter_dpi_SOURCES) $(https_filter_dpi_SOURCES)
+DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
+SOURCES = $(bookmarks_dpi_SOURCES) $(cookies_dpi_SOURCES) $(datauri_filter_dpi_SOURCES) $(downloads_dpi_SOURCES) $(file_dpi_SOURCES) $(ftp_filter_dpi_SOURCES) $(hello_filter_dpi_SOURCES) $(https_filter_dpi_SOURCES)
+
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .cc .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  dpi/Makefile'; \
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 	cd $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu  dpi/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+bookmarksPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-bookmarksPROGRAMS: $(bookmarks_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(bookmarksdir)" || $(mkdir_p) "$(DESTDIR)$(bookmarksdir)"
+	$(mkinstalldirs) $(DESTDIR)$(bookmarksdir)
 	@list='$(bookmarks_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) $(bookmarksPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bookmarksdir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(bookmarksPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bookmarksdir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(bookmarksPROGRAMS_INSTALL) $$p $(DESTDIR)$(bookmarksdir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(bookmarksPROGRAMS_INSTALL) $$p $(DESTDIR)$(bookmarksdir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -315,22 +308,23 @@ uninstall-bookmarksPROGRAMS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(bookmarks_PROGRAMS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bookmarksdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bookmarksdir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(bookmarksdir)/$$f"; \
+	  rm -f $(DESTDIR)$(bookmarksdir)/$$f; \
 	done
 
 clean-bookmarksPROGRAMS:
 	-test -z "$(bookmarks_PROGRAMS)" || rm -f $(bookmarks_PROGRAMS)
+cookiesPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-cookiesPROGRAMS: $(cookies_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(cookiesdir)" || $(mkdir_p) "$(DESTDIR)$(cookiesdir)"
+	$(mkinstalldirs) $(DESTDIR)$(cookiesdir)
 	@list='$(cookies_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) $(cookiesPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(cookiesdir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(cookiesPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(cookiesdir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(cookiesPROGRAMS_INSTALL) $$p $(DESTDIR)$(cookiesdir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(cookiesPROGRAMS_INSTALL) $$p $(DESTDIR)$(cookiesdir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -338,22 +332,23 @@ uninstall-cookiesPROGRAMS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(cookies_PROGRAMS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(cookiesdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(cookiesdir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(cookiesdir)/$$f"; \
+	  rm -f $(DESTDIR)$(cookiesdir)/$$f; \
 	done
 
 clean-cookiesPROGRAMS:
 	-test -z "$(cookies_PROGRAMS)" || rm -f $(cookies_PROGRAMS)
+datauriPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-datauriPROGRAMS: $(datauri_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(datauridir)" || $(mkdir_p) "$(DESTDIR)$(datauridir)"
+	$(mkinstalldirs) $(DESTDIR)$(datauridir)
 	@list='$(datauri_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) $(datauriPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(datauridir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(datauriPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(datauridir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(datauriPROGRAMS_INSTALL) $$p $(DESTDIR)$(datauridir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(datauriPROGRAMS_INSTALL) $$p $(DESTDIR)$(datauridir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -361,22 +356,23 @@ uninstall-datauriPROGRAMS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(datauri_PROGRAMS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(datauridir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(datauridir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(datauridir)/$$f"; \
+	  rm -f $(DESTDIR)$(datauridir)/$$f; \
 	done
 
 clean-datauriPROGRAMS:
 	-test -z "$(datauri_PROGRAMS)" || rm -f $(datauri_PROGRAMS)
+downloadsPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-downloadsPROGRAMS: $(downloads_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(downloadsdir)" || $(mkdir_p) "$(DESTDIR)$(downloadsdir)"
+	$(mkinstalldirs) $(DESTDIR)$(downloadsdir)
 	@list='$(downloads_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) $(downloadsPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(downloadsdir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(downloadsPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(downloadsdir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(downloadsPROGRAMS_INSTALL) $$p $(DESTDIR)$(downloadsdir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(downloadsPROGRAMS_INSTALL) $$p $(DESTDIR)$(downloadsdir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -384,22 +380,23 @@ uninstall-downloadsPROGRAMS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(downloads_PROGRAMS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(downloadsdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(downloadsdir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(downloadsdir)/$$f"; \
+	  rm -f $(DESTDIR)$(downloadsdir)/$$f; \
 	done
 
 clean-downloadsPROGRAMS:
 	-test -z "$(downloads_PROGRAMS)" || rm -f $(downloads_PROGRAMS)
+filePROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-filePROGRAMS: $(file_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(filedir)" || $(mkdir_p) "$(DESTDIR)$(filedir)"
+	$(mkinstalldirs) $(DESTDIR)$(filedir)
 	@list='$(file_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) $(filePROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(filedir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(filePROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(filedir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(filePROGRAMS_INSTALL) $$p $(DESTDIR)$(filedir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(filePROGRAMS_INSTALL) $$p $(DESTDIR)$(filedir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -407,22 +404,23 @@ uninstall-filePROGRAMS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(file_PROGRAMS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(filedir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(filedir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(filedir)/$$f"; \
+	  rm -f $(DESTDIR)$(filedir)/$$f; \
 	done
 
 clean-filePROGRAMS:
 	-test -z "$(file_PROGRAMS)" || rm -f $(file_PROGRAMS)
+ftpPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-ftpPROGRAMS: $(ftp_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(ftpdir)" || $(mkdir_p) "$(DESTDIR)$(ftpdir)"
+	$(mkinstalldirs) $(DESTDIR)$(ftpdir)
 	@list='$(ftp_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) $(ftpPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(ftpdir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(ftpPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(ftpdir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(ftpPROGRAMS_INSTALL) $$p $(DESTDIR)$(ftpdir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(ftpPROGRAMS_INSTALL) $$p $(DESTDIR)$(ftpdir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -430,22 +428,23 @@ uninstall-ftpPROGRAMS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(ftp_PROGRAMS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(ftpdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(ftpdir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(ftpdir)/$$f"; \
+	  rm -f $(DESTDIR)$(ftpdir)/$$f; \
 	done
 
 clean-ftpPROGRAMS:
 	-test -z "$(ftp_PROGRAMS)" || rm -f $(ftp_PROGRAMS)
+helloPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-helloPROGRAMS: $(hello_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(hellodir)" || $(mkdir_p) "$(DESTDIR)$(hellodir)"
+	$(mkinstalldirs) $(DESTDIR)$(hellodir)
 	@list='$(hello_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) $(helloPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(hellodir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(helloPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(hellodir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(helloPROGRAMS_INSTALL) $$p $(DESTDIR)$(hellodir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(helloPROGRAMS_INSTALL) $$p $(DESTDIR)$(hellodir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -453,22 +452,23 @@ uninstall-helloPROGRAMS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(hello_PROGRAMS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(hellodir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(hellodir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(hellodir)/$$f"; \
+	  rm -f $(DESTDIR)$(hellodir)/$$f; \
 	done
 
 clean-helloPROGRAMS:
 	-test -z "$(hello_PROGRAMS)" || rm -f $(hello_PROGRAMS)
+httpsPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 install-httpsPROGRAMS: $(https_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(httpsdir)" || $(mkdir_p) "$(DESTDIR)$(httpsdir)"
+	$(mkinstalldirs) $(DESTDIR)$(httpsdir)
 	@list='$(https_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) $(httpsPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(httpsdir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(httpsPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(httpsdir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(httpsPROGRAMS_INSTALL) $$p $(DESTDIR)$(httpsdir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(httpsPROGRAMS_INSTALL) $$p $(DESTDIR)$(httpsdir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -476,8 +476,8 @@ uninstall-httpsPROGRAMS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(https_PROGRAMS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(httpsdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(httpsdir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(httpsdir)/$$f"; \
+	  rm -f $(DESTDIR)$(httpsdir)/$$f; \
 	done
 
 clean-httpsPROGRAMS:
@@ -508,7 +508,7 @@ https.filter.dpi$(EXEEXT): $(https_filte
 	$(LINK) $(https_filter_dpi_LDFLAGS) $(https_filter_dpi_OBJECTS) $(https_filter_dpi_LDADD) $(LIBS)
 
 mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
@@ -525,34 +525,58 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/https.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
 
 .c.obj:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
 
 .cc.o:
-@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCXX_TRUE@	  -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCXX_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCXX_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
 
 .cc.obj:
-@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCXX_TRUE@	  -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCXX_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCXX_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
 uninstall-info-am:
 
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -561,7 +585,6 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
-tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -573,11 +596,10 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEP
 	  done | \
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -600,6 +622,10 @@ GTAGS:
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -613,7 +639,7 @@ distdir: $(DISTFILES)
 	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
 	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
 	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
 	  else \
 	    dir=''; \
 	  fi; \
@@ -631,10 +657,9 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: check-am
 all-am: Makefile $(PROGRAMS)
+
 installdirs:
-	for dir in "$(DESTDIR)$(bookmarksdir)" "$(DESTDIR)$(cookiesdir)" "$(DESTDIR)$(datauridir)" "$(DESTDIR)$(downloadsdir)" "$(DESTDIR)$(filedir)" "$(DESTDIR)$(ftpdir)" "$(DESTDIR)$(hellodir)" "$(DESTDIR)$(httpsdir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
+	$(mkinstalldirs) $(DESTDIR)$(bookmarksdir) $(DESTDIR)$(cookiesdir) $(DESTDIR)$(datauridir) $(DESTDIR)$(downloadsdir) $(DESTDIR)$(filedir) $(DESTDIR)$(ftpdir) $(DESTDIR)$(hellodir) $(DESTDIR)$(httpsdir)
 install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
@@ -654,7 +679,7 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-rm -f $(CONFIG_CLEAN_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -676,8 +701,6 @@ dvi: dvi-am
 
 dvi-am:
 
-html: html-am
-
 info: info-am
 
 info-am:
@@ -724,7 +747,7 @@ uninstall-am: uninstall-bookmarksPROGRAM
 	clean-filePROGRAMS clean-ftpPROGRAMS clean-generic \
 	clean-helloPROGRAMS clean-httpsPROGRAMS ctags distclean \
 	distclean-compile distclean-generic distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
+	dvi-am info info-am install install-am \
 	install-bookmarksPROGRAMS install-cookiesPROGRAMS install-data \
 	install-data-am install-datauriPROGRAMS \
 	install-downloadsPROGRAMS install-exec install-exec-am \
diff -pruN dillo-0.8.6/dpi/bookmarks.c dillo-0.8.6-i18n-misc-20060709/dpi/bookmarks.c
--- dillo-0.8.6/dpi/bookmarks.c	2006-01-21 10:27:22.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/bookmarks.c	2006-07-08 21:17:17.000000000 +0900
@@ -19,6 +19,7 @@
  * final '>' of a tag.
  */
 
+#include <config.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stddef.h>
@@ -38,6 +39,7 @@
 #include "dpiutil.h"
 
 #include <glib.h>
+#include "src/intl.h"
 
 /* This one is tricky, some sources state it should include the byte
  * for the terminating NULL, and others say it shouldn't. */
@@ -71,7 +73,7 @@ typedef struct {
 /*
  * Local data
  */
-static char *Header = "Content-type: text/html\n\n";
+static char *Header = "Content-type: text/html charset=UTF-8\n\n";
 static char *BmFile = NULL;
 static time_t BmFileTimeStamp = 0;
 static GSList *B_bms = NULL;
@@ -91,7 +93,7 @@ static int MODIFY_PAGE_NUM = 1;
 /* -- HTML templates ------------------------------------------------------- */
 
 char *mainpage_header =
-DOCTYPE
+N_("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
 "<html>\n"
 "<head>\n"
 "<title>Bookmarks</title>\n"
@@ -107,10 +109,10 @@ DOCTYPE
 "    </td></tr>\n"
 "  </table></td></tr>\n"
 "</table>\n"
-"<br>\n";
+"<br>\n");
 
 char *modifypage_header =
-DOCTYPE
+N_("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
 "<html>\n"
 "<head>\n"
 "<title>Bookmarks</title>\n"
@@ -143,25 +145,25 @@ DOCTYPE
 "    <td width='100%'></td>\n"
 "    </tr>\n"
 "  </table></td></tr>\n"
-"</table>\n";
+"</table>\n");
 
 char *mainpage_sections_header =
-"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+N_("<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
 " <tr valign='top'>\n"
 "  <td>\n"
 "   <table bgcolor='#b4b4b4' border='2' cellpadding='4' cellspacing='1'>\n"
 "    <tr><td>\n"
 "     <table width='100%' bgcolor='#b4b4b4'>\n"
-"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n";
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n");
 
 char *modifypage_sections_header =
-"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+N_("<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
 " <tr valign='top'>\n"
 "  <td>\n"
 "   <table bgcolor='#b4b4b4' border='1'>\n"
 "    <tr><td>\n"
 "     <table width='100%' bgcolor='#b4b4b4'>\n"
-"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n";
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n");
 
 char *mainpage_sections_item =
 "    <tr><td align='center'>\n"
@@ -192,7 +194,7 @@ char *mainpage_section_card_header =
 "   <a name='s%d'></a>\n"
 "   <table bgcolor='#bfbfbf' width='100%%' cellspacing='2'>\n"
 "    <tr>\n"
-"     <td bgcolor='#bf0c0c'><font color='white'><b>\n"
+"     <td bgcolor='#bf0c0c' width='100%%'><font color='white'><b>\n"
 "      &nbsp;&nbsp;&nbsp;%s&nbsp;&nbsp;&nbsp;</b></font></td>\n"
 "     <td bgcolor='white' width='100%%'>&nbsp;</td></tr>\n";
 
@@ -200,7 +202,7 @@ char *modifypage_section_card_header =
 "   <a name='s%d'></a>\n"
 "   <table bgcolor='#bfbfbf' width='100%%' cellspacing='2'>\n"
 "    <tr>\n"
-"     <td bgcolor='#bf0c0c'><font color='white'><b>\n"
+"     <td bgcolor='#bf0c0c' width='100%%'><font color='white'><b>\n"
 "      &nbsp;&nbsp;&nbsp;%s&nbsp;&nbsp;&nbsp;</b></font></td>\n"
 "     <td bgcolor='white' width='100%%'>&nbsp;</td></tr>\n";
 
@@ -238,7 +240,7 @@ char *modifypage_footer =
 
 /* ------------------------------------------------------------------------- */
 char *modifypage_add_section_page =
-DOCTYPE
+N_("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
 "<html>\n"
 "<head>\n"
 "<title>Bookmarks</title>\n"
@@ -274,11 +276,11 @@ DOCTYPE
 "</form>\n"
 "</body>\n"
 "</html>\n"
-"\n";
+"\n");
 
 /* ------------------------------------------------------------------------- */
 char *modifypage_update_header =
-DOCTYPE
+N_("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
 "<html>\n"
 "<head>\n"
 "<title>Bookmarks</title>\n"
@@ -292,7 +294,7 @@ DOCTYPE
 "</table>\n"
 "<br>\n"
 "<form>\n"
-"<input type='hidden' name='operation' value='modify2'>\n";
+"<input type='hidden' name='operation' value='modify2'>\n");
 
 char *modifypage_update_title =
 "<table border='1' width='100%%'>\n"
@@ -305,7 +307,7 @@ char *modifypage_update_item_header =
 "<table width='100%' cellpadding='10'>\n";
 
 char *modifypage_update_item =
-"<tr><td>\n"
+N_("<tr><td>\n"
 " <table width='100%%' bgcolor='teal'>\n"
 "  <tr>\n"
 "   <td>Title:</td>\n"
@@ -315,33 +317,33 @@ char *modifypage_update_item =
 "   <td>URL:</td>\n"
 "   <td>%s</td></tr>\n"
 " </table>\n"
-" </td></tr>\n";
+" </td></tr>\n");
 
 char *modifypage_update_item2 =
-"<tr><td>\n"
+N_("<tr><td>\n"
 " <table width='100%%' bgcolor='teal'>\n"
 "  <tr>\n"
 "   <td>Title:</td>\n"
 "   <td><input type='text' name='s%d' size='64'\n"
 "        value='%s'></td></tr>\n"
 " </table>\n"
-" </td></tr>\n";
+" </td></tr>\n");
 
 char *modifypage_update_item_footer =
 "</table>\n";
 
 char *modifypage_update_footer =
-"<table width='100%' cellpadding='4' border='0'>\n"
+N_("<table width='100%' cellpadding='4' border='0'>\n"
 "<tr><td bgcolor='#a0a0a0'>\n"
 " <input type='submit' name='submit' value='submit.'></td></tr>\n"
 "</table>\n"
 "</form>\n"
 "</body>\n"
-"</html>\n";
+"</html>\n");
 
 /* ------------------------------------------------------------------------- */
 char *modifypage_add_url =
-DOCTYPE
+N_("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
 "<html>\n"
 "<head>\n"
 "<title>Bookmarks</title>\n"
@@ -379,7 +381,7 @@ DOCTYPE
 "</table>\n"
 "</form>\n"
 "</body>\n"
-"</html>\n";
+"</html>\n");
 
 
 /* ------------------------------------------------------------------------- */
@@ -686,7 +688,7 @@ static void Bms_normalize(void)
 
    /* we need at least one section */
    if (!B_secs)
-      Bms_sec_add("Unclassified");
+      Bms_sec_add(_("Unclassified"));
 
    /* make correlative section numbers */
    n = 0;
@@ -719,7 +721,7 @@ static void Bms_check_import(void)
 {
    gchar *OldBmFile;
    char *cmd1 =
-      "echo \":s0: Unclassified\" > %s";
+      _("echo \":s0: Unclassified\" > %s");
    char *cmd2 =
       "grep -i \"href\" %s | "
       "sed -e 's/<li><A HREF=\"/s0 /' -e 's/\">/ /' -e 's/<.*$//' >> %s";
@@ -781,7 +783,7 @@ static int Bms_load(void)
          Bms_sec_add(title);
 
       } else {
-         g_print("Syntax error in bookmarks file:\n %s", buf);
+         g_print(_("Syntax error in bookmarks file:\n %s"), buf);
       }
       g_free(buf);
    }
@@ -893,7 +895,7 @@ static int Bms_save(void)
 static int Bmsrv_add_bm(SockHandler *sh, char *url, char *title)
 {
    char *u_title;
-   char *msg="Added bookmark!";
+   char *msg=_("Added bookmark!");
    int section = 0;
 
    /* Add in memory */
@@ -942,7 +944,7 @@ static int Bmsrv_send_reload_request(Soc
 {
    gint st;
    char *d_cmd;
-
+ 
    d_cmd = a_Dpip_build_cmd("cmd=%s url=%s", "reload_request", url);
    st = sock_handler_write_str(sh, d_cmd, 1) ? 1 : 0;
    g_free(d_cmd);
@@ -965,11 +967,11 @@ static int Bmsrv_send_modify_page(SockHa
       gstr = g_string_new("");
 
    /* send modify page header */
-   if (sock_handler_write_str(sh, modifypage_header, 0))
+   if (sock_handler_write_str(sh, _(modifypage_header), 0))
       return 1;
 
    /* write sections header */
-   if (sock_handler_write_str(sh, modifypage_sections_header, 0))
+   if (sock_handler_write_str(sh, _(modifypage_sections_header), 0))
       return 1;
    /* write sections */
    for (list1 = B_secs; list1; list1 = list1->next) {
@@ -993,7 +995,7 @@ static int Bmsrv_send_modify_page(SockHa
 
       /* send card header */
       l_title = make_one_line_str(sec_node->title);
-      g_string_sprintf(gstr, modifypage_section_card_header,
+      g_string_sprintf(gstr, _(modifypage_section_card_header),
                        sec_node->section, l_title);
       g_free(l_title);
       if (sock_handler_write_str(sh, gstr->str, 0))
@@ -1029,7 +1031,7 @@ static int Bmsrv_send_modify_page(SockHa
 static int Bmsrv_send_modify_page_add_section(SockHandler *sh)
 {
    /* send modify page2 */
-   if (sock_handler_write_str(sh, modifypage_add_section_page, 1))
+   if (sock_handler_write_str(sh, _(modifypage_add_section_page), 1))
       return 1;
 
    return 2;
@@ -1041,7 +1043,7 @@ static int Bmsrv_send_modify_page_add_se
  */
 static int Bmsrv_send_modify_page_add_url(SockHandler *sh)
 {
-   if (sock_handler_write_str(sh, modifypage_add_url, 1))
+   if (sock_handler_write_str(sh, _(modifypage_add_url), 1))
       return 1;
    return 2;
 }
@@ -1075,14 +1077,14 @@ static int Bmsrv_send_modify_update(Sock
    }
 
    /* send HTML here */
-   if (sock_handler_write_str(sh, modifypage_update_header, 0))
+   if (sock_handler_write_str(sh, _(modifypage_update_header), 0))
       return 1;
 
    /* Count number of marked urls and sections */
    Bmsrv_count_urls_and_sections(url1, &n_sec, &n_url);
 
    if (n_sec) {
-      g_string_sprintf(gstr, modifypage_update_title, "Update&nbsp;sections:");
+      g_string_sprintf(gstr, modifypage_update_title, _("Update&nbsp;sections:"));
       sock_handler_write_str(sh, gstr->str, 0);
       sock_handler_write_str(sh, modifypage_update_item_header, 0);
       /* send items here */
@@ -1092,7 +1094,7 @@ static int Bmsrv_send_modify_update(Sock
          if (q[2+i] == '=') {
             key = strtol(q + 2, NULL, 10);
             if ((sec_node = Bms_get_sec(key))) {
-               g_string_sprintf(gstr, modifypage_update_item2,
+               g_string_sprintf(gstr, _(modifypage_update_item2),
                                 sec_node->section, sec_node->title);
                sock_handler_write_str(sh, gstr->str, 0);
             }
@@ -1102,7 +1104,7 @@ static int Bmsrv_send_modify_update(Sock
    }
 
    if (n_url) {
-      g_string_sprintf(gstr, modifypage_update_title, "Update&nbsp;titles:");
+      g_string_sprintf(gstr, modifypage_update_title, _("Update&nbsp;titles:"));
       sock_handler_write_str(sh, gstr->str, 0);
       sock_handler_write_str(sh, modifypage_update_item_header, 0);
       /* send items here */
@@ -1112,7 +1114,7 @@ static int Bmsrv_send_modify_update(Sock
          if (q[4+i] == '=') {
             key = strtol(q + 4, NULL, 10);
             bm_node = Bms_get(key);
-            g_string_sprintf(gstr, modifypage_update_item,
+            g_string_sprintf(gstr, _(modifypage_update_item),
                              bm_node->key, bm_node->title, bm_node->url);
             sock_handler_write_str(sh, gstr->str, 0);
          }
@@ -1120,7 +1122,7 @@ static int Bmsrv_send_modify_update(Sock
       sock_handler_write_str(sh, modifypage_update_item_footer, 0);
    }
 
-   sock_handler_write_str(sh, modifypage_update_footer, 1);
+   sock_handler_write_str(sh, _(modifypage_update_footer), 1);
 
    return 2;
 }
@@ -1399,22 +1401,22 @@ static int Bmsrv_check_modify_request(So
    if (strstr(p, "operation=delete&")) {
       if (n_url || n_sec)
          return 0;
-      msg = "Delete: you must mark what to delete!";
+      msg = _("Delete: you must mark what to delete!");
 
    } else if (strstr(url, "operation=move&")) {
       if (n_url && n_sec)
          return 0;
       else if (n_url)
-         msg = "Move: you must mark a target section!";
+         msg = _("Move: you must mark a target section!");
       else if (n_sec)
-         msg = "Move: can not move a section (yet).";
+         msg = _("Move: can not move a section (yet).");
       else
-         msg = "Move: you must mark some urls, and a target section!";
+         msg = _("Move: you must mark some urls, and a target section!");
 
    } else if (strstr(url, "operation=modify&")) {
       if (n_url || n_sec)
          return 0;
-      msg = "Modify: you must mark what to update!";
+      msg = _("Modify: you must mark what to update!");
 
    } else if (strstr(url, "operation=modify2&")) {
       /* nothing to check here */
@@ -1431,17 +1433,17 @@ static int Bmsrv_check_modify_request(So
    } else if (strstr(url, "operation=add_url&")) {
       if (n_sec <= 1)
          return 0;
-      msg = "Add url: only one target section is allowed!";
+      msg = _("Add url: only one target section is allowed!");
 
    } else if (strstr(url, "operation=add_url2&")) {
       /* nothing to check here */
       return 0;
 
    } else if (strstr(url, "operation=none&")) {
-      msg = "No operation, just do nothing!";
+      msg = _("No operation, just do nothing!");
 
    } else {
-      msg = "Sorry, not implemented yet.";
+      msg = _("Sorry, not implemented yet.");
    }
 
    Bmsrv_dpi_send_status_msg(sh, msg);
@@ -1529,11 +1531,11 @@ static int send_bm_page(SockHandler *sh)
    if (!gstr)
       gstr = g_string_new("");
 
-   if (sock_handler_write_str(sh, mainpage_header, 0))
+   if (sock_handler_write_str(sh, _(mainpage_header), 0))
       return 1;
 
    /* write sections header */
-   if (sock_handler_write_str(sh, mainpage_sections_header, 0))
+   if (sock_handler_write_str(sh, _(mainpage_sections_header), 0))
       return 1;
    /* write sections */
    for (list1 = B_secs; list1; list1 = list1->next) {
@@ -1557,7 +1559,7 @@ static int send_bm_page(SockHandler *sh)
 
       /* send card header */
       l_title = make_one_line_str(sec_node->title);
-      g_string_sprintf(gstr, mainpage_section_card_header,
+      g_string_sprintf(gstr, _(mainpage_section_card_header),
                        sec_node->section, l_title);
       g_free(l_title);
       if (sock_handler_write_str(sh, gstr->str, 0))
@@ -1609,7 +1611,7 @@ static int Bmsrv_parse_buf(SockHandler *
 
    if (!(p = strchr(Buf, '>'))) {
       /* Haven't got a full tag */
-      g_print("Haven't got a full tag!\n");
+      g_print(_("Haven't got a full tag!\n"));
       return 1;
    }
 
@@ -1648,7 +1650,7 @@ static int Bmsrv_parse_buf(SockHandler *
       title = a_Dpip_get_attr(Buf, BufSize, "title");
       if (strlen(title) == 0) {
          g_free(title);
-         title = g_strdup("(Untitled)");
+         title = g_strdup(_("(Untitled)"));
       }
       if (url && title)
          Bmsrv_add_bm(sh, url, title);
@@ -1685,8 +1687,8 @@ static int Bmsrv_parse_buf(SockHandler *
       st = send_bm_page(sh);
       if (st != 0) {
          char *err =
-            DOCTYPE
-            "<HTML><body> Error on the bookmarks server...</body></html>";
+            _("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+              "<HTML><body> Error on the bookmarks server...</body></html>");
          if (sock_handler_write(sh, err, strlen(err), 1) != 0) {
             return 1;
          }
@@ -1727,6 +1729,14 @@ int main (void) {
    int code;
    SockHandler *sh;
 
+   /* Initialize Gettext */
+#ifdef ENABLE_NLS
+   setlocale(LC_ALL, "");
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   bind_textdomain_codeset (PACKAGE, "UTF-8");
+   textdomain (PACKAGE);
+#endif
+   
    /* Arrange the cleanup function for terminations via exit() */
    atexit(cleanup);
 
@@ -1740,7 +1750,7 @@ int main (void) {
 
    BmFile = g_strconcat(g_get_home_dir(), "/", ".dillo/bm.txt", NULL);
 
-   g_print("bookmarks.dpi (v.13): accepting connections...\n");
+   //g_print(_("bookmarks.dpi (v.13): accepting connections...\n"));
 
    /* some OSes may need this... */
    address_size = sizeof(struct sockaddr_un);
@@ -1768,6 +1778,7 @@ int main (void) {
             break;
       }
 
+      //g_print("Closing SockHandler\n");
       sock_handler_close(sh);
       sock_handler_free(sh);
 
diff -pruN dillo-0.8.6/dpi/cookies.c dillo-0.8.6-i18n-misc-20060709/dpi/cookies.c
--- dillo-0.8.6/dpi/cookies.c	2006-02-15 22:27:27.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/cookies.c	2006-05-16 01:21:15.000000000 +0900
@@ -187,7 +187,7 @@ static FILE *Cookies_fopen(const char *f
             write(fd, init_str, strlen(init_str));
          close(fd);
 
-         MSG("Created file: %s\n", filename);
+         _MSG("Created file: %s\n", filename);
          F_in = Cookies_fopen(filename, NULL);
       } else {
          MSG("Could not create file: %s!\n", filename);
@@ -263,7 +263,7 @@ void Cookies_init()
       return;
    }
 
-   MSG("Enabling cookies as from cookiesrc...\n");
+   _MSG("Enabling cookies as from cookiesrc...\n");
 
    cookies = g_hash_table_new(g_str_hash, g_str_equal);
 
@@ -574,7 +574,7 @@ static time_t Cookies_create_timestamp(c
                   (minutes * 60) +
                   seconds);
 
-   MSG("Expires in %ld seconds, at %s",
+   _MSG("Expires in %ld seconds, at %s",
        (long)ret - time(NULL), ctime(&ret));
 
    return ret;
@@ -717,7 +717,7 @@ static char *Cookies_parse_attr(char **c
 {
    char *str = *cookie_str;
    guint i, end = 0;
-   gboolean got_attr = FALSE;
+   gboolean got_attr = FALSE, have_value = TRUE;;
 
    for (i = 0; ; i++) {
       switch (str[i]) {
@@ -726,6 +726,10 @@ static char *Cookies_parse_attr(char **c
       case '=':
       case ';':
          got_attr = TRUE;
+         if(str[i] == '=' && str[i+1] == ';'){
+             _MSG("no value\n");
+             have_value = FALSE;
+         }
          if (end == 0)
             end = i;
          break;
@@ -741,6 +745,7 @@ static char *Cookies_parse_attr(char **c
          /* fall through! */
       default:
          if (got_attr) {
+            if(!have_value) i--;
             *cookie_str = str + i;
             return g_strndup(str, end);
          }
@@ -762,6 +767,11 @@ static char *Cookies_parse_value(char **
    guint i, end;
    char *str = *cookie_str;
 
+   if (str[0] == ';') {
+       cookie_str += 1;
+       return strdup("");
+   }
+
    for (i = end = 0; !end; ++i) {
       switch (str[i]) {
       case ' ':
@@ -880,7 +890,7 @@ static CookieData_t *Cookies_parse_one(g
          }
       } else if (g_strcasecmp(attr, "Expires") == 0) {
          if (!max_age && !discard) {
-            MSG("Old netscape-style cookie...\n");
+            _MSG("Old netscape-style cookie...\n");
             value = Cookies_parse_value(&str, TRUE, FALSE);
             if (value) {
                cookie->expires_at = Cookies_create_timestamp(value);
@@ -1225,7 +1235,7 @@ static int Cookie_control_init(void)
 
    /* Get a file pointer */
    filename = g_strconcat(g_get_home_dir(), "/", ".dillo/cookiesrc", NULL);
-   stream = Cookies_fopen(filename, "DEFAULT DENY\n");
+   stream = Cookies_fopen(filename, "DEFAULT ACCEPT\n");
    g_free(filename);
 
    if (!stream)
@@ -1341,7 +1351,7 @@ static int srv_parse_buf(SockHandler *sh
 
    if (cmd && strcmp(cmd, "DpiBye") == 0) {
       g_free(cmd);
-      MSG("Cookies dpi (pid %d): Got DpiBye.\n", (gint)getpid());
+      _MSG("Cookies dpi (pid %d): Got DpiBye.\n", (gint)getpid());
       exit(0);
 
    } else if (cmd && strcmp(cmd, "set_cookie") == 0) {
@@ -1398,7 +1408,7 @@ static int srv_parse_buf(SockHandler *sh
 static void cleanup(void)
 {
   Cookies_freeall();
-  MSG("cleanup\n");
+  _MSG("cleanup\n");
   /* no more cleanup required */
 }
 
@@ -1434,7 +1444,7 @@ int main (void) {
      signal (SIGTERM, SIG_IGN);
 
    Cookies_init();
-   MSG("(v.1) accepting connections...\n");
+   _MSG("(v.1) accepting connections...\n");
 
    if (disabled)
       exit(1);
diff -pruN dillo-0.8.6/dpi/dpiutil.c dillo-0.8.6-i18n-misc-20060709/dpi/dpiutil.c
--- dillo-0.8.6/dpi/dpiutil.c	2006-01-21 05:06:55.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/dpiutil.c	2006-05-16 01:21:15.000000000 +0900
@@ -95,8 +95,8 @@ gchar *Unescape_html_str(const gchar *st
             if (!g_strncasecmp(str + i, unsafe_rep[k], unsafe_rep_len[k])) {
                i += unsafe_rep_len[k] - 1;
                break;
-            }
-         }
+      }
+   }
          u_str[j++] = (k < 5) ? unsafe_chars[k] : str[i];
       } else {
          u_str[j++] = str[i];
@@ -139,7 +139,7 @@ char *Filter_smtp_hack(char *url)
 
 /*
  * Create and initialize the SockHandler structure
- */
+ */ 
 SockHandler *sock_handler_new(int fd_in, int fd_out, int flush_sz)
 {
    SockHandler *sh = g_new(SockHandler, 1);
@@ -232,7 +232,7 @@ gchar *sock_handler_read(SockHandler *sh
    do
       st = read(sh->fd_in, buf, 16384);
    while (st < 0 && errno == EINTR);
-
+   
    if (st == -1)
       perror("[sock_handler_read]");
 
diff -pruN dillo-0.8.6/dpi/file.c dillo-0.8.6-i18n-misc-20060709/dpi/file.c
--- dillo-0.8.6/dpi/file.c	2006-04-12 02:50:23.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/file.c	2006-05-16 01:21:15.000000000 +0900
@@ -525,7 +525,7 @@ static const char *File_content_type(con
 /*
  * Try to stat the file and determine if it's readable.
  */
-static void File_get(ClientInfo *Client, const char *filename,
+static void File_get(ClientInfo *Client, const char *filename, 
                      const char *orig_url)
 {
    int res;
@@ -545,7 +545,7 @@ static void File_get(ClientInfo *Client,
 
    if (res == FILE_NOT_FOUND) {
       msg = g_strdup_printf("%s Not Found: %s",
-               S_ISDIR(sb.st_mode) ? "Directory" : "File", filename);
+         S_ISDIR(sb.st_mode) ? "Directory" : "File", filename);
    } else if (res == FILE_NO_ACCESS) {
       msg = g_strdup_printf("Access denied to %s: %s",
                S_ISDIR(sb.st_mode) ? "Directory" : "File", filename);
@@ -715,7 +715,7 @@ static char *File_normalize_path(const c
       if (str[1] == '\0' || str[1] == '/') {
          /* User wants the CWD */
          basename = g_get_current_dir();
-         str++;
+         str++; 
       } else if (str[1] == '.') {
          /* One level down from the CWD */
          char *tmp1 = g_get_current_dir();
@@ -941,11 +941,11 @@ int main(void)
 
    /* Arrange the cleanup function for abnormal terminations */
    if (signal (SIGINT, termination_handler) == SIG_IGN)
-     signal (SIGINT, SIG_IGN);
+     signal (SIGINT, SIG_IGN);  
    if (signal (SIGHUP, termination_handler) == SIG_IGN)
-     signal (SIGHUP, SIG_IGN);
+     signal (SIGHUP, SIG_IGN);  
    if (signal (SIGTERM, termination_handler) == SIG_IGN)
-     signal (SIGTERM, SIG_IGN);
+     signal (SIGTERM, SIG_IGN); 
 
    MSG("(v.1) accepting connections...\n");
 
@@ -972,7 +972,7 @@ int main(void)
          accept(STDIN_FILENO, (struct sockaddr *)&spun, &address_size);
 
       if (temp_sock_descriptor == -1) {
-         perror("[accept]");
+         perror("[accept]");    
          break;
       }
 
diff -pruN dillo-0.8.6/dpi/ftp.c dillo-0.8.6-i18n-misc-20060709/dpi/ftp.c
--- dillo-0.8.6/dpi/ftp.c	2006-04-04 21:48:45.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/ftp.c	2006-05-16 01:21:15.000000000 +0900
@@ -248,7 +248,7 @@ static gint try_ftp_transfer(gchar *url)
       }
 
       if (!aborted)
-         sock_handler_write(sh, buf, n, 0);
+      sock_handler_write(sh, buf, n, 0);
    }
 
    return nb;
diff -pruN dillo-0.8.6/dpi/hello.c dillo-0.8.6-i18n-misc-20060709/dpi/hello.c
--- dillo-0.8.6/dpi/hello.c	2006-01-18 00:21:53.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/hello.c	2006-05-16 01:21:15.000000000 +0900
@@ -131,7 +131,7 @@ int main(void)
       /* Read/Write */
       while ((n = fread (buf, 1, 4096, in_stream)) > 0) {
          sock_handler_write(sh, buf, n, 0);
-      }
+      }                   
 
       sock_handler_printf(sh, 0, "</pre>\n");
 
diff -pruN dillo-0.8.6/dpi/https.c dillo-0.8.6-i18n-misc-20060709/dpi/https.c
--- dillo-0.8.6/dpi/https.c	2006-03-25 00:52:23.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpi/https.c	2006-05-16 01:21:15.000000000 +0900
@@ -134,7 +134,7 @@ static void yes_ssl_support(void)
       /*Insufficient entropy.  Deal with it?*/
       g_printerr("Insufficient random entropy\n");
    }
-
+   
    /*Create context and SSL object*/
    if (exit_error == 0){
       ssl_context = SSL_CTX_new(SSLv23_client_method());
@@ -171,7 +171,7 @@ static void yes_ssl_support(void)
    }
 
    if (exit_error == 0){
-      /* Need to do the following if we want to deal with all
+      /* Need to do the following if we want to deal with all 
        * possible ciphers
        */
       SSL_set_cipher_list(ssl_connection, "ALL");
@@ -268,7 +268,7 @@ static void yes_ssl_support(void)
 }
 
 /*
- * The following function attempts to open up a connection to the
+ * The following function attempts to open up a connection to the 
  * remote server and return the file descriptor number of the
  * socket.  Returns -1 in the event of an error
  */
@@ -302,7 +302,7 @@ static int get_network_connection(gchar 
    } else {
       url_look_up = url + url_offset;
    }
-
+  
    root_url = g_strdup(url_look_up);
    hp=gethostbyname(url_look_up);
 
@@ -331,7 +331,7 @@ static int get_network_connection(gchar 
 }
 
 
-/* This function is run only when the certificate cannot
+/* This function is run only when the certificate cannot 
  * be completely trusted.  This will notify the user and
  * allow the user to decide what to do.  It may save the
  * certificate to the user's .dillo directory if it is
@@ -363,7 +363,7 @@ static int handle_certificate_problem(SS
 
       /*Read the user's response*/
       response_number = dialog_get_answer_number();
-
+      
       /*Abort on anything but "Continue"*/
       if (response_number == 1){
          retval = 0;
@@ -423,8 +423,8 @@ static int handle_certificate_problem(SS
          d_cmd = a_Dpip_build_cmd(
             "cmd=%s msg=%s alt1=%s alt2=%s",
             "dialog",
-            "The issuer for the remote certificate cannot be found\n"
-            "The authenticity of the remote certificate cannot be trusted",
+           "The issuer for the remote certificate cannot be found\n"
+           "The authenticity of the remote certificate cannot be trusted",
             "Continue", "Cancel");
          sock_handler_write_str(sh, d_cmd, 1);
          g_free(d_cmd);
@@ -684,7 +684,7 @@ static void no_ssl_support(void)
 /*---------------------------------------------------------------------------*/
 int main(void)
 {
-   /* Initialize the SockHandler for this filter dpi */
+   /* Initialize the SockHandler for this filter dpi */        
    sh = sock_handler_new(STDIN_FILENO, STDOUT_FILENO, 8*1024);
 
 #ifdef ENABLE_SSL
diff -pruN dillo-0.8.6/dpid/Makefile.am dillo-0.8.6-i18n-misc-20060709/dpid/Makefile.am
--- dillo-0.8.6/dpid/Makefile.am	2005-05-08 04:28:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpid/Makefile.am	2006-05-16 01:21:14.000000000 +0900
@@ -1,4 +1,4 @@
-AM_CPPFLAGS=-DDPIDRC_SYS='"$(sysconfdir)/dpidrc"'
+AM_CPPFLAGS=-DDPIDRC_SYS='"$(sysconfdir)/dpidrc"' -DLOCALEDIR='"$(localedir)"'
 AM_CFLAGS = @GLIB_CFLAGS@
 
 bin_PROGRAMS = dpid
diff -pruN dillo-0.8.6/dpid/Makefile.in dillo-0.8.6-i18n-misc-20060709/dpid/Makefile.in
--- dillo-0.8.6/dpid/Makefile.in	2006-04-27 01:07:18.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpid/Makefile.in	2006-05-16 01:21:14.000000000 +0900
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
@@ -14,9 +14,6 @@
 
 @SET_MAKE@
 
-
-SOURCES = $(dpid_SOURCES)
-
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -24,6 +21,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 top_builddir = ..
+
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
@@ -40,38 +38,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-bin_PROGRAMS = dpid$(EXEEXT)
-subdir = dpid
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS)
-am_dpid_OBJECTS = dpi.$(OBJEXT) dpi_service.$(OBJEXT) \
-	dpi_socket_dir.$(OBJEXT) dpid.$(OBJEXT) dpid_common.$(OBJEXT) \
-	main.$(OBJEXT) misc_new.$(OBJEXT)
-dpid_OBJECTS = $(am_dpid_OBJECTS)
-dpid_DEPENDENCIES = ../dpip/libDpip.a
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(bin_SCRIPTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(dpid_SOURCES)
-DIST_SOURCES = $(dpid_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
@@ -101,6 +67,7 @@ EXEEXT = @EXEEXT@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_CONFIG = @GLIB_CONFIG@
 GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_CONFIG = @GTK_CONFIG@
 GTK_LIBS = @GTK_LIBS@
@@ -108,9 +75,12 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
 LDFLAGS = @LDFLAGS@
 LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
 LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
 LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
 LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
 LIBJPEG_LIBS = @LIBJPEG_LIBS@
@@ -122,8 +92,13 @@ LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
 LIBS = @LIBS@
 LIBSSL_LIBS = @LIBSSL_LIBS@
 LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -132,11 +107,16 @@ PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_RANLIB = @ac_ct_RANLIB@
@@ -148,8 +128,6 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TR
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -168,9 +146,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
-mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
@@ -182,11 +160,15 @@ target_alias = @target_alias@
 target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
-AM_CPPFLAGS = -DDPIDRC_SYS='"$(sysconfdir)/dpidrc"'
+AM_CPPFLAGS = -DDPIDRC_SYS='"$(sysconfdir)/dpidrc"' -DLOCALEDIR='"$(localedir)"'
 AM_CFLAGS = @GLIB_CFLAGS@
+
+bin_PROGRAMS = dpid
 dpid_LDADD = @GLIB_LIBS@ ../dpip/libDpip.a
+
 EXTRA_DIST = dpidc
 bin_SCRIPTS = dpidc
+
 dpid_SOURCES = \
 	     dpi.h \
 	     dpi_service.h \
@@ -202,49 +184,58 @@ dpid_SOURCES = \
 	     main.c \
 	     misc_new.c
 
+subdir = dpid
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = dpid$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_dpid_OBJECTS = dpi.$(OBJEXT) dpi_service.$(OBJEXT) \
+	dpi_socket_dir.$(OBJEXT) dpid.$(OBJEXT) dpid_common.$(OBJEXT) \
+	main.$(OBJEXT) misc_new.$(OBJEXT)
+dpid_OBJECTS = $(am_dpid_OBJECTS)
+dpid_DEPENDENCIES = ../dpip/libDpip.a
+dpid_LDFLAGS =
+SCRIPTS = $(bin_SCRIPTS)
+
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/dpi.Po ./$(DEPDIR)/dpi_service.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dpi_socket_dir.Po ./$(DEPDIR)/dpid.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dpid_common.Po ./$(DEPDIR)/main.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/misc_new.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(dpid_SOURCES)
+DIST_COMMON = $(srcdir)/Makefile.in Makefile.am TODO
+SOURCES = $(dpid_SOURCES)
+
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  dpid/Makefile'; \
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 	cd $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu  dpid/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+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)
-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	$(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" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -252,8 +243,8 @@ 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"; \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f $(DESTDIR)$(bindir)/$$f; \
 	done
 
 clean-binPROGRAMS:
@@ -261,15 +252,16 @@ clean-binPROGRAMS:
 dpid$(EXEEXT): $(dpid_OBJECTS) $(dpid_DEPENDENCIES) 
 	@rm -f dpid$(EXEEXT)
 	$(LINK) $(dpid_LDFLAGS) $(dpid_OBJECTS) $(dpid_LDADD) $(LIBS)
+binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
 install-binSCRIPTS: $(bin_SCRIPTS)
 	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
 	@list='$(bin_SCRIPTS)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  if test -f $$d$$p; then \
 	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
-	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
+	    echo " $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f"; \
+	    $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f; \
 	  else :; fi; \
 	done
 
@@ -277,12 +269,12 @@ uninstall-binSCRIPTS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(bin_SCRIPTS)'; for p in $$list; do \
 	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f $(DESTDIR)$(bindir)/$$f; \
 	done
 
 mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
@@ -296,20 +288,36 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_new.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
 
 .c.obj:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
 uninstall-info-am:
 
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -318,7 +326,6 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
-tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -330,11 +337,10 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEP
 	  done | \
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -357,6 +363,10 @@ GTAGS:
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -370,7 +380,7 @@ distdir: $(DISTFILES)
 	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
 	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
 	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
 	  else \
 	    dir=''; \
 	  fi; \
@@ -388,10 +398,9 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: check-am
 all-am: Makefile $(PROGRAMS) $(SCRIPTS)
+
 installdirs:
-	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
+	$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(bindir)
 install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
@@ -411,7 +420,7 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-rm -f $(CONFIG_CLEAN_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -430,8 +439,6 @@ dvi: dvi-am
 
 dvi-am:
 
-html: html-am
-
 info: info-am
 
 info-am:
@@ -468,8 +475,8 @@ uninstall-am: uninstall-binPROGRAMS unin
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
 	clean-generic ctags distclean distclean-compile \
-	distclean-generic distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-binPROGRAMS \
+	distclean-generic distclean-tags distdir dvi dvi-am info \
+	info-am install install-am install-binPROGRAMS \
 	install-binSCRIPTS install-data install-data-am \
 	install-data-local install-exec install-exec-am install-info \
 	install-info-am install-man install-strip installcheck \
diff -pruN dillo-0.8.6/dpid/dpi_socket_dir.c dillo-0.8.6-i18n-misc-20060709/dpid/dpi_socket_dir.c
--- dillo-0.8.6/dpid/dpi_socket_dir.c	2005-10-28 01:19:53.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpid/dpi_socket_dir.c	2006-05-16 01:21:14.000000000 +0900
@@ -23,6 +23,7 @@
 #include <errno.h>
 #include "dpid_common.h"
 #include "dpi.h"
+#include "../src/intl.h"
 #include "misc_new.h"
 #include "dpi_socket_dir.h" /* for function prototypes */
 
@@ -102,16 +103,16 @@ char *init_sockdir(char *dpi_socket_dir)
 
    if ((sockdir = a_Dpi_rd_dpi_socket_dir(dpi_socket_dir)) == NULL) {
       fprintf(stderr, "debug_msg - init_sockdir: ");
-      fprintf(stderr, "The dpi_socket_dir file does not exist\n");
+      fprintf(stderr, _("The dpi_socket_dir file does not exist\n"));
    } else {
       if ((dir_ok = tst_dir(sockdir)) == 1) {
          fprintf(stderr,
-                 "debug_msg - init_sockdir: The socket directory ");
-         fprintf(stderr, "%s exists and is OK\n", sockdir);
+                 _("debug_msg - init_sockdir: The socket directory "));
+         fprintf(stderr, _("%s exists and is OK\n"), sockdir);
       } else {
          fprintf(stderr,
-                 "debug_msg - init_sockdir: The socket directory ");
-         fprintf(stderr, "%s does not exist or is not a directory\n",
+                 _("debug_msg - init_sockdir: The socket directory "));
+         fprintf(stderr, _("%s does not exist or is not a directory\n"),
                  sockdir);
          g_free(sockdir);
       }
@@ -120,10 +121,10 @@ char *init_sockdir(char *dpi_socket_dir)
       sockdir = mk_sockdir();
       if (sockdir == NULL) {
          ERRMSG("init_sockdir", "mk_sockdir", 0);
-         fprintf(stderr, " - Failed to create dpi socket directory\n");
+         fprintf(stderr, _(" - Failed to create dpi socket directory\n"));
       } else if ((w_dpi_socket_dir(dpi_socket_dir, sockdir)) == -1) {
          ERRMSG("init_sockdir", "w_dpi_socket_dir", 0);
-         fprintf(stderr, " - failed to save %s\n", sockdir);
+         fprintf(stderr, _(" - failed to save %s\n"), sockdir);
          g_free(sockdir);
          sockdir = NULL;
       }
diff -pruN dillo-0.8.6/dpid/main.c dillo-0.8.6-i18n-misc-20060709/dpid/main.c
--- dillo-0.8.6/dpid/main.c	2006-01-03 03:34:18.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpid/main.c	2006-05-16 01:21:14.000000000 +0900
@@ -22,6 +22,9 @@
 #include <sys/stat.h>
 #include <sys/time.h>
 #include <glib.h>
+#include <locale.h>
+#include "config.h"
+#include "../src/intl.h"
 #include "dpid_common.h"
 #include "dpid.h"
 #include "dpi.h"
@@ -53,14 +56,14 @@ static int start_filter_plugin(struct dp
    dup2(STDIN_FILENO, old_stdin);
    if (dup2(newsock, STDIN_FILENO) == -1) {
       ERRMSG("start_plugin", "dup2", errno);
-      fprintf(stderr, "ERROR in child proc for %s\n", dpi_attr.path);
+      fprintf(stderr, _("ERROR in child proc for %s\n"), dpi_attr.path);
       exit(1);
    }
 
    dup2(STDOUT_FILENO, old_stdout);
    if (dup2(newsock, STDOUT_FILENO) == -1) {
       ERRMSG("start_plugin", "dup2", errno);
-      fprintf(stderr, "ERROR in child proc for %s\n", dpi_attr.path);
+      fprintf(stderr, _("ERROR in child proc for %s\n"), dpi_attr.path);
       exit(1);
    }
    if ((pid = fork()) == -1) {
@@ -71,7 +74,7 @@ static int start_filter_plugin(struct dp
       /* Child, start plugin */
       if (execl(dpi_attr.path, dpi_attr.path, NULL) == -1) {
          ERRMSG("start_plugin", "execl", errno);
-         fprintf(stderr, "ERROR in child proc for %s\n", dpi_attr.path);
+         fprintf(stderr, _("ERROR in child proc for %s\n"), dpi_attr.path);
          exit(1);
       }
    }
@@ -79,7 +82,7 @@ static int start_filter_plugin(struct dp
    /* Parent, Close sockets fix stdio and return pid */
    if (a_Misc_close_fd(newsock) == -1) {
       ERRMSG("start_plugin", "close", errno);
-      fprintf(stderr, "ERROR in child proc for %s\n", dpi_attr.path);
+      fprintf(stderr, _("ERROR in child proc for %s\n"), dpi_attr.path);
       exit(1);
    }
    a_Misc_close_fd(STDIN_FILENO);
@@ -93,17 +96,17 @@ static void start_server_plugin(struct d
 {
    if (dup2(dpi_attr.socket, STDIN_FILENO) == -1) {
       ERRMSG("start_plugin", "dup2", errno);
-      fprintf(stderr, "ERROR in child proc for %s\n", dpi_attr.path);
+      fprintf(stderr, _("ERROR in child proc for %s\n"), dpi_attr.path);
       exit(1);
    }
    if (a_Misc_close_fd(dpi_attr.socket) == -1) {
       ERRMSG("start_plugin", "close", errno);
-      fprintf(stderr, "ERROR in child proc for %s\n", dpi_attr.path);
+      fprintf(stderr, _("ERROR in child proc for %s\n"), dpi_attr.path);
       exit(1);
    }
    if (execl(dpi_attr.path, dpi_attr.path, NULL) == -1) {
       ERRMSG("start_plugin", "execl", errno);
-      fprintf(stderr, "ERROR in child proc for %s\n", dpi_attr.path);
+      fprintf(stderr, _("ERROR in child proc for %s\n"), dpi_attr.path);
       exit(1);
    }
 }
@@ -152,7 +155,7 @@ static int get_command(int sock, char *d
    int COMMAND;
 
    if (dpi_tag == NULL) {
-      ERRMSG("get_command", "dpid tag is NULL\n", 0);
+      //ERRMSG("get_command", _("dpid tag is NULL\n"), 0);
       return (-1);
    }
 
@@ -160,7 +163,7 @@ static int get_command(int sock, char *d
 
    if (cmd == NULL) {
       ERRMSG("get_command", "a_Dpip_get_attr", 0);
-      fprintf(stderr, ": dpid failed to parse cmd in %s\n", dpi_tag);
+      fprintf(stderr, _(": dpid failed to parse cmd in %s\n"), dpi_tag);
       d_cmd = a_Dpip_build_cmd("cmd=%s msg=%s",
                                "DpiError", "Failed to parse request");
       (void) CKD_WRITE(sock, d_cmd);
@@ -227,6 +230,11 @@ int main(void)
    sigset_t mask_none;
    fd_set selected_set;
 
+   /* Initialize Gettext */
+   setlocale(LC_ALL, "");
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+
    dpi_attr_list = NULL;
    /* daemon(0,0); */ /* Use 0,1 for feedback */
    /* todo: call setsid() ?? */
@@ -254,7 +262,7 @@ int main(void)
    dirname = a_Dpi_sockdir_file();
    if ((sockdir = init_sockdir(dirname)) == NULL) {
       ERRMSG("main", "init_sockdir", 0);
-      fprintf(stderr, "Failed to create socket directory\n");
+      fprintf(stderr, _("Failed to create socket directory\n"));
       exit(1);
    }
 
@@ -264,12 +272,12 @@ int main(void)
    if ((numsocks = init_srs_socket(sockdir)) == -1) {
       switch (dpi_errno) {
       case dpid_srs_addrinuse:
-         fprintf(stderr, "dpid refuses to start, possibly because:\n");
-         fprintf(stderr, "\t1) An instance of dpid is already running.\n");
-         fprintf(stderr, "\t2) A previous dpid didn't clean up on exit.\n");
+         fprintf(stderr, _("dpid refuses to start, possibly because:\n"));
+         fprintf(stderr, _("\t1) An instance of dpid is already running.\n"));
+         fprintf(stderr, _("\t2) A previous dpid didn't clean up on exit.\n"));
          exit(1);
       default:
-         ERRMSG("main", "init_srs_sockets failed\n", 0);
+         ERRMSG("main", _("init_srs_sockets failed\n"), 0);
          exit(1);
       }
    }
@@ -283,7 +291,7 @@ int main(void)
    (void) sigemptyset(&mask_none);
    (void) sigprocmask(SIG_SETMASK, &mask_none, NULL);
 
-   printf("dpid started\n");
+   printf(_("dpid started\n"));
 /* Start main loop */
    while (1) {
       do {
@@ -329,8 +337,8 @@ int main(void)
          sock = accept(srs, (struct sockaddr *) &clnt_addr, &csz);
          if (sock == -1) {
             ERRMSG("main", "accept", errno);
-            fprintf(stderr, "accept on srs socket failed\n");
-            fprintf(stderr, "service pending connections, and continue\n");
+            fprintf(stderr, _("accept on srs socket failed\n"));
+            fprintf(stderr, _("service pending connections, and continue\n"));
          } else {
             int command;
 
@@ -359,7 +367,7 @@ int main(void)
                break;
                }
             case -1:
-               ERRMSG("main", "get_command failed\n", 0);
+               //ERRMSG("main", _("get_command failed\n"), 0);
                break;
             }
             if (req)
diff -pruN dillo-0.8.6/dpip/Makefile.in dillo-0.8.6-i18n-misc-20060709/dpip/Makefile.in
--- dillo-0.8.6/dpip/Makefile.in	2006-04-27 01:07:20.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/dpip/Makefile.in	2006-05-16 01:21:08.000000000 +0900
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
@@ -14,8 +14,6 @@
 
 @SET_MAKE@
 
-SOURCES = $(libDpip_a_SOURCES)
-
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -23,6 +21,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 top_builddir = ..
+
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
@@ -39,34 +38,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-subdir = dpip
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libDpip_a_AR = $(AR) $(ARFLAGS)
-libDpip_a_LIBADD =
-am_libDpip_a_OBJECTS = dpip.$(OBJEXT)
-libDpip_a_OBJECTS = $(am_libDpip_a_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libDpip_a_SOURCES)
-DIST_SOURCES = $(libDpip_a_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
@@ -96,6 +67,7 @@ EXEEXT = @EXEEXT@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_CONFIG = @GLIB_CONFIG@
 GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_CONFIG = @GTK_CONFIG@
 GTK_LIBS = @GTK_LIBS@
@@ -103,9 +75,12 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
 LDFLAGS = @LDFLAGS@
 LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
 LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
 LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
 LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
 LIBJPEG_LIBS = @LIBJPEG_LIBS@
@@ -117,8 +92,13 @@ LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
 LIBS = @LIBS@
 LIBSSL_LIBS = @LIBSSL_LIBS@
 LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -127,11 +107,16 @@ PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_RANLIB = @ac_ct_RANLIB@
@@ -143,8 +128,6 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TR
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -163,9 +146,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
-mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
@@ -179,44 +162,48 @@ target_os = @target_os@
 target_vendor = @target_vendor@
 AM_CFLAGS = @GLIB_CFLAGS@
 AM_LIBS = @GLIB_LIBS@
+
 noinst_LIBRARIES = libDpip.a
+
 libDpip_a_SOURCES = \
        dpip.h \
        dpip.c
 
+subdir = dpip
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+
+libDpip_a_AR = $(AR) cru
+libDpip_a_LIBADD =
+am_libDpip_a_OBJECTS = dpip.$(OBJEXT)
+libDpip_a_OBJECTS = $(am_libDpip_a_OBJECTS)
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/dpip.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(libDpip_a_SOURCES)
+DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
+SOURCES = $(libDpip_a_SOURCES)
+
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  dpip/Makefile'; \
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 	cd $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu  dpip/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+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)
@@ -226,7 +213,7 @@ libDpip.a: $(libDpip_a_OBJECTS) $(libDpi
 	$(RANLIB) libDpip.a
 
 mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
@@ -234,20 +221,36 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dpip.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
 
 .c.obj:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
 uninstall-info-am:
 
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -256,7 +259,6 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
-tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -268,11 +270,10 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEP
 	  done | \
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -295,6 +296,10 @@ GTAGS:
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -308,7 +313,7 @@ distdir: $(DISTFILES)
 	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
 	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
 	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
 	  else \
 	    dir=''; \
 	  fi; \
@@ -326,6 +331,7 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: check-am
 all-am: Makefile $(LIBRARIES)
+
 installdirs:
 install: install-am
 install-exec: install-exec-am
@@ -346,7 +352,7 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-rm -f $(CONFIG_CLEAN_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -365,8 +371,6 @@ dvi: dvi-am
 
 dvi-am:
 
-html: html-am
-
 info: info-am
 
 info-am:
@@ -402,14 +406,13 @@ uninstall-am: uninstall-info-am
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
 	clean-noinstLIBRARIES ctags distclean distclean-compile \
-	distclean-generic distclean-tags distdir dvi dvi-am html \
-	html-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 pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-info-am
+	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 pdf pdf-am \
+	ps ps-am 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 -pruN dillo-0.8.6/install-sh dillo-0.8.6-i18n-misc-20060709/install-sh
--- dillo-0.8.6/install-sh	2005-03-22 16:17:05.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/install-sh	2006-05-16 01:21:07.000000000 +0900
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2005-02-02.21
+scriptversion=2004-04-01.17
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -58,6 +58,9 @@ stripprog="${STRIPPROG-strip}"
 rmprog="${RMPROG-rm}"
 mkdirprog="${MKDIRPROG-mkdir}"
 
+transformbasename=
+transform_arg=
+instcmd="$mvprog"
 chmodcmd="$chmodprog 0755"
 chowncmd=
 chgrpcmd=
@@ -67,27 +70,23 @@ mvcmd="$mvprog"
 src=
 dst=
 dir_arg=
-dstarg=
-no_target_directory=
 
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
    or: $0 [OPTION]... SRCFILES... DIRECTORY
-   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
-   or: $0 [OPTION]... -d DIRECTORIES...
+   or: $0 -d DIRECTORIES...
 
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
+In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
+In the second, create the directory path DIR.
 
 Options:
--c         (ignored)
+-b=TRANSFORMBASENAME
+-c         copy source (using $cpprog) instead of moving (using $mvprog).
 -d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
+-g GROUP   $chgrp installed files to GROUP.
+-m MODE    $chmod installed files to MODE.
+-o USER    $chown installed files to USER.
+-s         strip installed files (using $stripprog).
+-t=TRANSFORM
 --help     display this help and exit.
 --version  display version info and exit.
 
@@ -97,7 +96,12 @@ Environment variables override the defau
 
 while test -n "$1"; do
   case $1 in
-    -c) shift
+    -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+        shift
+        continue;;
+
+    -c) instcmd=$cpprog
+        shift
         continue;;
 
     -d) dir_arg=true
@@ -109,7 +113,7 @@ while test -n "$1"; do
         shift
         continue;;
 
-    --help) echo "$usage"; exit $?;;
+    --help) echo "$usage"; exit 0;;
 
     -m) chmodcmd="$chmodprog $2"
         shift
@@ -125,20 +129,14 @@ while test -n "$1"; do
         shift
         continue;;
 
-    -t) dstarg=$2
-	shift
-	shift
-	continue;;
-
-    -T) no_target_directory=true
-	shift
-	continue;;
+    -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+        shift
+        continue;;
 
-    --version) echo "$0 $scriptversion"; exit $?;;
+    --version) echo "$0 $scriptversion"; exit 0;;
 
     *)  # When -d is used, all remaining arguments are directories to create.
-	# When -t is used, the destination is already specified.
-	test -n "$dir_arg$dstarg" && break
+	test -n "$dir_arg" && break
         # Otherwise, the last argument is the destination.  Remove it from $@.
 	for arg
 	do
@@ -176,13 +174,13 @@ do
     src=
 
     if test -d "$dst"; then
-      mkdircmd=:
+      instcmd=:
       chmodcmd=
     else
-      mkdircmd=$mkdirprog
+      instcmd=$mkdirprog
     fi
   else
-    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
     # might cause directories to be created, which would be especially bad
     # if $src (and thus $dsttmp) contains '*'.
     if test ! -f "$src" && test ! -d "$src"; then
@@ -204,16 +202,12 @@ do
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dstarg: Is a directory" >&2
-	exit 1
-      fi
       dst=$dst/`basename "$src"`
     fi
   fi
 
   # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+  dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
 
   # Make sure that the destination directory exists.
 
@@ -226,8 +220,7 @@ do
     oIFS=$IFS
     # Some sh's can't handle IFS=/ for some reason.
     IFS='%'
-    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    shift
+    set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
     IFS=$oIFS
 
     pathcomp=
@@ -236,42 +229,51 @@ do
       pathcomp=$pathcomp$1
       shift
       if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
+        $mkdirprog "$pathcomp" || lasterr=$?
 	# mkdir can fail with a `File exist' error in case several
 	# install-sh are creating the directory concurrently.  This
 	# is OK.
-	test -d "$pathcomp" || exit
+	test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }
       fi
       pathcomp=$pathcomp/
     done
   fi
 
   if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
+    $doit $instcmd "$dst" \
       && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
       && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
       && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
       && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
 
   else
-    dstfile=`basename "$dst"`
+    # If we're going to rename the final executable, determine the name now.
+    if test -z "$transformarg"; then
+      dstfile=`basename "$dst"`
+    else
+      dstfile=`basename "$dst" $transformbasename \
+               | sed $transformarg`$transformbasename
+    fi
+
+    # don't allow the sed command to completely eliminate the filename.
+    test -z "$dstfile" && dstfile=`basename "$dst"`
 
     # Make a couple of temp file names in the proper directory.
     dsttmp=$dstdir/_inst.$$_
     rmtmp=$dstdir/_rm.$$_
 
     # Trap to clean up those temp files at exit.
-    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+    trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
     trap '(exit $?); exit' 1 2 13 15
 
-    # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
+    # Move or copy the file name to the temp name
+    $doit $instcmd "$src" "$dsttmp" &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
     # If any of these fail, we abort the whole thing.  If we want to
     # ignore errors from any of these, just make sure not to ignore
-    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    # errors from the above "$doit $instcmd $src $dsttmp" command.
     #
     { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
       && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
@@ -296,7 +298,7 @@ do
 	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
 	       || {
 		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-		 (exit 1); exit 1
+		 (exit 1); exit
 	       }
 	     else
 	       :
@@ -307,12 +309,12 @@ do
 	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
 	 }
     }
-  fi || { (exit 1); exit 1; }
+  fi || { (exit 1); exit; }
 done
 
 # The final little trick to "correctly" pass the exit status to the exit trap.
 {
-  (exit 0); exit 0
+  (exit 0); exit
 }
 
 # Local variables:
diff -pruN dillo-0.8.6/m4/ChangeLog dillo-0.8.6-i18n-misc-20060709/m4/ChangeLog
--- dillo-0.8.6/m4/ChangeLog	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/ChangeLog	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,31 @@
+2004-11-23  gettextize  <bug-gnu-gettext@gnu.org>
+
+	* gettext.m4: Upgrade to gettext-0.11.4.
+	* inttypes_h.m4: Upgrade to gettext-0.11.4.
+	* lib-ld.m4: Upgrade to gettext-0.11.4.
+	* lib-link.m4: Upgrade to gettext-0.11.4.
+	* lib-prefix.m4: Upgrade to gettext-0.11.4.
+	* progtest.m4: Upgrade to gettext-0.11.4.
+	* stdint_h.m4: Upgrade to gettext-0.11.4.
+	* uintmax_t.m4: Upgrade to gettext-0.11.4.
+
+2003-10-01  gettextize  <bug-gnu-gettext@gnu.org>
+
+	* codeset.m4: New file, from gettext-0.11.4.
+	* gettext.m4: New file, from gettext-0.11.4.
+	* glibc21.m4: New file, from gettext-0.11.4.
+	* iconv.m4: New file, from gettext-0.11.4.
+	* intdiv0.m4: New file, from gettext-0.11.4.
+	* inttypes.m4: New file, from gettext-0.11.4.
+	* inttypes_h.m4: New file, from gettext-0.11.4.
+	* inttypes-pri.m4: New file, from gettext-0.11.4.
+	* isc-posix.m4: New file, from gettext-0.11.4.
+	* lcmessage.m4: New file, from gettext-0.11.4.
+	* lib-ld.m4: New file, from gettext-0.11.4.
+	* lib-link.m4: New file, from gettext-0.11.4.
+	* lib-prefix.m4: New file, from gettext-0.11.4.
+	* progtest.m4: New file, from gettext-0.11.4.
+	* stdint_h.m4: New file, from gettext-0.11.4.
+	* uintmax_t.m4: New file, from gettext-0.11.4.
+	* Makefile.am: New file.
+
diff -pruN dillo-0.8.6/m4/Makefile.am dillo-0.8.6-i18n-misc-20060709/m4/Makefile.am
--- dillo-0.8.6/m4/Makefile.am	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/Makefile.am	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1 @@
+EXTRA_DIST = intmax.m4 longdouble.m4 longlong.m4 nls.m4 po.m4 printf-posix.m4 signed.m4 size_max.m4 ulonglong.m4 wchar_t.m4 wint_t.m4 xsize.m4  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4
diff -pruN dillo-0.8.6/m4/Makefile.in dillo-0.8.6-i18n-misc-20060709/m4/Makefile.in
--- dillo-0.8.6/m4/Makefile.in	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/Makefile.in	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,302 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLGUI_FALSE = @DLGUI_FALSE@
+DLGUI_TRUE = @DLGUI_TRUE@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_CONFIG = @GLIB_CONFIG@
+GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
+LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
+LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
+LIBJPEG_LIBS = @LIBJPEG_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBPTHREAD_LDFLAGS = @LIBPTHREAD_LDFLAGS@
+LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
+LIBS = @LIBS@
+LIBSSL_LIBS = @LIBSSL_LIBS@
+LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+EXTRA_DIST = intmax.m4 longdouble.m4 longlong.m4 nls.m4 po.m4 printf-posix.m4 signed.m4 size_max.m4 ulonglong.m4 wchar_t.m4 wint_t.m4 xsize.m4  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4
+subdir = m4
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = $(srcdir)/Makefile.in ChangeLog Makefile.am
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  m4/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:
+
+ctags: CTAGS
+CTAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  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
+
+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_sh_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 $(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 mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+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
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+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 pdf pdf-am ps ps-am 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 -pruN dillo-0.8.6/m4/codeset.m4 dillo-0.8.6-i18n-misc-20060709/m4/codeset.m4
--- dillo-0.8.6/m4/codeset.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/codeset.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,23 @@
+# codeset.m4 serial AM1 (gettext-0.10.40)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+    [AC_TRY_LINK([#include <langinfo.h>],
+      [char* cs = nl_langinfo(CODESET);],
+      am_cv_langinfo_codeset=yes,
+      am_cv_langinfo_codeset=no)
+    ])
+  if test $am_cv_langinfo_codeset = yes; then
+    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+  fi
+])
diff -pruN dillo-0.8.6/m4/gettext.m4 dillo-0.8.6-i18n-misc-20060709/m4/gettext.m4
--- dillo-0.8.6/m4/gettext.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/gettext.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,587 @@
+# gettext.m4 serial 16 (gettext-0.11.4)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2002.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl    default (if it is not specified or empty) is 'no-libtool'.
+dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl    depending on --{enable,disable}-{shared,static} and on the presence of
+dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl    $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl    implementations (in libc or libintl) without the ngettext() function
+dnl    will be ignored.  If NEEDSYMBOL is specified and is
+dnl    'need-formatstring-macros', then GNU gettext implementations that don't
+dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries.  If empty,
+dnl    the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl    and used.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl    Catalog format: none
+dnl    Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+  dnl Argument checking.
+  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+  define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
+  define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+
+  AC_REQUIRE([AM_PO_SUBDIRS])dnl
+  ifelse(gt_included_intl, yes, [
+    AC_REQUIRE([AM_INTL_SUBDIR])dnl
+  ])
+
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+
+  dnl Sometimes libintl requires libiconv, so first search for libiconv.
+  dnl Ideally we would do this search only after the
+  dnl      if test "$USE_NLS" = "yes"; then
+  dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+  dnl the configure script would need to contain the same shell code
+  dnl again, outside any 'if'. There are two solutions:
+  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+  dnl documented, we avoid it.
+  ifelse(gt_included_intl, yes, , [
+    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+  ])
+
+  AC_MSG_CHECKING([whether NLS is requested])
+  dnl Default is enabled NLS
+  AC_ARG_ENABLE(nls,
+    [  --disable-nls           do not use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=yes)
+  AC_MSG_RESULT($USE_NLS)
+  AC_SUBST(USE_NLS)
+
+  ifelse(gt_included_intl, yes, [
+    BUILD_INCLUDED_LIBINTL=no
+    USE_INCLUDED_LIBINTL=no
+  ])
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
+
+  dnl If we use NLS figure out what method
+  if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
+    ifelse(gt_included_intl, yes, [
+      AC_MSG_CHECKING([whether included gettext is requested])
+      AC_ARG_WITH(included-gettext,
+        [  --with-included-gettext use the GNU gettext library included here],
+        nls_cv_force_use_gnu_gettext=$withval,
+        nls_cv_force_use_gnu_gettext=no)
+      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+    ])
+        dnl User does not insist on using GNU NLS library.  Figure out what
+        dnl to use.  If GNU gettext is available we use this.  Else we have
+        dnl to fall back to GNU NLS library.
+
+        dnl Add a version number to the cache macros.
+        define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
+        define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
+        define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
+
+        AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+         [AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+            [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
+            gt_cv_func_gnugettext_libc=yes,
+            gt_cv_func_gnugettext_libc=no)])
+
+        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+          dnl Sometimes libintl requires libiconv, so first search for libiconv.
+          ifelse(gt_included_intl, yes, , [
+            AM_ICONV_LINK
+          ])
+          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+          dnl even if libiconv doesn't exist.
+          AC_LIB_LINKFLAGS_BODY([intl])
+          AC_CACHE_CHECK([for GNU gettext in libintl],
+            gt_cv_func_gnugettext_libintl,
+           [gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+            dnl Now see whether libintl exists and does not depend on libiconv.
+            AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+              [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+              gt_cv_func_gnugettext_libintl=yes,
+              gt_cv_func_gnugettext_libintl=no)
+            dnl Now see whether libintl exists and depends on libiconv.
+            if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+                [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+               [LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                gt_cv_func_gnugettext_libintl=yes
+               ])
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"])
+        fi
+
+        dnl If an already present or preinstalled GNU gettext() is found,
+        dnl use it.  But if this macro is used in GNU gettext, and GNU
+        dnl gettext is already preinstalled in libintl, we update this
+        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
+        if test "$gt_cv_func_gnugettext_libc" = "yes" \
+           || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+                && test "$PACKAGE" != gettext; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+          dnl Reset the values set by searching for libintl.
+          LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
+
+    ifelse(gt_included_intl, yes, [
+        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+          dnl GNU gettext is not found in the C library.
+          dnl Fall back on included GNU gettext library.
+          nls_cv_use_gnu_gettext=yes
+        fi
+      fi
+
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions used to generate GNU NLS library.
+        INTLOBJS="\$(GETTOBJS)"
+        BUILD_INCLUDED_LIBINTL=yes
+        USE_INCLUDED_LIBINTL=yes
+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+      fi
+
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions to use GNU gettext tools.
+        CATOBJEXT=.gmo
+      fi
+    ])
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
+      AC_DEFINE(ENABLE_NLS, 1,
+        [Define to 1 if translation of program messages to the user's native language
+   is requested.])
+    else
+      USE_NLS=no
+    fi
+  fi
+
+  if test "$USE_NLS" = "yes"; then
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+        AC_MSG_CHECKING([how to link with libintl])
+        AC_MSG_RESULT([$LIBINTL])
+        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+      fi
+
+      dnl For backward compatibility. Some packages may be using this.
+      AC_DEFINE(HAVE_GETTEXT, 1,
+       [Define if the GNU gettext() function is already present or preinstalled.])
+      AC_DEFINE(HAVE_DCGETTEXT, 1,
+       [Define if the GNU dcgettext() function is already present or preinstalled.])
+    fi
+
+    dnl We need to process the po/ directory.
+    POSUB=po
+  fi
+
+  ifelse(gt_included_intl, yes, [
+    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+    dnl to 'yes' because some of the testsuite requires it.
+    if test "$PACKAGE" = gettext; then
+      BUILD_INCLUDED_LIBINTL=yes
+    fi
+
+    dnl Make all variables we use known to autoconf.
+    AC_SUBST(BUILD_INCLUDED_LIBINTL)
+    AC_SUBST(USE_INCLUDED_LIBINTL)
+    AC_SUBST(CATOBJEXT)
+    AC_SUBST(INTLOBJS)
+
+    dnl For backward compatibility. Some configure.ins may be using this.
+    nls_cv_header_intl=
+    nls_cv_header_libgt=
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    DATADIRNAME=share
+    AC_SUBST(DATADIRNAME)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    INSTOBJEXT=.mo
+    AC_SUBST(INSTOBJEXT)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    GENCAT=gencat
+    AC_SUBST(GENCAT)
+
+    dnl Enable libtool support if the surrounding package wishes it.
+    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+  ])
+
+  dnl For backward compatibility. Some Makefiles may be using this.
+  INTLLIBS="$LIBINTL"
+  AC_SUBST(INTLLIBS)
+
+  dnl Make all documented variables known to autoconf.
+  AC_SUBST(LIBINTL)
+  AC_SUBST(LTLIBINTL)
+  AC_SUBST(POSUB)
+])
+
+
+dnl Checks for all prerequisites of the po subdirectory,
+dnl except for USE_NLS.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+
+  dnl Perform the following tests also if --disable-nls has been given,
+  dnl because they are needed for "make dist" to work.
+
+  dnl Search for GNU msgfmt in the PATH.
+  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+  dnl The second test excludes FreeBSD msgfmt.
+  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+    [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+  dnl Search for GNU xgettext 0.11 or newer in the PATH.
+  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+  dnl The second test excludes FreeBSD xgettext.
+  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+    [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  dnl Remove leftover from FreeBSD xgettext call.
+  rm -f messages.po
+
+  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+    [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
+
+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+  dnl Test whether we really found GNU msgfmt.
+  if test "$GMSGFMT" != ":"; then
+    dnl If it is no GNU msgfmt we define it as : so that the
+    dnl Makefiles still can work.
+    if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+      AC_MSG_RESULT(
+        [found $GMSGFMT program is not GNU msgfmt; ignore it])
+      GMSGFMT=":"
+    fi
+  fi
+
+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+  dnl Test whether we really found GNU xgettext.
+  if test "$XGETTEXT" != ":"; then
+    dnl If it is no GNU xgettext we define it as : so that the
+    dnl Makefiles still can work.
+    if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
+       (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      AC_MSG_RESULT(
+        [found xgettext program is not GNU xgettext; ignore it])
+      XGETTEXT=":"
+    fi
+    dnl Remove leftover from FreeBSD xgettext call.
+    rm -f messages.po
+  fi
+
+  AC_OUTPUT_COMMANDS([
+    for ac_file in $CONFIG_FILES; do
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+      # PO directories have a Makefile.in generated from Makefile.in.in.
+      case "$ac_file" in */Makefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+        esac
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
+          # on $ac_dir but don't depend on user-specified configuration
+          # parameters.
+          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+            # The LINGUAS file contains the set of available languages.
+            if test -n "$ALL_LINGUAS"; then
+              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+            fi
+            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            # Hide the ALL_LINGUAS assigment from automake.
+            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+          fi
+          case "$ac_given_srcdir" in
+            .) srcdirpre= ;;
+            *) srcdirpre='$(srcdir)/' ;;
+          esac
+          POFILES=
+          GMOFILES=
+          UPDATEPOFILES=
+          DUMMYPOFILES=
+          for lang in $ALL_LINGUAS; do
+            POFILES="$POFILES $srcdirpre$lang.po"
+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+          done
+          # CATALOGS depends on both $ac_dir and the user's LINGUAS
+          # environment variable.
+          INST_LINGUAS=
+          if test -n "$ALL_LINGUAS"; then
+            for presentlang in $ALL_LINGUAS; do
+              useit=no
+              if test "%UNSET%" != "$LINGUAS"; then
+                desiredlanguages="$LINGUAS"
+              else
+                desiredlanguages="$ALL_LINGUAS"
+              fi
+              for desiredlang in $desiredlanguages; do
+                # Use the presentlang catalog if desiredlang is
+                #   a. equal to presentlang, or
+                #   b. a variant of presentlang (because in this case,
+                #      presentlang can be used as a fallback for messages
+                #      which are not translated in the desiredlang catalog).
+                case "$desiredlang" in
+                  "$presentlang"*) useit=yes;;
+                esac
+              done
+              if test $useit = yes; then
+                INST_LINGUAS="$INST_LINGUAS $presentlang"
+              fi
+            done
+          fi
+          CATALOGS=
+          if test -n "$INST_LINGUAS"; then
+            for lang in $INST_LINGUAS; do
+              CATALOGS="$CATALOGS $lang.gmo"
+            done
+          fi
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+            if test -f "$f"; then
+              case "$f" in
+                *.orig | *.bak | *~) ;;
+                *) cat "$f" >> "$ac_dir/Makefile" ;;
+              esac
+            fi
+          done
+        fi
+        ;;
+      esac
+    done],
+   [# Capture the value of obsolete $ALL_LINGUAS because we need it to compute
+    # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
+    # from automake.
+    eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
+    # Capture the value of LINGUAS because we need it to compute CATALOGS.
+    LINGUAS="${LINGUAS-%UNSET%}"
+   ])
+])
+
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+  AC_REQUIRE([AC_PROG_CC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl
+  AC_REQUIRE([AC_PROG_RANLIB])dnl
+  AC_REQUIRE([AC_ISC_POSIX])dnl
+  AC_REQUIRE([AC_HEADER_STDC])dnl
+  AC_REQUIRE([AC_C_CONST])dnl
+  AC_REQUIRE([AC_C_INLINE])dnl
+  AC_REQUIRE([AC_TYPE_OFF_T])dnl
+  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+  AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+  AC_REQUIRE([AC_FUNC_MMAP])dnl
+  AC_REQUIRE([jm_GLIBC21])dnl
+  AC_REQUIRE([gt_INTDIV0])dnl
+  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
+  AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
+  AC_REQUIRE([gt_INTTYPES_PRI])dnl
+
+  AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+  AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
+geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
+strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
+
+  AM_ICONV
+  AM_LANGINFO_CODESET
+  if test $ac_cv_header_locale_h = yes; then
+    AM_LC_MESSAGES
+  fi
+
+  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+  dnl because plural.y uses bison specific features. It requires at least
+  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+  dnl compile.
+  dnl bison is only needed for the maintainer (who touches plural.y). But in
+  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+  dnl the rule in general Makefile. Now, some people carelessly touch the
+  dnl files or have a broken "make" program, hence the plural.c rule will
+  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+  dnl present or too old.
+  AC_CHECK_PROGS([INTLBISON], [bison])
+  if test -z "$INTLBISON"; then
+    ac_verc_fail=yes
+  else
+    dnl Found it, now check the version.
+    AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+    case $ac_prog_version in
+      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+    esac
+    AC_MSG_RESULT([$ac_prog_version])
+  fi
+  if test $ac_verc_fail = yes; then
+    INTLBISON=:
+  fi
+])
+
+
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+  dnl Try to locate is.
+  MKINSTALLDIRS=
+  if test -n "$ac_aux_dir"; then
+    MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+  fi
+  if test -z "$MKINSTALLDIRS"; then
+    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+  fi
+  AC_SUBST(MKINSTALLDIRS)
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
diff -pruN dillo-0.8.6/m4/glibc21.m4 dillo-0.8.6-i18n-misc-20060709/m4/glibc21.m4
--- dillo-0.8.6/m4/glibc21.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/glibc21.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,32 @@
+# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([jm_GLIBC21],
+  [
+    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+      ac_cv_gnu_library_2_1,
+      [AC_EGREP_CPP([Lucky GNU user],
+	[
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+	],
+	ac_cv_gnu_library_2_1=yes,
+	ac_cv_gnu_library_2_1=no)
+      ]
+    )
+    AC_SUBST(GLIBC21)
+    GLIBC21="$ac_cv_gnu_library_2_1"
+  ]
+)
diff -pruN dillo-0.8.6/m4/iconv.m4 dillo-0.8.6-i18n-misc-20060709/m4/iconv.m4
--- dillo-0.8.6/m4/iconv.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/iconv.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,103 @@
+# iconv.m4 serial AM4 (gettext-0.11.3)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+  dnl those with the standalone portable GNU libiconv installed).
+
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+  dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed libiconv and not disabled its use
+  dnl via --without-libiconv-prefix, he wants to use it. The first
+  dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+  am_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+      [iconv_t cd = iconv_open("","");
+       iconv(cd,NULL,NULL,NULL,NULL);
+       iconv_close(cd);],
+      am_cv_func_iconv=yes)
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+        [iconv_t cd = iconv_open("","");
+         iconv(cd,NULL,NULL,NULL,NULL);
+         iconv_close(cd);],
+        am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes)
+      LIBS="$am_save_LIBS"
+    fi
+  ])
+  if test "$am_cv_func_iconv" = yes; then
+    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+  fi
+  if test "$am_cv_lib_iconv" = yes; then
+    AC_MSG_CHECKING([how to link with libiconv])
+    AC_MSG_RESULT([$LIBICONV])
+  else
+    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+    dnl either.
+    CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
+  AC_SUBST(LIBICONV)
+  AC_SUBST(LTLIBICONV)
+])
+
+AC_DEFUN([AM_ICONV],
+[
+  AM_ICONV_LINK
+  if test "$am_cv_func_iconv" = yes; then
+    AC_MSG_CHECKING([for iconv declaration])
+    AC_CACHE_VAL(am_cv_proto_iconv, [
+      AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+    AC_MSG_RESULT([$]{ac_t:-
+         }[$]am_cv_proto_iconv)
+    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+      [Define as const if the declaration of iconv() needs const.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/intdiv0.m4 dillo-0.8.6-i18n-misc-20060709/m4/intdiv0.m4
--- dillo-0.8.6/m4/intdiv0.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/intdiv0.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,72 @@
+# intdiv0.m4 serial 1 (gettext-0.11.3)
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gt_INTDIV0],
+[
+  AC_REQUIRE([AC_PROG_CC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+  AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
+    gt_cv_int_divbyzero_sigfpe,
+    [
+      AC_TRY_RUN([
+#include <stdlib.h>
+#include <signal.h>
+
+static void
+#ifdef __cplusplus
+sigfpe_handler (int sig)
+#else
+sigfpe_handler (sig) int sig;
+#endif
+{
+  /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
+  exit (sig != SIGFPE);
+}
+
+int x = 1;
+int y = 0;
+int z;
+int nan;
+
+int main ()
+{
+  signal (SIGFPE, sigfpe_handler);
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
+  signal (SIGTRAP, sigfpe_handler);
+#endif
+/* Linux/SPARC yields signal SIGILL.  */
+#if defined (__sparc__) && defined (__linux__)
+  signal (SIGILL, sigfpe_handler);
+#endif
+
+  z = x / y;
+  nan = y / y;
+  exit (1);
+}
+], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
+        [
+          # Guess based on the CPU.
+          case "$host_cpu" in
+            alpha* | i[34567]86 | m68k | s390*)
+              gt_cv_int_divbyzero_sigfpe="guessing yes";;
+            *)
+              gt_cv_int_divbyzero_sigfpe="guessing no";;
+          esac
+        ])
+    ])
+  case "$gt_cv_int_divbyzero_sigfpe" in
+    *yes) value=1;;
+    *) value=0;;
+  esac
+  AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
+    [Define if integer division by zero raises signal SIGFPE.])
+])
diff -pruN dillo-0.8.6/m4/intmax.m4 dillo-0.8.6-i18n-misc-20060709/m4/intmax.m4
--- dillo-0.8.6/m4/intmax.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/intmax.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,32 @@
+# intmax.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+dnl Test whether the system has the 'intmax_t' type, but don't attempt to
+dnl find a replacement if it is lacking.
+
+AC_DEFUN([gt_TYPE_INTMAX_T],
+[
+  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
+  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
+  AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
+    [AC_TRY_COMPILE([
+#include <stddef.h> 
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
+  if test $gt_cv_c_intmax_t = yes; then
+    AC_DEFINE(HAVE_INTMAX_T, 1,
+      [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/inttypes-pri.m4 dillo-0.8.6-i18n-misc-20060709/m4/inttypes-pri.m4
--- dillo-0.8.6/m4/inttypes-pri.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/inttypes-pri.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,32 @@
+# inttypes-pri.m4 serial 1 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
+# macros to non-string values.  This is the case on AIX 4.3.3.
+
+AC_DEFUN([gt_INTTYPES_PRI],
+[
+  AC_REQUIRE([gt_HEADER_INTTYPES_H])
+  if test $gt_cv_header_inttypes_h = yes; then
+    AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+      gt_cv_inttypes_pri_broken,
+      [
+        AC_TRY_COMPILE([#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
+      ])
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
+    AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
+      [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/inttypes.m4 dillo-0.8.6-i18n-misc-20060709/m4/inttypes.m4
--- dillo-0.8.6/m4/inttypes.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/inttypes.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,27 @@
+# inttypes.m4 serial 1 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
+# <sys/types.h>.
+
+AC_DEFUN([gt_HEADER_INTTYPES_H],
+[
+  AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
+  [
+    AC_TRY_COMPILE(
+      [#include <sys/types.h>
+#include <inttypes.h>],
+      [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
+  ])
+  if test $gt_cv_header_inttypes_h = yes; then
+    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
+      [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/inttypes_h.m4 dillo-0.8.6-i18n-misc-20060709/m4/inttypes_h.m4
--- dillo-0.8.6/m4/inttypes_h.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/inttypes_h.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,28 @@
+# inttypes_h.m4 serial 4 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
+[
+  AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
+  [AC_TRY_COMPILE(
+    [#include <sys/types.h>
+#include <inttypes.h>],
+    [uintmax_t i = (uintmax_t) -1;],
+    jm_ac_cv_header_inttypes_h=yes,
+    jm_ac_cv_header_inttypes_h=no)])
+  if test $jm_ac_cv_header_inttypes_h = yes; then
+    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
+[Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
+   and declares uintmax_t. ])
+  fi
+])
diff -pruN dillo-0.8.6/m4/isc-posix.m4 dillo-0.8.6-i18n-misc-20060709/m4/isc-posix.m4
--- dillo-0.8.6/m4/isc-posix.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/isc-posix.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,26 @@
+# isc-posix.m4 serial 2 (gettext-0.11.2)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
+
+# This test replaces the one in autoconf.
+# Currently this macro should have the same name as the autoconf macro
+# because gettext's gettext.m4 (distributed in the automake package)
+# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
+# give these diagnostics:
+#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
+#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
+
+undefine([AC_ISC_POSIX])
+
+AC_DEFUN([AC_ISC_POSIX],
+  [
+    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
+    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
+  ]
+)
diff -pruN dillo-0.8.6/m4/lcmessage.m4 dillo-0.8.6-i18n-misc-20060709/m4/lcmessage.m4
--- dillo-0.8.6/m4/lcmessage.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/lcmessage.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,32 @@
+# lcmessage.m4 serial 3 (gettext-0.11.3)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+
+AC_DEFUN([AM_LC_MESSAGES],
+[
+  AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+    [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+  if test $am_cv_val_LC_MESSAGES = yes; then
+    AC_DEFINE(HAVE_LC_MESSAGES, 1,
+      [Define if your <locale.h> file defines LC_MESSAGES.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/lib-ld.m4 dillo-0.8.6-i18n-misc-20060709/m4/lib-ld.m4
--- dillo-0.8.6/m4/lib-ld.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/lib-ld.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,97 @@
+# lib-ld.m4 serial 1 (gettext-0.11)
+dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+  acl_cv_prog_gnu_ld=yes
+else
+  acl_cv_prog_gnu_ld=no
+fi])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by GCC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]* | [A-Za-z]:[\\/]*)]
+      [re_direlt='/[^/][^/]*/\.\./']
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+	test "$with_gnu_ld" != no && break
+      else
+	test "$with_gnu_ld" != yes && break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
diff -pruN dillo-0.8.6/m4/lib-link.m4 dillo-0.8.6-i18n-misc-20060709/m4/lib-link.m4
--- dillo-0.8.6/m4/lib-link.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/lib-link.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,554 @@
+# lib-link.m4 serial 3 (gettext-0.11.3)
+dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+    AC_LIB_LINKFLAGS_BODY([$1], [$2])
+    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+  ])
+  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+  dnl results of this search when this library appears as a dependency.
+  HAVE_LIB[]NAME=yes
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed lib[]Name and not disabled its use
+  dnl via --without-lib[]Name-prefix, he wants to use it.
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+    ac_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIB[]NAME"
+    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+    LIBS="$ac_save_LIBS"
+  ])
+  if test "$ac_cv_lib[]Name" = yes; then
+    HAVE_LIB[]NAME=yes
+    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+    AC_MSG_CHECKING([how to link with lib[]$1])
+    AC_MSG_RESULT([$LIB[]NAME])
+  else
+    HAVE_LIB[]NAME=no
+    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+    dnl $INC[]NAME either.
+    CPPFLAGS="$ac_save_CPPFLAGS"
+    LIB[]NAME=
+    LTLIB[]NAME=
+  fi
+  AC_SUBST([HAVE_LIB]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L,
+dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec.
+AC_DEFUN([AC_LIB_RPATH],
+[
+  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
+  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
+  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
+  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+  ])
+  wl="$acl_cv_wl"
+  libext="$acl_cv_libext"
+  shlibext="$acl_cv_shlibext"
+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  hardcode_direct="$acl_cv_hardcode_direct"
+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
+  sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
+  sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
+  dnl Determine whether the user wants rpath handling at all.
+  AC_ARG_ENABLE(rpath,
+    [  --disable-rpath         do not hardcode runtime library paths],
+    :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_ARG_WITH([lib$1-prefix],
+[  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
+  --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  dnl Search the library and its dependencies in $additional_libdir and
+  dnl $LDFLAGS. Using breadth-first-seach.
+  LIB[]NAME=
+  LTLIB[]NAME=
+  INC[]NAME=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='$1 $2'
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+        dnl or AC_LIB_HAVE_LINKFLAGS call.
+        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+          else
+            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+            dnl that this library doesn't exist. So just drop it.
+            :
+          fi
+        else
+          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+          dnl and the already constructed $LIBNAME/$LTLIBNAME.
+          found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIB[]NAME; do
+              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+            dnl Found the library.
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+              dnl Linking with a shared library. We attempt to hardcode its
+              dnl directory into the executable's runpath, unless it's the
+              dnl standard /usr/lib.
+              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                dnl No hardcoding is needed.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+              else
+                dnl Use an explicit option to hardcode DIR into the resulting
+                dnl binary.
+                dnl Potentially add DIR to ltrpathdirs.
+                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                dnl The hardcoding into $LIBNAME is system dependent.
+                if test "$hardcode_direct" = yes; then
+                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+                  dnl resulting binary.
+                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                    dnl Use an explicit option to hardcode DIR into the resulting
+                    dnl binary.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    dnl Potentially add DIR to rpathdirs.
+                    dnl The rpathdirs will be appended to $LIBNAME at the end.
+                    haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                    dnl Rely on "-L$found_dir".
+                    dnl But don't add it if it's already contained in the LDFLAGS
+                    dnl or the already constructed $LIBNAME
+                    haveit=
+                    for x in $LDFLAGS $LIB[]NAME; do
+                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    else
+                      dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+                      dnl here, because this doesn't fit in flags passed to the
+                      dnl compiler. So give up. No hardcoding. This affects only
+                      dnl very old systems.
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                dnl Linking with a static library.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+              else
+                dnl We shouldn't come here, but anyway it's good to have a
+                dnl fallback.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+              fi
+            fi
+            dnl Assume the include files are nearby.
+            additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+              dnl Potentially add $additional_includedir to $INCNAME.
+              dnl But don't add it
+              dnl   1. if it's the standard /usr/include,
+              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
+              dnl   3. if it's already present in $CPPFLAGS or the already
+              dnl      constructed $INCNAME,
+              dnl   4. if it doesn't exist as a directory.
+              if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux*) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INC[]NAME; do
+                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                      dnl Really add $additional_includedir to $INCNAME.
+                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+            dnl Look for dependencies.
+            if test -n "$found_la"; then
+              dnl Read the .la file. It defines the variables
+              dnl dlname, library_names, old_library, dependency_libs, current,
+              dnl age, revision, installed, dlopen, dlpreopen, libdir.
+              save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+              dnl We use only dependency_libs.
+              for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+                    dnl But don't add it
+                    dnl   1. if it's the standard /usr/lib,
+                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
+                    dnl   3. if it's already present in $LDFLAGS or the already
+                    dnl      constructed $LIBNAME,
+                    dnl   4. if it doesn't exist as a directory.
+                    if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux*) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LIBNAME.
+                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LTLIBNAME.
+                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                      dnl Potentially add DIR to rpathdirs.
+                      dnl The rpathdirs will be appended to $LIBNAME at the end.
+                      haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                      dnl Potentially add DIR to ltrpathdirs.
+                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                      haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                    dnl Handle this in the next round.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                    dnl Handle this in the next round. Throw away the .la's
+                    dnl directory; it is already contained in a preceding -L
+                    dnl option.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                    dnl Most likely an immediate library name.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+            dnl Didn't find the library; assume it is in the system directories
+            dnl known to the linker and runtime loader. (All the system
+            dnl directories known to the linker should also be known to the
+            dnl runtime loader, otherwise the system is severely misconfigured.)
+            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+      dnl Weird platform: only the last -rpath option counts, the user must
+      dnl pass all path elements in one option. We can arrange that for a
+      dnl single library, but not when more than one $LIBNAMEs are used.
+      alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+      dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+      acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+    else
+      dnl The -rpath options are cumulative.
+      for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+    dnl When using libtool, the option that works for both libraries and
+    dnl executables is -R. The -R options are cumulative.
+    for found_dir in $ltrpathdirs; do
+      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+    done
+  fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+  for element in [$2]; do
+    haveit=
+    for x in $[$1]; do
+      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      [$1]="${[$1]}${[$1]:+ }$element"
+    fi
+  done
+])
diff -pruN dillo-0.8.6/m4/lib-prefix.m4 dillo-0.8.6-i18n-misc-20060709/m4/lib-prefix.m4
--- dillo-0.8.6/m4/lib-prefix.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/lib-prefix.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,148 @@
+# lib-prefix.m4 serial 1 (gettext-0.11)
+dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_ARG_WITH([lib-prefix],
+[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+  --without-lib-prefix    don't search for libraries in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  if test $use_additional = yes; then
+    dnl Potentially add $additional_includedir to $CPPFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/include,
+    dnl   2. if it's already present in $CPPFLAGS,
+    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_includedir" != "X/usr/include"; then
+      haveit=
+      for x in $CPPFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-I$additional_includedir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_includedir" = "X/usr/local/include"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_includedir"; then
+            dnl Really add $additional_includedir to $CPPFLAGS.
+            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+          fi
+        fi
+      fi
+    fi
+    dnl Potentially add $additional_libdir to $LDFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/lib,
+    dnl   2. if it's already present in $LDFLAGS,
+    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_libdir" != "X/usr/lib"; then
+      haveit=
+      for x in $LDFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-L$additional_libdir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_libdir" = "X/usr/local/lib"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_libdir"; then
+            dnl Really add $additional_libdir to $LDFLAGS.
+            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+          fi
+        fi
+      fi
+    fi
+  fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+  dnl Unfortunately, prefix and exec_prefix get only finally determined
+  dnl at the end of configure.
+  if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  $1
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+])
diff -pruN dillo-0.8.6/m4/longdouble.m4 dillo-0.8.6-i18n-misc-20060709/m4/longdouble.m4
--- dillo-0.8.6/m4/longdouble.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/longdouble.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,30 @@
+# longdouble.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+dnl Test whether the compiler supports the 'long double' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_LONGDOUBLE],
+[
+  AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
+    [if test "$GCC" = yes; then
+       gt_cv_c_long_double=yes
+     else
+       AC_TRY_COMPILE([
+         /* The Stardent Vistra knows sizeof(long double), but does not support it.  */
+         long double foo = 0.0;
+         /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
+         int array [2*(sizeof(long double) >= sizeof(double)) - 1];
+         ], ,
+         gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
+     fi])
+  if test $gt_cv_c_long_double = yes; then
+    AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/longlong.m4 dillo-0.8.6-i18n-misc-20060709/m4/longlong.m4
--- dillo-0.8.6/m4/longlong.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/longlong.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,25 @@
+# longlong.m4 serial 4
+dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_LONG_LONG if 'long long' works.
+
+AC_DEFUN([jm_AC_TYPE_LONG_LONG],
+[
+  AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
+  [AC_TRY_LINK([long long ll = 1LL; int i = 63;],
+    [long long llmax = (long long) -1;
+     return ll << i | ll >> i | llmax / ll | llmax % ll;],
+    ac_cv_type_long_long=yes,
+    ac_cv_type_long_long=no)])
+  if test $ac_cv_type_long_long = yes; then
+    AC_DEFINE(HAVE_LONG_LONG, 1,
+      [Define if you have the 'long long' type.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/nls.m4 dillo-0.8.6-i18n-misc-20060709/m4/nls.m4
--- dillo-0.8.6/m4/nls.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/nls.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,49 @@
+# nls.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_DEFUN([AM_NLS],
+[
+  AC_MSG_CHECKING([whether NLS is requested])
+  dnl Default is enabled NLS
+  AC_ARG_ENABLE(nls,
+    [  --disable-nls           do not use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=yes)
+  AC_MSG_RESULT($USE_NLS)
+  AC_SUBST(USE_NLS)
+])
+
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+  dnl Try to locate it.
+  MKINSTALLDIRS=
+  if test -n "$ac_aux_dir"; then
+    case "$ac_aux_dir" in
+      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+    esac
+  fi
+  if test -z "$MKINSTALLDIRS"; then
+    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+  fi
+  AC_SUBST(MKINSTALLDIRS)
+])
diff -pruN dillo-0.8.6/m4/po.m4 dillo-0.8.6-i18n-misc-20060709/m4/po.m4
--- dillo-0.8.6/m4/po.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/po.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,426 @@
+# po.m4 serial 3 (gettext-0.14)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+  AC_REQUIRE([AM_NLS])dnl
+
+  dnl Perform the following tests also if --disable-nls has been given,
+  dnl because they are needed for "make dist" to work.
+
+  dnl Search for GNU msgfmt in the PATH.
+  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+  dnl The second test excludes FreeBSD msgfmt.
+  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+    [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+  dnl Search for GNU xgettext 0.12 or newer in the PATH.
+  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+  dnl The second test excludes FreeBSD xgettext.
+  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  dnl Remove leftover from FreeBSD xgettext call.
+  rm -f messages.po
+
+  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+    [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
+
+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+  dnl Test whether we really found GNU msgfmt.
+  if test "$GMSGFMT" != ":"; then
+    dnl If it is no GNU msgfmt we define it as : so that the
+    dnl Makefiles still can work.
+    if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+      AC_MSG_RESULT(
+        [found $GMSGFMT program is not GNU msgfmt; ignore it])
+      GMSGFMT=":"
+    fi
+  fi
+
+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+  dnl Test whether we really found GNU xgettext.
+  if test "$XGETTEXT" != ":"; then
+    dnl If it is no GNU xgettext we define it as : so that the
+    dnl Makefiles still can work.
+    if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+       (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      AC_MSG_RESULT(
+        [found xgettext program is not GNU xgettext; ignore it])
+      XGETTEXT=":"
+    fi
+    dnl Remove leftover from FreeBSD xgettext call.
+    rm -f messages.po
+  fi
+
+  AC_OUTPUT_COMMANDS([
+    for ac_file in $CONFIG_FILES; do
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+      # PO directories have a Makefile.in generated from Makefile.in.in.
+      case "$ac_file" in */Makefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+        esac
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          POMAKEFILEDEPS="POTFILES.in"
+          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+          # on $ac_dir but don't depend on user-specified configuration
+          # parameters.
+          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+            # The LINGUAS file contains the set of available languages.
+            if test -n "$OBSOLETE_ALL_LINGUAS"; then
+              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+            fi
+            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            # Hide the ALL_LINGUAS assigment from automake.
+            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+          else
+            # The set of available languages was given in configure.in.
+            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+          fi
+          # Compute POFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+          # Compute UPDATEPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+          # Compute DUMMYPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+          # Compute GMOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+          case "$ac_given_srcdir" in
+            .) srcdirpre= ;;
+            *) srcdirpre='$(srcdir)/' ;;
+          esac
+          POFILES=
+          UPDATEPOFILES=
+          DUMMYPOFILES=
+          GMOFILES=
+          for lang in $ALL_LINGUAS; do
+            POFILES="$POFILES $srcdirpre$lang.po"
+            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+          done
+          # CATALOGS depends on both $ac_dir and the user's LINGUAS
+          # environment variable.
+          INST_LINGUAS=
+          if test -n "$ALL_LINGUAS"; then
+            for presentlang in $ALL_LINGUAS; do
+              useit=no
+              if test "%UNSET%" != "$LINGUAS"; then
+                desiredlanguages="$LINGUAS"
+              else
+                desiredlanguages="$ALL_LINGUAS"
+              fi
+              for desiredlang in $desiredlanguages; do
+                # Use the presentlang catalog if desiredlang is
+                #   a. equal to presentlang, or
+                #   b. a variant of presentlang (because in this case,
+                #      presentlang can be used as a fallback for messages
+                #      which are not translated in the desiredlang catalog).
+                case "$desiredlang" in
+                  "$presentlang"*) useit=yes;;
+                esac
+              done
+              if test $useit = yes; then
+                INST_LINGUAS="$INST_LINGUAS $presentlang"
+              fi
+            done
+          fi
+          CATALOGS=
+          if test -n "$INST_LINGUAS"; then
+            for lang in $INST_LINGUAS; do
+              CATALOGS="$CATALOGS $lang.gmo"
+            done
+          fi
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+            if test -f "$f"; then
+              case "$f" in
+                *.orig | *.bak | *~) ;;
+                *) cat "$f" >> "$ac_dir/Makefile" ;;
+              esac
+            fi
+          done
+        fi
+        ;;
+      esac
+    done],
+   [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+    # from automake.
+    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+    # Capture the value of LINGUAS because we need it to compute CATALOGS.
+    LINGUAS="${LINGUAS-%UNSET%}"
+   ])
+])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+  # When this code is run, in config.status, two variables have already been
+  # set:
+  # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+  # - LINGUAS is the value of the environment variable LINGUAS at configure
+  #   time.
+
+changequote(,)dnl
+  # Adjust a relative srcdir.
+  ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+  ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+  ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+  # In autoconf-2.13 it is called $ac_given_srcdir.
+  # In autoconf-2.50 it is called $srcdir.
+  test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+  case "$ac_given_srcdir" in
+    .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+    /*) top_srcdir="$ac_given_srcdir" ;;
+    *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  # Find a way to echo strings without interpreting backslash.
+  if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+    gt_echo='echo'
+  else
+    if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+      gt_echo='printf %s\n'
+    else
+      echo_func () {
+        cat <<EOT
+$*
+EOT
+      }
+      gt_echo='echo_func'
+    fi
+  fi
+
+  # A sed script that extracts the value of VARIABLE from a Makefile.
+  sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^[	 ]*VARIABLE[	 ]*=/{
+  # Seen the first line of the variable definition.
+  s/^[	 ]*VARIABLE[	 ]*=//
+  ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+  # Set POTFILES to the value of the Makefile variable POTFILES.
+  sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
+  POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+  # Compute POTFILES_DEPS as
+  #   $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+  POTFILES_DEPS=
+  for file in $POTFILES; do
+    POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+  done
+  POMAKEFILEDEPS=""
+
+  if test -n "$OBSOLETE_ALL_LINGUAS"; then
+    test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+  fi
+  if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+    # The LINGUAS file contains the set of available languages.
+    ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+    POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+  else
+    # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+    sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
+    ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+  fi
+  # Hide the ALL_LINGUAS assigment from automake.
+  eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+  # Compute POFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+  # Compute UPDATEPOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+  # Compute DUMMYPOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+  # Compute GMOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+  # Compute PROPERTIESFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+  # Compute CLASSFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+  # Compute QMFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+  # Compute MSGFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+  # Compute RESOURCESDLLFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+  case "$ac_given_srcdir" in
+    .) srcdirpre= ;;
+    *) srcdirpre='$(srcdir)/' ;;
+  esac
+  POFILES=
+  UPDATEPOFILES=
+  DUMMYPOFILES=
+  GMOFILES=
+  PROPERTIESFILES=
+  CLASSFILES=
+  QMFILES=
+  MSGFILES=
+  RESOURCESDLLFILES=
+  for lang in $ALL_LINGUAS; do
+    POFILES="$POFILES $srcdirpre$lang.po"
+    UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+    DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+    GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+    PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+    CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+    QMFILES="$QMFILES $srcdirpre$lang.qm"
+    frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+    MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+    frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+    RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+  done
+  # CATALOGS depends on both $ac_dir and the user's LINGUAS
+  # environment variable.
+  INST_LINGUAS=
+  if test -n "$ALL_LINGUAS"; then
+    for presentlang in $ALL_LINGUAS; do
+      useit=no
+      if test "%UNSET%" != "$LINGUAS"; then
+        desiredlanguages="$LINGUAS"
+      else
+        desiredlanguages="$ALL_LINGUAS"
+      fi
+      for desiredlang in $desiredlanguages; do
+        # Use the presentlang catalog if desiredlang is
+        #   a. equal to presentlang, or
+        #   b. a variant of presentlang (because in this case,
+        #      presentlang can be used as a fallback for messages
+        #      which are not translated in the desiredlang catalog).
+        case "$desiredlang" in
+          "$presentlang"*) useit=yes;;
+        esac
+      done
+      if test $useit = yes; then
+        INST_LINGUAS="$INST_LINGUAS $presentlang"
+      fi
+    done
+  fi
+  CATALOGS=
+  JAVACATALOGS=
+  QTCATALOGS=
+  TCLCATALOGS=
+  CSHARPCATALOGS=
+  if test -n "$INST_LINGUAS"; then
+    for lang in $INST_LINGUAS; do
+      CATALOGS="$CATALOGS $lang.gmo"
+      JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+      QTCATALOGS="$QTCATALOGS $lang.qm"
+      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+      TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+      frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+      CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+    done
+  fi
+
+  sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+  if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+    # Add dependencies that cannot be formulated as a simple suffix rule.
+    for lang in $ALL_LINGUAS; do
+      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+      cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+	@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+	\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+    done
+  fi
+  if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+    # Add dependencies that cannot be formulated as a simple suffix rule.
+    for lang in $ALL_LINGUAS; do
+      frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+      cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+	@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+	\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+    done
+  fi
+  if test -n "$POMAKEFILEDEPS"; then
+    cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+  fi
+  mv "$ac_file.tmp" "$ac_file"
+])
diff -pruN dillo-0.8.6/m4/printf-posix.m4 dillo-0.8.6-i18n-misc-20060709/m4/printf-posix.m4
--- dillo-0.8.6/m4/printf-posix.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/printf-posix.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,46 @@
+# printf-posix.m4 serial 2 (gettext-0.13.1)
+dnl Copyright (C) 2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+dnl Test whether the printf() function supports POSIX/XSI format strings with
+dnl positions.
+
+AC_DEFUN([gt_PRINTF_POSIX],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
+    gt_cv_func_printf_posix,
+    [
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+   dollar expansion (possibly an autoconf bug).  */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+  sprintf (buf, format, 33, 55);
+  return (strcmp (buf, "55 33") != 0);
+}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
+      [
+        AC_EGREP_CPP(notposix, [
+#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
+  notposix
+#endif
+        ], gt_cv_func_printf_posix="guessing no",
+           gt_cv_func_printf_posix="guessing yes")
+      ])
+    ])
+  case $gt_cv_func_printf_posix in
+    *yes)
+      AC_DEFINE(HAVE_POSIX_PRINTF, 1,
+        [Define if your printf() function supports format strings with positions.])
+      ;;
+  esac
+])
diff -pruN dillo-0.8.6/m4/progtest.m4 dillo-0.8.6-i18n-misc-20060709/m4/progtest.m4
--- dillo-0.8.6/m4/progtest.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/progtest.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,59 @@
+# progtest.m4 serial 2 (gettext-0.10.40)
+dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  /*)
+  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+	ac_cv_path_$1="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+  ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
diff -pruN dillo-0.8.6/m4/signed.m4 dillo-0.8.6-i18n-misc-20060709/m4/signed.m4
--- dillo-0.8.6/m4/signed.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/signed.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,19 @@
+# signed.m4 serial 1 (gettext-0.10.40)
+dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([bh_C_SIGNED],
+[
+  AC_CACHE_CHECK([for signed], bh_cv_c_signed,
+   [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)])
+  if test $bh_cv_c_signed = no; then
+    AC_DEFINE(signed, ,
+              [Define to empty if the C compiler doesn't support this keyword.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/size_max.m4 dillo-0.8.6-i18n-misc-20060709/m4/size_max.m4
--- dillo-0.8.6/m4/size_max.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/size_max.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,61 @@
+# size_max.m4 serial 2
+dnl Copyright (C) 2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_SIZE_MAX],
+[
+  AC_CHECK_HEADERS(stdint.h)
+  dnl First test whether the system already has SIZE_MAX.
+  AC_MSG_CHECKING([for SIZE_MAX])
+  result=
+  AC_EGREP_CPP([Found it], [
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
+], result=yes)
+  if test -z "$result"; then
+    dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
+    dnl than the type 'unsigned long'.
+    dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr',
+    dnl which is guaranteed to work from LONG_MIN to LONG_MAX.
+    _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi,
+      [#include <stddef.h>], result=?)
+    _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo,
+      [#include <stddef.h>], result=?)
+    _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint,
+      [#include <stddef.h>], result=?)
+    if test "$fits_in_uint" = 1; then
+      dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
+      dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
+      AC_TRY_COMPILE([#include <stddef.h>
+        extern size_t foo;
+        extern unsigned long foo;
+        ], [], fits_in_uint=0)
+    fi
+    if test -z "$result"; then
+      if test "$fits_in_uint" = 1; then
+        result="$res_hi$res_lo"U
+      else
+        result="$res_hi$res_lo"UL
+      fi
+    else
+      dnl Shouldn't happen, but who knows...
+      result='~(size_t)0'
+    fi
+  fi
+  AC_MSG_RESULT([$result])
+  if test "$result" != yes; then
+    AC_DEFINE_UNQUOTED([SIZE_MAX], [$result],
+      [Define as the maximum value of type 'size_t', if the system doesn't define it.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/stdint_h.m4 dillo-0.8.6-i18n-misc-20060709/m4/stdint_h.m4
--- dillo-0.8.6/m4/stdint_h.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/stdint_h.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,28 @@
+# stdint_h.m4 serial 2 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([jm_AC_HEADER_STDINT_H],
+[
+  AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
+  [AC_TRY_COMPILE(
+    [#include <sys/types.h>
+#include <stdint.h>],
+    [uintmax_t i = (uintmax_t) -1;],
+    jm_ac_cv_header_stdint_h=yes,
+    jm_ac_cv_header_stdint_h=no)])
+  if test $jm_ac_cv_header_stdint_h = yes; then
+    AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
+[Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
+   and declares uintmax_t. ])
+  fi
+])
diff -pruN dillo-0.8.6/m4/uintmax_t.m4 dillo-0.8.6-i18n-misc-20060709/m4/uintmax_t.m4
--- dillo-0.8.6/m4/uintmax_t.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/uintmax_t.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,29 @@
+# uintmax_t.m4 serial 6 (gettext-0.11)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+AC_PREREQ(2.13)
+
+# Define uintmax_t to `unsigned long' or `unsigned long long'
+# if <inttypes.h> does not exist.
+
+AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
+[
+  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
+  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
+  if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
+    AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
+    test $ac_cv_type_unsigned_long_long = yes \
+      && ac_type='unsigned long long' \
+      || ac_type='unsigned long'
+    AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
+  [Define to unsigned long or unsigned long long
+   if <inttypes.h> and <stdint.h> don't define.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/ulonglong.m4 dillo-0.8.6-i18n-misc-20060709/m4/ulonglong.m4
--- dillo-0.8.6/m4/ulonglong.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/ulonglong.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,25 @@
+# ulonglong.m4 serial 3
+dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
+
+AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
+[
+  AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
+  [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],
+    [unsigned long long ullmax = (unsigned long long) -1;
+     return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
+    ac_cv_type_unsigned_long_long=yes,
+    ac_cv_type_unsigned_long_long=no)])
+  if test $ac_cv_type_unsigned_long_long = yes; then
+    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
+      [Define if you have the 'unsigned long long' type.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/wchar_t.m4 dillo-0.8.6-i18n-misc-20060709/m4/wchar_t.m4
--- dillo-0.8.6/m4/wchar_t.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/wchar_t.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,22 @@
+# wchar_t.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+dnl Test whether <stddef.h> has the 'wchar_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WCHAR_T],
+[
+  AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
+    [AC_TRY_COMPILE([#include <stddef.h>
+       wchar_t foo = (wchar_t)'\0';], ,
+       gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
+  if test $gt_cv_c_wchar_t = yes; then
+    AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/wint_t.m4 dillo-0.8.6-i18n-misc-20060709/m4/wint_t.m4
--- dillo-0.8.6/m4/wint_t.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/wint_t.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,22 @@
+# wint_t.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+dnl Test whether <wchar.h> has the 'wint_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WINT_T],
+[
+  AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
+    [AC_TRY_COMPILE([#include <wchar.h>
+       wint_t foo = (wchar_t)'\0';], ,
+       gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
+  if test $gt_cv_c_wint_t = yes; then
+    AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
+  fi
+])
diff -pruN dillo-0.8.6/m4/xsize.m4 dillo-0.8.6-i18n-misc-20060709/m4/xsize.m4
--- dillo-0.8.6/m4/xsize.m4	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/m4/xsize.m4	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,14 @@
+# xsize.m4 serial 2
+dnl Copyright (C) 2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+AC_DEFUN([gl_XSIZE],
+[
+  dnl Prerequisites of lib/xsize.h.
+  AC_REQUIRE([gl_SIZE_MAX])
+  AC_CHECK_HEADERS(stdint.h)
+])
diff -pruN dillo-0.8.6/missing dillo-0.8.6-i18n-misc-20060709/missing
--- dillo-0.8.6/missing	2005-03-22 16:17:05.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/missing	2006-05-16 01:21:07.000000000 +0900
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2005-02-08.22
+scriptversion=2003-09-02.23
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 
 #   Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
@@ -60,6 +60,11 @@ case "$1" in
     msg="probably too old"
   fi
   ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
 
   -h|--h|--he|--hel|--help)
     echo "\
@@ -87,12 +92,10 @@ Supported PROGRAM values:
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
 Send bug reports to <bug-automake@gnu.org>."
-    exit $?
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
     echo "missing $scriptversion (GNU Automake)"
-    exit $?
     ;;
 
   -*)
@@ -101,42 +104,12 @@ Send bug reports to <bug-automake@gnu.or
     exit 1
     ;;
 
-esac
-
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).
-case "$1" in
-  lex|yacc)
-    # Not GNU programs, they don't have --version.
-    ;;
-
-  tar)
-    if test -n "$run"; then
-       echo 1>&2 "ERROR: \`tar' requires --run"
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       exit 1
-    fi
-    ;;
-
-  *)
+  aclocal*)
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
        exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
     fi
-    ;;
-esac
 
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-  aclocal*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
@@ -146,6 +119,11 @@ WARNING: \`$1' is $msg.  You should only
     ;;
 
   autoconf)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`${configure_ac}'.  You might want to install the
@@ -155,6 +133,11 @@ WARNING: \`$1' is $msg.  You should only
     ;;
 
   autoheader)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
@@ -174,6 +157,11 @@ WARNING: \`$1' is $msg.  You should only
     ;;
 
   automake*)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
@@ -185,11 +173,16 @@ WARNING: \`$1' is $msg.  You should only
     ;;
 
   autom4te)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
     echo 1>&2 "\
 WARNING: \`$1' is needed, but is $msg.
          You might have modified some files without having the
          proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
+         You can get \`$1Help2man' as part of \`Autoconf' from any GNU
          archive site."
 
     file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
@@ -261,6 +254,11 @@ WARNING: \`$1' is $msg.  You should only
     ;;
 
   help2man)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
 	 you modified a dependency of a manual page.  You may need the
@@ -281,6 +279,11 @@ WARNING: \`$1' is $msg.  You should only
     ;;
 
   makeinfo)
+    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
+       # We have makeinfo, but it failed.
+       exit 1
+    fi
+
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -288,20 +291,20 @@ WARNING: \`$1' is $msg.  You should only
          call might also be the consequence of using a buggy \`make' (AIX,
          DU, IRIX).  You might want to install the \`Texinfo' package or
          the \`GNU make' package.  Grab either from any GNU archive site."
-    # The file to touch is that specified with -o ...
     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
     if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
     fi
     touch $file
     ;;
 
   tar)
     shift
+    if test -n "$run"; then
+      echo 1>&2 "ERROR: \`tar' requires --run"
+      exit 1
+    fi
 
     # We have already tried tar in the generic part.
     # Look for gnutar/gtar before invocation to avoid ugly error
@@ -340,7 +343,7 @@ WARNING: I can't seem to be able to run 
 WARNING: \`$1' is needed, and is $msg.
          You might have modified some files without having the
          proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequisites for installing
+         it often tells you about the needed prerequirements for installing
          this package.  You may also peek at any GNU archive site, in case
          some other package would contain this missing \`$1' program."
     exit 1
diff -pruN dillo-0.8.6/mkinstalldirs dillo-0.8.6-i18n-misc-20060709/mkinstalldirs
--- dillo-0.8.6/mkinstalldirs	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/mkinstalldirs	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $
+
+errstatus=0
+
+for file
+do
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d
+   do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp"
+
+        mkdir "$pathcomp" || lasterr=$?
+
+        if test ! -d "$pathcomp"; then
+  	  errstatus=$lasterr
+        fi
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff -pruN dillo-0.8.6/po/ChangeLog dillo-0.8.6-i18n-misc-20060709/po/ChangeLog
--- dillo-0.8.6/po/ChangeLog	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/ChangeLog	2006-05-16 01:21:07.000000000 +0900
@@ -0,0 +1,16 @@
+2004-11-23  gettextize  <bug-gnu-gettext@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.11.4.
+	* Rules-quot: Upgrade to gettext-0.11.4.
+
+2003-10-01  gettextize  <bug-gnu-gettext@gnu.org>
+
+	* Makefile.in.in: New file, from gettext-0.11.4.
+	* Rules-quot: New file, from gettext-0.11.4.
+	* boldquot.sed: New file, from gettext-0.11.4.
+	* en@boldquot.header: New file, from gettext-0.11.4.
+	* en@quot.header: New file, from gettext-0.11.4.
+	* insert-header.sin: New file, from gettext-0.11.4.
+	* quot.sed: New file, from gettext-0.11.4.
+	* remove-potcdate.sin: New file, from gettext-0.11.4.
+
diff -pruN dillo-0.8.6/po/Makefile.in.in dillo-0.8.6-i18n-misc-20060709/po/Makefile.in.in
--- dillo-0.8.6/po/Makefile.in.in	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/Makefile.in.in	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,318 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU General Public
+# License but which still want to provide support for the GNU gettext
+# functionality.
+# Please note that the actual code of GNU gettext is covered by the GNU
+# General Public License and is *not* in the public domain.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+#mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in Makevars remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
+
+.po.mo:
+	@echo "$(MSGFMT) -c -o $@ $<"; \
+	$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+	@lang=`echo $* | sed -e 's,.*/,,'`; \
+	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+	echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+	cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+	sed -e '/^#/d' $< > t-$@
+	mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+	$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+	  --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+	  --files-from=$(srcdir)/POTFILES.in \
+	  --copyright-holder='$(COPYRIGHT_HOLDER)'
+	test ! -f $(DOMAIN).po || { \
+	  if test -f $(srcdir)/$(DOMAIN).pot; then \
+	    sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+	    sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+	    if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+	    else \
+	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+	      mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+	    fi; \
+	  else \
+	    mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+	  fi; \
+	}
+
+$(srcdir)/$(DOMAIN).pot:
+	$(MAKE) $(DOMAIN).pot-update
+
+$(POFILES): $(srcdir)/$(DOMAIN).pot
+	@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+	echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+	cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+	if test "$(PACKAGE)" = "gettext"; then \
+	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+	  for file in $(DISTFILES.common); do \
+	    $(INSTALL_DATA) $(srcdir)/$$file \
+			    $(DESTDIR)$(gettextsrcdir)/$$file; \
+	  done; \
+	else \
+	  : ; \
+	fi
+install-data-no: all
+install-data-yes: all
+	$(mkinstalldirs) $(DESTDIR)$(datadir)
+	@catalogs='$(CATALOGS)'; \
+	for cat in $$catalogs; do \
+	  cat=`basename $$cat`; \
+	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+	  dir=$(localedir)/$$lang/LC_MESSAGES; \
+	  $(mkinstalldirs) $(DESTDIR)$$dir; \
+	  if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+	  $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+	  echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+	    if test -n "$$lc"; then \
+	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+	        link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+	        mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+	        mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	        (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+	         for file in *; do \
+	           if test -f $$file; then \
+	             ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+	           fi; \
+	         done); \
+	        rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+	      else \
+	        if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+	          :; \
+	        else \
+	          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	          mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	        fi; \
+	      fi; \
+	      rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+	      ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+	      ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+	      cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+	      echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+	    fi; \
+	  done; \
+	done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-@USE_NLS@
+	if test "$(PACKAGE)" = "gettext"; then \
+	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+	else \
+	  : ; \
+	fi
+installdirs-data-no:
+installdirs-data-yes:
+	$(mkinstalldirs) $(DESTDIR)$(datadir)
+	@catalogs='$(CATALOGS)'; \
+	for cat in $$catalogs; do \
+	  cat=`basename $$cat`; \
+	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+	  dir=$(localedir)/$$lang/LC_MESSAGES; \
+	  $(mkinstalldirs) $(DESTDIR)$$dir; \
+	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+	    if test -n "$$lc"; then \
+	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+	        link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+	        mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+	        mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	        (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+	         for file in *; do \
+	           if test -f $$file; then \
+	             ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+	           fi; \
+	         done); \
+	        rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+	      else \
+	        if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+	          :; \
+	        else \
+	          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	          mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	        fi; \
+	      fi; \
+	    fi; \
+	  done; \
+	done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-@USE_NLS@
+	if test "$(PACKAGE)" = "gettext"; then \
+	  for file in $(DISTFILES.common); do \
+	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+	  done; \
+	else \
+	  : ; \
+	fi
+uninstall-data-no:
+uninstall-data-yes:
+	catalogs='$(CATALOGS)'; \
+	for cat in $$catalogs; do \
+	  cat=`basename $$cat`; \
+	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+	  for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+	    rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+	  done; \
+	done
+
+check: all
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+	rm -f remove-potcdate.sed
+	rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+	rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+	rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+	rm -f $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+	$(MAKE) update-po
+	@$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: $(DISTFILES)
+	dists="$(DISTFILES)"; \
+	if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
+	if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+	for file in $$dists; do \
+	  if test -f $$file; then \
+	    cp -p $$file $(distdir); \
+	  else \
+	    cp -p $(srcdir)/$$file $(distdir); \
+	  fi; \
+	done
+
+update-po: Makefile
+	$(MAKE) $(DOMAIN).pot-update
+	$(MAKE) $(UPDATEPOFILES)
+	$(MAKE) update-gmo
+
+# General rule for updating PO files.
+
+.nop.po-update:
+	@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+	if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
+	tmpdir=`pwd`; \
+	echo "$$lang:"; \
+	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+	echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+	cd $(srcdir); \
+	if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	    rm -f $$tmpdir/$$lang.new.po; \
+	  else \
+	    if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+	      :; \
+	    else \
+	      echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+	      exit 1; \
+	    fi; \
+	  fi; \
+	else \
+	  echo "msgmerge for $$lang.po failed!" 1>&2; \
+	  rm -f $$tmpdir/$$lang.new.po; \
+	fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+	@:
+
+Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+	       $(SHELL) ./config.status
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -pruN dillo-0.8.6/po/Makevars dillo-0.8.6-i18n-misc-20060709/po/Makevars
--- dillo-0.8.6/po/Makevars	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/Makevars	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = http://teki.jpn.ph/
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff -pruN dillo-0.8.6/po/POTFILES.in dillo-0.8.6-i18n-misc-20060709/po/POTFILES.in
--- dillo-0.8.6/po/POTFILES.in	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/POTFILES.in	2006-05-16 01:25:31.000000000 +0900
@@ -0,0 +1,176 @@
+src/msg.h
+src/acconfig.h
+src/auth.c
+src/auth.h
+src/bitvec.c
+src/bitvec.h
+src/bookmark.c
+src/bookmark.h
+src/browser.h
+src/cache.c
+src/cache.h
+src/capi.c
+src/capi.h
+src/chain.c
+src/chain.h
+src/colors.c
+src/colors.h
+src/commands.c
+src/commands.h
+src/cookies.c
+src/cookies.h
+src/debug.h
+src/dicache.c
+src/dicache.h
+src/dillo.c
+src/dillo.h
+src/dns.c
+src/dns.h
+src/doc.c
+src/doc.h
+src/dw.c
+src/dw.h
+src/dw_aligned_page.c
+src/dw_aligned_page.h
+src/dw_bullet.c
+src/dw_bullet.h
+src/dw_button.c
+src/dw_button.h
+src/dw_container.c
+src/dw_container.h
+src/dw_embed_gtk.c
+src/dw_embed_gtk.h
+src/dw_ext_iterator.c
+src/dw_ext_iterator.h
+src/dw_gtk_scrolled_frame.c
+src/dw_gtk_scrolled_frame.h
+src/dw_gtk_scrolled_window.c
+src/dw_gtk_scrolled_window.h
+src/dw_gtk_statuslabel.c
+src/dw_gtk_statuslabel.h
+src/dw_gtk_viewport.c
+src/dw_gtk_viewport.h
+src/dw_hruler.c
+src/dw_hruler.h
+src/dw_image.c
+src/dw_image.h
+src/dw_list_item.c
+src/dw_list_item.h
+src/dw_marshal.c
+src/dw_marshal.h
+src/dw_page.c
+src/dw_page.h
+src/dw_style.c
+src/dw_style.h
+src/dw_table.c
+src/dw_table.h
+src/dw_table_cell.c
+src/dw_table_cell.h
+src/dw_tooltip.c
+src/dw_tooltip.h
+src/dw_widget.c
+src/dw_widget.h
+src/findtext.c
+src/findtext.h
+src/selection.c
+src/selection.h
+src/web.c
+src/web.h
+src/progressbar.c
+src/progressbar.h
+src/gtk_ext_button.c
+src/gtk_ext_button.h
+src/gtk_ext_menu.c
+src/gtk_ext_menu.h
+src/gtk_ext_menu_item.c
+src/gtk_ext_menu_item.h
+src/gtk_menu_title.c
+src/gtk_menu_title.h
+src/gif.c
+src/jpeg.c
+src/png.c
+src/html.c
+src/html.h
+src/image.c
+src/image.h
+src/misc.c
+src/misc.h
+src/interface.h
+src/interface.c
+src/history.c
+src/history.h
+src/nav.c
+src/nav.h
+src/plain.c
+src/menu.c
+src/menu.h
+src/prefs.c
+src/prefs.h
+src/klist.c
+src/klist.h
+src/strbuf.c
+src/strbuf.h
+src/url.c
+src/url.h
+src/list.h
+src/binaryconst.h
+src/pixmaps.h
+src/dpiapi.c
+src/dpiapi.h
+src/i18n.c
+src/i18n.h
+src/i18n_gtk.c
+src/i18n_gtk.h
+src/gtkframeset.c
+src/gtkframeset.h
+src/intl.h
+src/tab.c
+src/tab.h
+src/IO/https.c
+src/IO/DBIO.h
+src/IO/DBIO.c
+src/IO/mime.c
+src/IO/mime.h
+src/IO/about.c
+src/IO/Url.c
+src/IO/Url.h
+src/IO/proto.c
+src/IO/http.c
+src/IO/dpi.c
+src/IO/IO.c
+src/IO/IO.h
+src/adblock.c
+src/adblock.h
+dpid/dpi.h
+dpid/dpi_service.h
+dpid/dpi_socket_dir.h
+dpid/dpid.h
+dpid/dpid_common.h
+dpid/misc_new.h
+dpid/dpi.c
+dpid/dpi_service.c
+dpid/dpi_socket_dir.c
+dpid/dpid.c
+dpid/dpid_common.c
+dpid/main.c
+dpid/misc_new.c
+dpi/bookmarks.c
+dpi/dpiutil.c
+dpi/dpiutil.h
+dpi/downloads.cc
+dpi/file.c
+dpi/ftp.c
+dpi/hello.c
+dpi/https.c
+dpi/cookies.c
+dpi/datauri.c
+dpi/downloads-old.c
+config/dillocfg.c
+config/dillocfg.h
+config/dillocfg_option.c
+config/dillocfg_option.h
+config/dillocfg_token.h
+config/dillocfg_token.c
+config.h
+dpip/dpip.h
+dpip/dpip.c
diff -pruN dillo-0.8.6/po/Rules-quot dillo-0.8.6-i18n-misc-20060709/po/Rules-quot
--- dillo-0.8.6/po/Rules-quot	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/Rules-quot	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,42 @@
+# Special Makefile rules for English message catalogs with quotation marks.
+
+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
+
+.SUFFIXES: .insert-header .po-update-en
+
+en@quot.po-update: en@quot.po-update-en
+en@boldquot.po-update: en@boldquot.po-update-en
+
+.insert-header.po-update-en:
+	@lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+	if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+	tmpdir=`pwd`; \
+	echo "$$lang:"; \
+	ll=`echo $$lang | sed -e 's/@.*//'`; \
+	LC_ALL=C; export LC_ALL; \
+	cd $(srcdir); \
+	if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	    rm -f $$tmpdir/$$lang.new.po; \
+	  else \
+	    if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+	      :; \
+	    else \
+	      echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+	      exit 1; \
+	    fi; \
+	  fi; \
+	else \
+	  echo "creation of $$lang.po failed!" 1>&2; \
+	  rm -f $$tmpdir/$$lang.new.po; \
+	fi
+
+en@quot.insert-header: insert-header.sin
+	sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
+
+en@boldquot.insert-header: insert-header.sin
+	sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
+
+mostlyclean: mostlyclean-quot
+mostlyclean-quot:
+	rm -f *.insert-header
diff -pruN dillo-0.8.6/po/boldquot.sed dillo-0.8.6-i18n-misc-20060709/po/boldquot.sed
--- dillo-0.8.6/po/boldquot.sed	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/boldquot.sed	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
+s/“/“/g
+s/”/”/g
+s/‘/‘/g
+s/’/’/g
diff -pruN dillo-0.8.6/po/dillo.pot dillo-0.8.6-i18n-misc-20060709/po/dillo.pot
--- dillo-0.8.6/po/dillo.pot	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/dillo.pot	2006-07-09 00:49:42.000000000 +0900
@@ -0,0 +1,1908 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-07-09 00:49+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msg.h:27
+msgid "HTTP warning: "
+msgstr ""
+
+#: src/auth.c:87
+msgid "Browser Url has changed\n"
+msgstr ""
+
+#: src/cache.c:253
+msgid "WARNING: Cache_entry_add, leaking an entry.\n"
+msgstr ""
+
+#: src/cache.c:316
+msgid "## Aborting CCCQuery\n"
+msgstr ""
+
+#: src/cache.c:319
+msgid "## Aborting CCCAnswer\n"
+msgstr ""
+
+#: src/cache.c:322
+msgid "## Aborting raw2\n"
+msgstr ""
+
+#: src/cache.c:365
+msgid "## No more clients for this entry\n"
+msgstr ""
+
+#: src/cache.c:369
+msgid "Cache_prepare_reload: ERROR, entry still has clients\n"
+msgstr ""
+
+#: src/cache.c:398
+#, c-format
+msgid "Reloading >%s< because it shouldn't be cached\n"
+msgstr ""
+
+#: src/cache.c:418
+msgid "ERROR: unsupported protocol"
+msgstr ""
+
+#: src/cache.c:488
+#, c-format
+msgid "Redirect loop for URL: >%s<\n"
+msgstr ""
+
+#: src/cache.c:590
+#, c-format
+msgid "Bad clocks, ignore expire on >%s<\n"
+msgstr ""
+
+#: src/cache.c:594
+#, c-format
+msgid "Forcing min expire %d on >%s< instead %ld\n"
+msgstr ""
+
+#: src/cache.c:678
+msgid "'Cache-Control: max-age=' without 'Date: ' header"
+msgstr ""
+
+#: src/cache.c:722
+msgid "Server didn't send Content-Type in header.\n"
+msgstr ""
+
+#: src/cache.c:743
+#, c-format
+msgid "Forcing default expire to query url >%s<\n"
+msgstr ""
+
+#: src/cache.c:831
+#, c-format
+msgid "Cache_decode_data: got all data -- decodinging %s\n"
+msgstr ""
+
+#: src/cache.c:840
+msgid "Cache_decode_data: not gzip data!\n"
+msgstr ""
+
+#: src/cache.c:846
+msgid "Cache_decode_data: invalid gzip data!\n"
+msgstr ""
+
+#: src/cache.c:898
+msgid "not x-gzip\n"
+msgstr ""
+
+#: src/cache.c:931
+#, c-format
+msgid ""
+"Content-Length does NOT match message body,\n"
+" at: %s\n"
+msgstr ""
+
+#: src/cache.c:950
+msgid "Cache_process_io Op = IOAbort; not implemented yet\n"
+msgstr ""
+
+#: src/cache.c:1004
+#, c-format
+msgid "ERROR: redirect loop for: %s"
+msgstr ""
+
+#: src/cache.c:1015
+#, c-format
+msgid ""
+">>>Redirect from: %s\n"
+" to %s\n"
+msgstr ""
+
+#: src/cache.c:1035
+msgid ">>>Image redirection without entity-content<<<\n"
+msgstr ""
+
+#: src/cache.c:1037
+msgid ">>>Image redirection with entity-content<<<\n"
+msgstr ""
+
+#: src/cache.c:1103
+msgid "FATAL!:*** >>>> Cache_process_queue Caught busy!!!\n"
+msgstr ""
+
+#: src/cache.c:1111
+#, c-format
+msgid "Content-Type '%s' doesn't match the real data.\n"
+msgstr ""
+
+#: src/cache.c:1140
+#, c-format
+msgid "HTTP warning: Content-Type '%s' doesn't match the real data."
+msgstr ""
+
+#: src/cache.c:1177
+#, c-format
+msgid "Unhandled MIME type: <%s>\n"
+msgstr ""
+
+#: src/cache.c:1202
+msgid "Client Callback is NULL"
+msgstr ""
+
+#: src/cache.c:1303
+msgid "WARNING: Cache_stop_client, inexistent client\n"
+msgstr ""
+
+#: src/cache.c:1445 src/capi.c:428 src/capi.c:481 src/capi.c:536
+#: src/capi.c:570 src/IO/dpi.c:720 src/IO/dpi.c:760
+msgid " Not implemented\n"
+msgstr ""
+
+#: src/capi.c:229
+msgid "Capi_verify_dpi_url_request: Permission Denied!\n"
+msgstr ""
+
+#: src/capi.c:324
+#, c-format
+msgid "  reload=%d URL_E2EReload=%d\n"
+msgstr ""
+
+#: src/capi.c:389
+msgid " ERROR: [a_Capi_dpi_send_cmd] No open connection found\n"
+msgstr ""
+
+#: src/capi.c:457
+msgid "ERROR: can't start dpid daemon!"
+msgstr ""
+
+#: src/capi.c:492
+msgid "  ** Capi 2F catched an invalid 'web' structure\n"
+msgstr ""
+
+#: src/capi.c:552
+msgid " Error with pipe\n"
+msgstr ""
+
+#: src/commands.c:166
+msgid "View Source"
+msgstr ""
+
+#: src/commands.c:183
+msgid "Detected HTML errors"
+msgstr ""
+
+#: src/commands.c:265
+msgid "Stopped"
+msgstr ""
+
+#: src/dillo.c:109
+msgid ""
+"  -x, --xid XID          Open first Dillo window in an existing\n"
+"                         GtkSocket which window ID is XID (decimal)."
+msgstr ""
+
+#: src/dillo.c:112
+msgid "  -v, --version          Display version info and exit."
+msgstr ""
+
+#: src/dillo.c:114
+msgid "  -h, --help             Display this help text and exit."
+msgstr ""
+
+#: src/dillo.c:116
+msgid ""
+"  -f, --fullwindow       Start in full window mode: hide address bar,\n"
+"                         navigation buttons, menu, and status bar."
+msgstr ""
+
+#: src/dillo.c:119
+msgid "  -l, --local            Don't follow links for this URL(s)."
+msgstr ""
+
+#: src/dillo.c:121
+msgid ""
+"  -g, -geometry GEO      Set initial window position where GEO is\n"
+"                         <width>x<height>{+-}<x>{+-}<y>"
+msgstr ""
+
+#: src/dillo.c:125
+msgid ""
+"  -D, --debug-rendering  Draw additionaly several lines in a web page,\n"
+"                         representing its structure. For debugging. "
+msgstr ""
+
+#: src/dillo.c:129
+msgid "  -R, --rcfile FILE  Use alternative rcfile."
+msgstr ""
+
+#: src/dillo.c:266
+#, c-format
+msgid ""
+"Error: the XID must be an unsigned decimal numerical value.\n"
+"The offending value was: %s\n"
+msgstr ""
+
+#: src/dillo.c:284
+msgid "Error in command line options.\n"
+msgstr ""
+
+#: src/dillo.c:291
+#, c-format
+msgid "Setting gtk charset to %s...\n"
+msgstr ""
+
+#: src/dillo.c:395
+msgid "Dillo: normal exit!\n"
+msgstr ""
+
+#: src/dillo.c:409
+#, c-format
+msgid "Dillo: error creating directory %s: %s\n"
+msgstr ""
+
+#: src/dillo.c:412
+#, c-format
+msgid "Dillo: error reading %s: %s\n"
+msgstr ""
+
+#: src/dillo.c:461
+#, c-format
+msgid "Option %s requires %d argument(s)\n"
+msgstr ""
+
+#: src/dillo.c:496
+msgid ""
+"\n"
+"Usage: dillo [OPTIONS] [URL|FILE]...\n"
+"Options:\n"
+msgstr ""
+
+#: src/dillo.c:503
+#, c-format
+msgid "  %s, %s   *Undocumented*\n"
+msgstr ""
+
+#: src/dillo.c:506
+msgid ""
+"  URL                    URL to browse.\n"
+"  FILE                   Local FILE to view.\n"
+msgstr ""
+
+#: src/html.c:182
+#, c-format
+msgid "HTML warning: line %d, "
+msgstr ""
+
+#: src/html.c:213
+#, c-format
+msgid "URL has %d illegal character%s [%d space%s]\n"
+msgstr ""
+
+#: src/html.c:216
+#, c-format
+msgid "URL has %d illegal character%s [%d in (00-1F or 7F)]\n"
+msgstr ""
+
+#: src/html.c:219
+#, c-format
+msgid "URL has %d illegal character%s [%d space%s and %d in (00-1F or 7F)]\n"
+msgstr ""
+
+#: src/html.c:1226
+msgid "numeric character reference out of range\n"
+msgstr ""
+
+#: src/html.c:1234
+msgid "numeric character reference without trailing ';'\n"
+msgstr ""
+
+#: src/html.c:1246
+#, c-format
+msgid "undefined character entity '%s'\n"
+msgstr ""
+
+#: src/html.c:1254
+msgid "character entity reference without trailing ';'\n"
+msgstr ""
+
+#: src/html.c:1262
+msgid "code positions 128-159 are not defined for ISO Latin-1\n"
+msgstr ""
+
+#: src/html.c:1270
+msgid "literal '&'\n"
+msgstr ""
+
+#: src/html.c:1379
+msgid "TAB character inside <PRE>\n"
+msgstr ""
+
+#: src/html.c:1615
+#, c-format
+msgid "  - forcing close of open tag: <%s>\n"
+msgstr ""
+
+#: src/html.c:1624
+#, c-format
+msgid "unexpected closing tag: </%1$s>. -- expected </%2$s>\n"
+msgstr ""
+
+#: src/html.c:1696
+#, c-format
+msgid "Garbage after length: %s\n"
+msgstr ""
+
+#: src/html.c:1715
+msgid "color is not in \"#RRGGBB\" format\n"
+msgstr ""
+
+#: src/html.c:1735
+#, c-format
+msgid "'%s' value is not of the form [A-Za-z][A-Za-z0-9:_.-]*\n"
+msgstr ""
+
+#: src/html.c:1839
+msgid "HTML element was already open\n"
+msgstr ""
+
+#: src/html.c:1866
+msgid "HEAD element must go before the BODY section\n"
+msgstr ""
+
+#: src/html.c:1876
+msgid "HEAD element was already open\n"
+msgstr ""
+
+#: src/html.c:1889
+msgid "HEAD section lacks the TITLE element\n"
+msgstr ""
+
+#: src/html.c:1917
+msgid "the TITLE element must be inside the HEAD section\n"
+msgstr ""
+
+#: src/html.c:1986
+msgid "BODY element was already open\n"
+msgstr ""
+
+#: src/html.c:1991
+msgid "unclosed HEAD element\n"
+msgstr ""
+
+#: src/html.c:2187
+msgid "<td> or <th> outside <table>\n"
+msgstr ""
+
+#: src/html.c:2191
+msgid "<td> or <th> outside <tr>\n"
+msgstr ""
+
+#: src/html.c:2309
+msgid "Invalid HTML syntax: <tr> outside <table>\n"
+msgstr ""
+
+#: src/html.c:2367
+msgid "<noframes> outside of <frameset>!!!\n"
+msgstr ""
+
+#: src/html.c:2375
+msgid "<noframe> is illegal tag !!! use <noframes>.\n"
+msgstr ""
+
+#: src/html.c:2562
+msgid "<frame> outside of <frameset>\n"
+msgstr ""
+
+#: src/html.c:2565
+msgid "<frame> inside of <noframes>\n"
+msgstr ""
+
+#: src/html.c:2568
+msgid "<frame> inside of <iframe>\n"
+msgstr ""
+
+#: src/html.c:2620
+msgid "incorrectly placed <frameset>\n"
+msgstr ""
+
+#: src/html.c:2636
+msgid "<frameset> inside of <noframes>\n"
+msgstr ""
+
+#: src/html.c:2641
+msgid "<frameset> inside of <iframe>\n"
+msgstr ""
+
+#: src/html.c:3123
+msgid "  Html_tag_open_img: server-side map (ISMAP)\n"
+msgstr ""
+
+#: src/html.c:3149
+msgid "nested <map>\n"
+msgstr ""
+
+#: src/html.c:3201
+msgid "usemap coords MUST be separated with ','\n"
+msgstr ""
+
+#: src/html.c:3245
+msgid "nohref"
+msgstr ""
+
+#: src/html.c:3284
+msgid "link depends on javascript()\n"
+msgstr ""
+
+#: src/html.c:3300
+#, c-format
+msgid "Registering ANCHOR: %s\n"
+msgstr ""
+
+#: src/html.c:3305
+msgid "Anchor names must be unique within the document\n"
+msgstr ""
+
+#: src/html.c:3512
+msgid "it is strongly recommended using <UL> instead of <MENU>\n"
+msgstr ""
+
+#: src/html.c:3574
+msgid "<li> outside <ul> or <ol>\n"
+msgstr ""
+
+#: src/html.c:3770
+msgid "nested forms\n"
+msgstr ""
+
+#: src/html.c:3817
+msgid "FORM lacks a Submit button\n"
+msgstr ""
+
+#: src/html.c:3819
+msgid " (added a submit button internally)\n"
+msgstr ""
+
+#: src/html.c:3923
+msgid "META elements must be inside the HEAD section\n"
+msgstr ""
+
+#: src/html.c:3975
+#, c-format
+msgid ""
+"The NON-STANDARD meta refresh tag. The HTML 4.01 SPEC (sec 7.4.4) recommends "
+"explicitly to avoid it. The author wanted you to go <%s>\n"
+msgstr ""
+
+#: src/html.c:4345
+msgid "Html_submit_form: Method unknown\n"
+msgstr ""
+
+#: src/html.c:4427
+msgid "Html_input_image: unable to create image submit.\n"
+msgstr ""
+
+#: src/html.c:4449
+msgid "input camp outside <form>\n"
+msgstr ""
+
+#: src/html.c:4529
+msgid "submit"
+msgstr ""
+
+#: src/html.c:4536 config/dillocfg.c:79
+msgid "Reset"
+msgstr ""
+
+#: src/html.c:4546
+msgid "Submit"
+msgstr ""
+
+#: src/html.c:4563
+msgid "An input of the type \"file\" wasn't rendered!\n"
+msgstr ""
+
+#: src/html.c:4737
+msgid "<textarea> outside <form>\n"
+msgstr ""
+
+#: src/html.c:4742
+msgid "nested <textarea>\n"
+msgstr ""
+
+#: src/html.c:4814
+msgid "<select> outside <form>\n"
+msgstr ""
+
+#: src/html.c:4818
+msgid "nested <select>\n"
+msgstr ""
+
+#: src/html.c:5042
+msgid "base URI is relative (it MUST be absolute)\n"
+msgstr ""
+
+#: src/html.c:5049
+msgid "the BASE element must appear in the HEAD section\n"
+msgstr ""
+
+#: src/html.c:5400
+#, c-format
+msgid "<%1$s> is not allowed to contain <%2$s>. -- closing <%3$s>\n"
+msgstr ""
+
+#: src/html.c:5515
+#, c-format
+msgid "<pre> is not allowed to contain <%s>\n"
+msgstr ""
+
+#: src/html.c:5537
+msgid "'id' and 'name' attribute of <a> tag differ\n"
+msgstr ""
+
+#: src/html.c:5764
+msgid "Html_write_raw : bufsize is negative!\n"
+msgstr ""
+
+#: src/html.c:5842
+msgid "attribute lacks closing quote\n"
+msgstr ""
+
+#: src/html.c:5850
+#, c-format
+msgid "<%s> element lacks its closing '>'\n"
+msgstr ""
+
+#: src/html.c:6144
+msgid "could not allocate character encoding converter"
+msgstr ""
+
+#: src/misc.c:455
+msgid "Untitled"
+msgstr ""
+
+#: src/interface.c:249
+msgid "Selection retrieval failed\n"
+msgstr ""
+
+#: src/interface.c:363
+msgid "Clear the URL box (middle-click to paste an URL)."
+msgstr ""
+
+#: src/interface.c:385
+msgid "Search the Web"
+msgstr ""
+
+#: src/interface.c:417 src/menu.c:231 src/menu.c:280
+msgid "Back"
+msgstr ""
+
+#: src/interface.c:421
+msgid "Go to previous page (right-click for menu)."
+msgstr ""
+
+#: src/interface.c:450 src/menu.c:233 src/menu.c:282
+msgid "Forward"
+msgstr ""
+
+#: src/interface.c:454
+msgid "Go to next page (right-click for menu)."
+msgstr ""
+
+#: src/interface.c:481
+msgid "Home"
+msgstr ""
+
+#: src/interface.c:485
+msgid "Go to the Home page"
+msgstr ""
+
+#: src/interface.c:499 config/dillocfg.c:80
+msgid "Reload"
+msgstr ""
+
+#: src/interface.c:500
+msgid "Reload this page"
+msgstr ""
+
+#: src/interface.c:512 config/dillocfg.c:81
+msgid "Save"
+msgstr ""
+
+#: src/interface.c:513
+msgid "Save this page"
+msgstr ""
+
+#: src/interface.c:520 src/menu.c:235 src/menu.c:284
+msgid "Stop"
+msgstr ""
+
+#: src/interface.c:521
+msgid "Stop the current transfer"
+msgstr ""
+
+#: src/interface.c:534
+msgid "Book"
+msgstr ""
+
+#: src/interface.c:538
+msgid "View bookmarks"
+msgstr ""
+
+#: src/interface.c:655 src/interface.c:826
+msgid "Hide Controls"
+msgstr ""
+
+#: src/interface.c:655 src/interface.c:826
+msgid "Show Controls"
+msgstr ""
+
+#: src/interface.c:929
+msgid "Show HTML bugs (right-click for menu)."
+msgstr ""
+
+#: src/interface.c:1231
+#, c-format
+msgid "Warning: search_url ends with '%%'\n"
+msgstr ""
+
+#: src/interface.c:1233
+#, c-format
+msgid "Warning: illegal specifier '%%%c' in search_url\n"
+msgstr ""
+
+#: src/interface.c:1298
+msgid "Dillo: Open File"
+msgstr ""
+
+#: src/interface.c:1374
+msgid "Clear"
+msgstr ""
+
+#: src/interface.c:1382 src/interface.c:1536 src/nav.c:453
+msgid "Cancel"
+msgstr ""
+
+#: src/interface.c:1513
+msgid "User Name:"
+msgstr ""
+
+#: src/interface.c:1520
+msgid "Password:"
+msgstr ""
+
+#: src/interface.c:1529 src/interface.c:1604 src/interface.c:2073
+#: src/nav.c:453
+msgid "OK"
+msgstr ""
+
+#: src/interface.c:1566
+msgid "Dillo: Enter Authentication"
+msgstr ""
+
+#: src/interface.c:1586
+msgid "Dillo: Question"
+msgstr ""
+
+#: src/interface.c:1602
+msgid "Dillo: Open URL"
+msgstr ""
+
+#: src/interface.c:1626
+#, c-format
+msgid "File saved (%d Bytes)"
+msgstr ""
+
+#: src/interface.c:1708
+#, c-format
+msgid "Error trying to save: %s\n"
+msgstr ""
+
+#: src/interface.c:1761
+msgid "Dillo: Save URL as File..."
+msgstr ""
+
+#: src/interface.c:1788
+msgid "Dillo: Save link as File..."
+msgstr ""
+
+#: src/interface.c:1843 src/interface.c:1857
+msgid "Dillo: Find text"
+msgstr ""
+
+#: src/interface.c:1844 src/interface.c:1850
+#, c-format
+msgid "Cannot find \"%s\"."
+msgstr ""
+
+#: src/interface.c:1858
+#, c-format
+msgid "No further occurence of \"%s\". Restarting from the beginning."
+msgstr ""
+
+#: src/interface.c:1866
+#, c-format
+msgid "(Find) \"%s\": restart from beginning"
+msgstr ""
+
+#: src/interface.c:1879
+#, c-format
+msgid "(Find) \"%s\""
+msgstr ""
+
+#: src/interface.c:1885
+msgid "Unexpected return from a_Dw_gtk_scrolled_window_search()\n"
+msgstr ""
+
+#: src/interface.c:1937
+msgid "press <Enter> to (repeat) search, <Esc> to close search"
+msgstr ""
+
+#: src/interface.c:1938 src/interface.c:2031
+msgid "Search"
+msgstr ""
+
+#: src/interface.c:1940 src/interface.c:1941 src/interface.c:1977
+msgid "Case sensitive"
+msgstr ""
+
+#: src/interface.c:1975
+msgid "Dillo: Find text in page"
+msgstr ""
+
+#: src/interface.c:1978
+msgid "Find"
+msgstr ""
+
+#: src/interface.c:2029
+msgid "Dillo"
+msgstr ""
+
+#: src/interface.c:2029
+msgid "Dillo: Search the Web"
+msgstr ""
+
+#: src/interface.c:2066
+#, c-format
+msgid "Dillo: Enter proxy password for '%s'"
+msgstr ""
+
+#: src/interface.c:2151
+msgid "Close"
+msgstr ""
+
+#: src/interface.c:2226
+msgid "close"
+msgstr ""
+
+#: src/nav.c:383
+#, c-format
+msgid "Unhandled switch type %d in a_Nav_jump_callback in src/nav.c\n"
+msgstr ""
+
+#: src/nav.c:452
+msgid "Repost form data?"
+msgstr ""
+
+#: src/menu.c:173
+msgid "_File"
+msgstr ""
+
+#: src/menu.c:174
+msgid "_New Window"
+msgstr ""
+
+#: src/menu.c:177
+msgid "New _Tab"
+msgstr ""
+
+#: src/menu.c:181
+msgid "_Open File..."
+msgstr ""
+
+#: src/menu.c:183
+msgid "Open _URL..."
+msgstr ""
+
+#: src/menu.c:189
+msgid "Close Window"
+msgstr ""
+
+#: src/menu.c:192 src/menu.c:359
+msgid "Close Tab"
+msgstr ""
+
+#: src/menu.c:196
+msgid "Exit Dillo"
+msgstr ""
+
+#: src/menu.c:200
+msgid "_View"
+msgstr ""
+
+#: src/menu.c:202
+msgid "Previous tab"
+msgstr ""
+
+#: src/menu.c:204
+msgid "Next tab"
+msgstr ""
+
+#: src/menu.c:208
+msgid "_Options..."
+msgstr ""
+
+#: src/menu.c:228
+msgid "PAGE OPTIONS"
+msgstr ""
+
+#: src/menu.c:237 src/menu.c:286
+msgid "_Reload"
+msgstr ""
+
+#: src/menu.c:241
+msgid "View page So_urce"
+msgstr ""
+
+#: src/menu.c:243
+msgid "View page Bugs"
+msgstr ""
+
+#: src/menu.c:244
+msgid "_Bookmark this Page"
+msgstr ""
+
+#: src/menu.c:247
+msgid "Duplicate this Page"
+msgstr ""
+
+#: src/menu.c:250
+msgid "Duplicate this tab"
+msgstr ""
+
+#: src/menu.c:254
+msgid "_Find Text"
+msgstr ""
+
+#: src/menu.c:257
+msgid "Jump to..."
+msgstr ""
+
+#: src/menu.c:258
+msgid "This Frame..."
+msgstr ""
+
+#: src/menu.c:259
+msgid "This Frameset..."
+msgstr ""
+
+#: src/menu.c:262
+msgid "Save Page As..."
+msgstr ""
+
+#: src/menu.c:277
+msgid "FRAME OPTIONS"
+msgstr ""
+
+#: src/menu.c:290
+msgid "View frame Source"
+msgstr ""
+
+#: src/menu.c:292
+msgid "Bookmark this Frame"
+msgstr ""
+
+#: src/menu.c:294
+msgid "Reload this Frame"
+msgstr ""
+
+#: src/menu.c:297
+msgid "Show only this Frame"
+msgstr ""
+
+#: src/menu.c:299
+msgid "Open Frame in new Window"
+msgstr ""
+
+#: src/menu.c:302
+msgid "Open Frame in new Tab"
+msgstr ""
+
+#: src/menu.c:306
+msgid "_Find Text in this Frame..."
+msgstr ""
+
+#: src/menu.c:309 src/menu.c:340
+msgid "Save Frame As..."
+msgstr ""
+
+#: src/menu.c:325
+msgid "FRAMESET OPTIONS"
+msgstr ""
+
+#: src/menu.c:327
+msgid "View Frameset Source"
+msgstr ""
+
+#: src/menu.c:329
+msgid "Bookmark this Frameset"
+msgstr ""
+
+#: src/menu.c:331
+msgid "Reload this Frameset"
+msgstr ""
+
+#: src/menu.c:334
+msgid "Show only this Frameset"
+msgstr ""
+
+#: src/menu.c:337
+msgid "_Find Text in this Frameset..."
+msgstr ""
+
+#: src/menu.c:357
+msgid "TAB OPTIONS"
+msgstr ""
+
+#: src/menu.c:361
+msgid "New Tab"
+msgstr ""
+
+#: src/menu.c:363
+msgid "Reload Tab"
+msgstr ""
+
+#: src/menu.c:460
+msgid "FOLLOWING PAGES"
+msgstr ""
+
+#: src/menu.c:463
+msgid "PREVIOUS PAGES"
+msgstr ""
+
+#: src/menu.c:531
+msgid "LINK OPTIONS"
+msgstr ""
+
+#: src/menu.c:533
+msgid "Open Link in New Window"
+msgstr ""
+
+#: src/menu.c:536
+msgid "Open Link in New Tab"
+msgstr ""
+
+#: src/menu.c:539
+msgid "Open Link"
+msgstr ""
+
+#: src/menu.c:542
+msgid "Bookmark this Link"
+msgstr ""
+
+#: src/menu.c:544
+msgid "Copy Link location"
+msgstr ""
+
+#: src/menu.c:549
+msgid "Save Link As..."
+msgstr ""
+
+#: src/menu.c:553
+msgid "Image Menu..."
+msgstr ""
+
+#: src/menu.c:571
+msgid "IMAGE OPTIONS"
+msgstr ""
+
+#: src/menu.c:573
+msgid "Isolate Image"
+msgstr ""
+
+#: src/menu.c:575
+msgid "Open Image in New Window"
+msgstr ""
+
+#: src/menu.c:578
+msgid "Open Image in New Tab"
+msgstr ""
+
+#: src/menu.c:581
+msgid "Open Image"
+msgstr ""
+
+#: src/menu.c:584
+msgid "Bookmark this Image"
+msgstr ""
+
+#: src/menu.c:586
+msgid "Copy Image location"
+msgstr ""
+
+#: src/menu.c:591
+msgid "Save Image As..."
+msgstr ""
+
+#: src/menu.c:605
+msgid "BUG METER OPTIONS"
+msgstr ""
+
+#: src/menu.c:607
+msgid "Validate URL with W3C"
+msgstr ""
+
+#: src/menu.c:609
+msgid "Validate URL with WDG"
+msgstr ""
+
+#: src/menu.c:612
+msgid "About Bug Meter..."
+msgstr ""
+
+#: src/prefs.c:431
+msgid "Error: Can't open specified config file. default file is used.\n"
+msgstr ""
+
+#: src/i18n.c:359
+msgid "charset detect may mistake...\n"
+msgstr ""
+
+#: src/i18n.c:447
+msgid "<meta> outside of <head>!\n"
+msgstr ""
+
+#: src/i18n.c:493
+msgid "all ascii code\n"
+msgstr ""
+
+#: src/i18n.c:526
+msgid "unable to fully convert between character encodings\n"
+msgstr ""
+
+#: src/i18n.c:565
+msgid "no support enc\n"
+msgstr ""
+
+#: src/tab.c:293 src/tab.c:425 dpi/bookmarks.c:1653
+msgid "(Untitled)"
+msgstr ""
+
+#: src/IO/https.c:168
+msgid "--Error detected\n"
+msgstr ""
+
+#: src/IO/https.c:173 src/IO/https.c:204 src/IO/http.c:294
+msgid "ERROR: unable to connect to remote host"
+msgstr ""
+
+#: src/IO/https.c:179 src/IO/http.c:309
+msgid "--Connection established\n"
+msgstr ""
+
+#: src/IO/https.c:280 src/IO/http.c:417
+#, c-format
+msgid "Sending query to %s..."
+msgstr ""
+
+#: src/IO/https.c:333 src/IO/http.c:486
+#, c-format
+msgid "DNS solving %s"
+msgstr ""
+
+#: src/IO/https.c:363
+msgid " HTTPS: new abort handler! #2\n"
+msgstr ""
+
+#: src/IO/https.c:365 src/IO/https.c:387 src/IO/http.c:301 src/IO/http.c:520
+#: src/IO/http.c:551
+#, c-format
+msgid "ERROR: %s"
+msgstr ""
+
+#: src/IO/https.c:386
+msgid " HTTP: new abort handler! #1\n"
+msgstr ""
+
+#: src/IO/https.c:400 src/IO/http.c:564
+#, c-format
+msgid "ERROR: Dns can't solve %s"
+msgstr ""
+
+#: src/IO/https.c:421 src/IO/http.c:591
+msgid "Query sent, waiting for reply..."
+msgstr ""
+
+#: src/IO/http.c:190
+#, c-format
+msgid "Getting %1$s, referer %2$s\n"
+msgstr ""
+
+#: src/IO/http.c:259
+#, c-format
+msgid ""
+"Query:\n"
+"%s"
+msgstr ""
+
+#: src/IO/http.c:286
+msgid "--Connection broken\n"
+msgstr ""
+
+#: src/IO/http.c:342
+#, c-format
+msgid "Http_connect_socket ERROR: %s\n"
+msgstr ""
+
+#: src/IO/http.c:363 src/IO/http.c:377
+#, c-format
+msgid "Connecting to %s\n"
+msgstr ""
+
+#: src/IO/http.c:396
+msgid "Contacting host..."
+msgstr ""
+
+#: src/IO/http.c:529
+msgid "Http: OpAbort [1B]\n"
+msgstr ""
+
+#: src/IO/dpi.c:188
+msgid "ERROR: [Dpi_get_token] Can't find token start\n"
+msgstr ""
+
+#: src/IO/dpi.c:221
+msgid "ERROR: [Dpi_get_token] *** NULL code here ***\n"
+msgstr ""
+
+#: src/IO/dpi.c:312
+msgid "Dpi: [Dpi_process_io] IOClose\n"
+msgstr ""
+
+#: src/IO/dpi.c:338
+#, c-format
+msgid "Dpi_start_dpid (child): %s\n"
+msgstr ""
+
+#: src/IO/dpi.c:348 src/IO/dpi.c:363
+#, c-format
+msgid "Dpi_start_dpid: %s\n"
+msgstr ""
+
+#: src/IO/dpi.c:359
+#, c-format
+msgid "Dpi_start_dpid: n = %d\n"
+msgstr ""
+
+#: src/IO/dpi.c:386
+#, c-format
+msgid "Dpi_check_uds: %1$s %2$s\n"
+msgstr ""
+
+#: src/IO/dpi.c:673
+msgid "dpi.c: ERROR, can't start dpi daemon\n"
+msgstr ""
+
+#: src/IO/dpi.c:686
+msgid "a_Dpi_ccc: OpAbort[2B], Not implemented\n"
+msgstr ""
+
+#: src/IO/dpi.c:790 src/IO/dpi.c:794
+#, c-format
+msgid "a_Dpi_bye_dpid: %s\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:106
+#, c-format
+msgid "The dpi_socket_dir file does not exist\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:110 dpid/dpi_socket_dir.c:114
+#, c-format
+msgid "debug_msg - init_sockdir: The socket directory "
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:111
+#, c-format
+msgid "%s exists and is OK\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:115
+#, c-format
+msgid "%s does not exist or is not a directory\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:124
+#, c-format
+msgid " - Failed to create dpi socket directory\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:127
+#, c-format
+msgid " - failed to save %s\n"
+msgstr ""
+
+#: dpid/main.c:59 dpid/main.c:66 dpid/main.c:77 dpid/main.c:85 dpid/main.c:99
+#: dpid/main.c:104 dpid/main.c:109
+#, c-format
+msgid "ERROR in child proc for %s\n"
+msgstr ""
+
+#: dpid/main.c:166
+#, c-format
+msgid ": dpid failed to parse cmd in %s\n"
+msgstr ""
+
+#: dpid/main.c:265
+#, c-format
+msgid "Failed to create socket directory\n"
+msgstr ""
+
+#: dpid/main.c:275
+#, c-format
+msgid "dpid refuses to start, possibly because:\n"
+msgstr ""
+
+#: dpid/main.c:276
+#, c-format
+msgid "\t1) An instance of dpid is already running.\n"
+msgstr ""
+
+#: dpid/main.c:277
+#, c-format
+msgid "\t2) A previous dpid didn't clean up on exit.\n"
+msgstr ""
+
+#: dpid/main.c:280
+msgid "init_srs_sockets failed\n"
+msgstr ""
+
+#: dpid/main.c:294
+#, c-format
+msgid "dpid started\n"
+msgstr ""
+
+#: dpid/main.c:340
+#, c-format
+msgid "accept on srs socket failed\n"
+msgstr ""
+
+#: dpid/main.c:341
+#, c-format
+msgid "service pending connections, and continue\n"
+msgstr ""
+
+#: dpi/bookmarks.c:96
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td>&nbsp;Bookmarks::</td>\n"
+"    <td width='100%' align='right'>\n"
+"     [<a href='dpi:/bm/modify'>modify</a>]\n"
+"    </td></tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:115
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td>&nbsp;Bookmarks :: modify</td></tr>\n"
+"  </table></td></tr>                            \n"
+"</table>                                        \n"
+"\n"
+"<form>\n"
+"<table width='100%' border='1' cellpadding='0'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='teal'>\n"
+"   <tr>\n"
+"    <td><b>Select&nbsp;an&nbsp;operation&nbsp;</b></td>\n"
+"    <td><select name='operation'>\n"
+"     <option value='none' selected>--\n"
+"     <option value='delete'>Delete\n"
+"     <option value='move'>Move\n"
+"     <option value='modify'>Modify\n"
+"     <option value='add_sec'>Add Section\n"
+"     <option value='add_url'>Add URL\n"
+"     </select></td>\n"
+"    <td><b>,&nbsp;mark&nbsp;its&nbsp;operands,&nbsp;and&nbsp;</b></td>\n"
+"    <td><input type='submit' name='submit' value='submit.'></td>\n"
+"    <td width='100%'></td>\n"
+"    </tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:151
+msgid ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='2' cellpadding='4' cellspacing='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:160
+msgid ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:243
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: add section\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+" <input type='hidden' name='operation' value='add_section'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><b>New&nbsp;section:</b></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+"\n"
+msgstr ""
+
+#: dpi/bookmarks.c:283
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: update\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='modify2'>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:310
+#, c-format
+msgid ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td>%s</td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:323
+#, c-format
+msgid ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='s%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:336
+#, c-format
+msgid ""
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:346
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: add url\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='add_url2'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><b>Add&nbsp;url:</b></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td><input type='text' name='url' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+msgstr ""
+
+#: dpi/bookmarks.c:691
+msgid "Unclassified"
+msgstr ""
+
+#: dpi/bookmarks.c:724
+#, c-format
+msgid "echo \":s0: Unclassified\" > %s"
+msgstr ""
+
+#: dpi/bookmarks.c:786
+#, c-format
+msgid ""
+"Syntax error in bookmarks file:\n"
+" %s"
+msgstr ""
+
+#: dpi/bookmarks.c:898
+msgid "Added bookmark!"
+msgstr ""
+
+#: dpi/bookmarks.c:1087
+msgid "Update&nbsp;sections:"
+msgstr ""
+
+#: dpi/bookmarks.c:1107
+msgid "Update&nbsp;titles:"
+msgstr ""
+
+#: dpi/bookmarks.c:1404
+msgid "Delete: you must mark what to delete!"
+msgstr ""
+
+#: dpi/bookmarks.c:1410
+msgid "Move: you must mark a target section!"
+msgstr ""
+
+#: dpi/bookmarks.c:1412
+msgid "Move: can not move a section (yet)."
+msgstr ""
+
+#: dpi/bookmarks.c:1414
+msgid "Move: you must mark some urls, and a target section!"
+msgstr ""
+
+#: dpi/bookmarks.c:1419
+msgid "Modify: you must mark what to update!"
+msgstr ""
+
+#: dpi/bookmarks.c:1436
+msgid "Add url: only one target section is allowed!"
+msgstr ""
+
+#: dpi/bookmarks.c:1443
+msgid "No operation, just do nothing!"
+msgstr ""
+
+#: dpi/bookmarks.c:1446
+msgid "Sorry, not implemented yet."
+msgstr ""
+
+#: dpi/bookmarks.c:1614
+msgid "Haven't got a full tag!\n"
+msgstr ""
+
+#: dpi/bookmarks.c:1690
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<HTML><body> Error on the bookmarks server...</body></html>"
+msgstr ""
+
+#: config/dillocfg.c:82
+msgid "Quit"
+msgstr ""
+
+#: config/dillocfg.c:84 config/dillocfg.c:90
+msgid "Dillo Preferences"
+msgstr ""
+
+#: config/dillocfg.c:113
+msgid "Interface"
+msgstr ""
+
+#: config/dillocfg.c:114
+msgid "  Font  "
+msgstr ""
+
+#: config/dillocfg.c:115
+msgid "  Color "
+msgstr ""
+
+#: config/dillocfg.c:116
+msgid " Network "
+msgstr ""
+
+#: config/dillocfg.c:118
+msgid "   Tab   "
+msgstr ""
+
+#: config/dillocfg.c:121
+msgid "  Other  "
+msgstr ""
+
+#: config/dillocfg.c:329
+msgid "Add"
+msgstr ""
+
+#: config/dillocfg.c:330
+msgid "Delete"
+msgstr ""
+
+#: config/dillocfg.c:336
+msgid "Address"
+msgstr ""
+
+#: config/dillocfg.c:337
+msgid "Rule"
+msgstr ""
+
+#: config/dillocfg.c:363 config/dillocfg.c:369
+#, c-format
+msgid "Read failed <%s>\n"
+msgstr ""
+
+#: config/dillocfg.c:450 config/dillocfg.c:458
+#, c-format
+msgid "can't write <%s>\n"
+msgstr ""
+
+#: config/dillocfg_token.c:60
+msgid "Window Size"
+msgstr ""
+
+#: config/dillocfg_token.c:68
+msgid "HTTP Proxy"
+msgstr ""
+
+#: config/dillocfg_token.c:76
+msgid "HTTP Proxy User"
+msgstr ""
+
+#: config/dillocfg_token.c:84
+msgid "NO Proxy"
+msgstr ""
+
+#: config/dillocfg_token.c:92
+msgid "User-Agent"
+msgstr ""
+
+#: config/dillocfg_token.c:100
+msgid "Send referer header"
+msgstr ""
+
+#: config/dillocfg_token.c:108
+msgid "Link color"
+msgstr ""
+
+#: config/dillocfg_token.c:116
+msgid "Visited color"
+msgstr ""
+
+#: config/dillocfg_token.c:124
+msgid "BackGround color"
+msgstr ""
+
+#: config/dillocfg_token.c:132
+msgid "Allow white bg"
+msgstr ""
+
+#: config/dillocfg_token.c:140
+msgid "Force my colors"
+msgstr ""
+
+#: config/dillocfg_token.c:148
+msgid "Contrast visited color"
+msgstr ""
+
+#: config/dillocfg_token.c:156
+msgid "Text color"
+msgstr ""
+
+#: config/dillocfg_token.c:164
+msgid "Use oblique"
+msgstr ""
+
+#: config/dillocfg_token.c:172
+msgid "Start Page"
+msgstr ""
+
+#: config/dillocfg_token.c:180
+msgid "HOMEPAGE"
+msgstr ""
+
+#: config/dillocfg_token.c:188
+msgid "Search-engine's URL"
+msgstr ""
+
+#: config/dillocfg_token.c:196
+msgid "Search-engine's charset"
+msgstr ""
+
+#: config/dillocfg_token.c:204
+msgid "Show Tooltip"
+msgstr ""
+
+#: config/dillocfg_token.c:212
+msgid "Panel Size"
+msgstr ""
+
+#: config/dillocfg_token.c:220
+msgid "Small icons"
+msgstr ""
+
+#: config/dillocfg_token.c:228
+msgid "Limit text width"
+msgstr ""
+
+#: config/dillocfg_token.c:236
+msgid "Limit font decoration"
+msgstr ""
+
+#: config/dillocfg_token.c:244
+msgid "Font factor"
+msgstr ""
+
+#: config/dillocfg_token.c:252
+msgid "Font Sizes"
+msgstr ""
+
+#: config/dillocfg_token.c:260
+msgid "W3C+heuristics"
+msgstr ""
+
+#: config/dillocfg_token.c:268
+msgid "Use dicache"
+msgstr ""
+
+#: config/dillocfg_token.c:276
+msgid "Show Back"
+msgstr ""
+
+#: config/dillocfg_token.c:284
+msgid "Show Forw"
+msgstr ""
+
+#: config/dillocfg_token.c:292
+msgid "Show Home"
+msgstr ""
+
+#: config/dillocfg_token.c:300
+msgid "Show Reload"
+msgstr ""
+
+#: config/dillocfg_token.c:308
+msgid "Show Save"
+msgstr ""
+
+#: config/dillocfg_token.c:316
+msgid "Show Stop"
+msgstr ""
+
+#: config/dillocfg_token.c:324
+msgid "Show Bookmarks"
+msgstr ""
+
+#: config/dillocfg_token.c:332
+msgid "Show Menubar"
+msgstr ""
+
+#: config/dillocfg_token.c:340
+msgid "Show ClearURL"
+msgstr ""
+
+#: config/dillocfg_token.c:348
+msgid "Show URL box"
+msgstr ""
+
+#: config/dillocfg_token.c:356
+msgid "Show Web Search"
+msgstr ""
+
+#: config/dillocfg_token.c:364
+msgid "Show Progress box"
+msgstr ""
+
+#: config/dillocfg_token.c:372
+msgid "Show Popup navigation"
+msgstr ""
+
+#: config/dillocfg_token.c:380
+msgid "Fullwindow start"
+msgstr ""
+
+#: config/dillocfg_token.c:388
+msgid "Transient dialogs"
+msgstr ""
+
+#: config/dillocfg_token.c:396
+msgid "Popup dialogs"
+msgstr ""
+
+#: config/dillocfg_token.c:404
+msgid "vw_aafontname"
+msgstr ""
+
+#: config/dillocfg_token.c:412
+msgid "fw_aafontname"
+msgstr ""
+
+#: config/dillocfg_token.c:420
+msgid "vw_fontname"
+msgstr ""
+
+#: config/dillocfg_token.c:428
+msgid "fw_fontname"
+msgstr ""
+
+#: config/dillocfg_token.c:436
+msgid "Generate submit"
+msgstr ""
+
+#: config/dillocfg_token.c:444
+msgid "Enterpress forces submit"
+msgstr ""
+
+#: config/dillocfg_token.c:452
+msgid "Show debugging messsages"
+msgstr ""
+
+#: config/dillocfg_token.c:460
+msgid "Show Extra Warnings"
+msgstr ""
+
+#: config/dillocfg_token.c:468
+msgid "Focus location on new"
+msgstr ""
+
+#: config/dillocfg_token.c:476 config/dillocfg_token.c:484
+msgid "Accept Language"
+msgstr ""
+
+#: config/dillocfg_token.c:493
+msgid "Tab load in background"
+msgstr ""
+
+#: config/dillocfg_token.c:501
+msgid "Tab close middle click"
+msgstr ""
+
+#: config/dillocfg_token.c:509
+msgid "Tab instead of window"
+msgstr ""
+
+#: config/dillocfg_token.c:517
+msgid "Tab bar show fullscreen"
+msgstr ""
+
+#: config/dillocfg_token.c:525
+msgid "Tab bar show single tab"
+msgstr ""
+
+#: config/dillocfg_token.c:533
+msgid "Tab bar scroller"
+msgstr ""
+
+#: config/dillocfg_token.c:541
+msgid "Tab bar homogeneous"
+msgstr ""
+
+#: config/dillocfg_token.c:549
+msgid "Tab title compress"
+msgstr ""
+
+#: config/dillocfg_token.c:557
+msgid "Compress vowels"
+msgstr ""
+
+#: config/dillocfg_token.c:565
+msgid "Compress_common_prefixes"
+msgstr ""
+
+#: config/dillocfg_token.c:574
+msgid "Default"
+msgstr ""
diff -pruN dillo-0.8.6/po/en@boldquot.header dillo-0.8.6-i18n-misc-20060709/po/en@boldquot.header
--- dillo-0.8.6/po/en@boldquot.header	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/en@boldquot.header	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,25 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
diff -pruN dillo-0.8.6/po/en@quot.header dillo-0.8.6-i18n-misc-20060709/po/en@quot.header
--- dillo-0.8.6/po/en@quot.header	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/en@quot.header	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,22 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
diff -pruN dillo-0.8.6/po/insert-header.sin dillo-0.8.6-i18n-misc-20060709/po/insert-header.sin
--- dillo-0.8.6/po/insert-header.sin	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/insert-header.sin	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,23 @@
+# Sed script that inserts the file called HEADER before the header entry.
+#
+# At each occurrence of a line starting with "msgid ", we execute the following
+# commands. At the first occurrence, insert the file. At the following
+# occurrences, do nothing. The distinction between the first and the following
+# occurrences is achieved by looking at the hold space.
+/^msgid /{
+x
+# Test if the hold space is empty.
+s/m/m/
+ta
+# Yes it was empty. First occurrence. Read the file.
+r HEADER
+# Output the file's contents by reading the next line. But don't lose the
+# current line while doing this.
+g
+N
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
�Х��ʥ꡼���ե�����dillo-0.8.6/po/ja.gmo��dillo-0.8.6-i18n-misc-20060709/po/ja.gmo�ϰ㤤�ޤ�
diff -pruN dillo-0.8.6/po/ja.po dillo-0.8.6-i18n-misc-20060709/po/ja.po
--- dillo-0.8.6/po/ja.po	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/ja.po	2006-07-09 00:49:43.000000000 +0900
@@ -0,0 +1,2207 @@
+# DILLO 日本語メッセージ
+# Copyright (C) 2003-2006
+# This file is distributed under the same license as the dillo package.
+# Kiyo <kiyo@teki.jpn.ph>, 2003-2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: dillo 0.8.6-i18n-misc\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-07-09 00:49+0900\n"
+"PO-Revision-Date: 2006-03-26 22:06+0900\n"
+"Last-Translator: Kiyo <kiyo@teki.jpn.ph>\n"
+"Language-Team: Japanese <kiyo@teki.jpn.ph>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msg.h:27
+msgid "HTTP warning: "
+msgstr "HTTP 警告: "
+
+#: src/auth.c:87
+msgid "Browser Url has changed\n"
+msgstr "ブラウザのUrlが変更されていました\n"
+
+#: src/cache.c:253
+msgid "WARNING: Cache_entry_add, leaking an entry.\n"
+msgstr "警告: Cache_entry_addでエントリーが漏れています。\n"
+
+#: src/cache.c:316
+msgid "## Aborting CCCQuery\n"
+msgstr "## CCCQueryをアボートしています\n"
+
+#: src/cache.c:319
+msgid "## Aborting CCCAnswer\n"
+msgstr "## CCCAnswerをアボートしています\n"
+
+#: src/cache.c:322
+msgid "## Aborting raw2\n"
+msgstr "## raw2をアボートしています\n"
+
+#: src/cache.c:365
+msgid "## No more clients for this entry\n"
+msgstr "## このエントリーにはクライアントがありません\n"
+
+#: src/cache.c:369
+msgid "Cache_prepare_reload: ERROR, entry still has clients\n"
+msgstr ""
+"Cache_prepare_reload: エラー エントリーがまだクライアントを持っています\n"
+
+#: src/cache.c:398
+#, c-format
+msgid "Reloading >%s< because it shouldn't be cached\n"
+msgstr "キャッシュされるべきではないので>%s<を再読み込みしています\n"
+
+#: src/cache.c:418
+msgid "ERROR: unsupported protocol"
+msgstr "エラー: サポートしていないプロトコルです"
+
+#: src/cache.c:488
+#, c-format
+msgid "Redirect loop for URL: >%s<\n"
+msgstr "URL: >%s<のリダイレクトループ\n"
+
+#: src/cache.c:590
+#, c-format
+msgid "Bad clocks, ignore expire on >%s<\n"
+msgstr "不正な時間です。>%s<の有効期限を無視します\n"
+
+#: src/cache.c:594
+#, c-format
+msgid "Forcing min expire %d on >%s< instead %ld\n"
+msgstr "最小有効期限%dを>%s<で%ldの代わりに強制します\n"
+
+#: src/cache.c:678
+msgid "'Cache-Control: max-age=' without 'Date: ' header"
+msgstr "'Date: 'ヘッダの無い'Cache-Control: max-age='"
+
+#: src/cache.c:722
+msgid "Server didn't send Content-Type in header.\n"
+msgstr "サーバーがヘッダでContent-Typeを送信しませんでした。\n"
+
+#: src/cache.c:743
+#, c-format
+msgid "Forcing default expire to query url >%s<\n"
+msgstr "要求されたurl>%s<にデフォルトの有効期限を強制します\n"
+
+#: src/cache.c:831
+#, c-format
+msgid "Cache_decode_data: got all data -- decodinging %s\n"
+msgstr ""
+"Cache_decode_data: 全てのデータを取得しました -- %sをデコードしています\n"
+
+#: src/cache.c:840
+msgid "Cache_decode_data: not gzip data!\n"
+msgstr "Cache_decode_data: gzipデータではありません!\n"
+
+#: src/cache.c:846
+msgid "Cache_decode_data: invalid gzip data!\n"
+msgstr "Cache_decode_data: 不正なgzipデータです!\n"
+
+#: src/cache.c:898
+msgid "not x-gzip\n"
+msgstr "x-gzipではありません\n"
+
+#: src/cache.c:931
+#, c-format
+msgid ""
+"Content-Length does NOT match message body,\n"
+" at: %s\n"
+msgstr ""
+"Content-Lengthがmessage bodyと適合しませんでした。\n"
+": %s\n"
+
+#: src/cache.c:950
+msgid "Cache_process_io Op = IOAbort; not implemented yet\n"
+msgstr "Cache_process_io Op = IOAbort; まだ実装されていません\n"
+
+#: src/cache.c:1004
+#, c-format
+msgid "ERROR: redirect loop for: %s"
+msgstr "エラー: %sのリダイレクトループ"
+
+#: src/cache.c:1015
+#, c-format
+msgid ""
+">>>Redirect from: %s\n"
+" to %s\n"
+msgstr ""
+">>>%sから\n"
+"%sへリダイレクトします\n"
+
+#: src/cache.c:1035
+msgid ">>>Image redirection without entity-content<<<\n"
+msgstr ">>>entity-contentのない画像のリダイレクト<<<\n"
+
+#: src/cache.c:1037
+msgid ">>>Image redirection with entity-content<<<\n"
+msgstr ">>>entity-contentのある画像のリダイレクト<<<\n"
+
+#: src/cache.c:1103
+msgid "FATAL!:*** >>>> Cache_process_queue Caught busy!!!\n"
+msgstr "致命的!:*** >>>> Cache_process_queueはビジーを検出しました!!!\n"
+
+#: src/cache.c:1111
+#, c-format
+msgid "Content-Type '%s' doesn't match the real data.\n"
+msgstr "Content-Type '%s'は実際のデータとマッチしていません。\n"
+
+#: src/cache.c:1140
+#, c-format
+msgid "HTTP warning: Content-Type '%s' doesn't match the real data."
+msgstr "HTTP警告: Content-Type '%s'は実際のデータとマッチしていません。"
+
+#: src/cache.c:1177
+#, c-format
+msgid "Unhandled MIME type: <%s>\n"
+msgstr "扱えないMIMEタイプ: <%s>\n"
+
+#: src/cache.c:1202
+msgid "Client Callback is NULL"
+msgstr "クライアントのコールバックがNULLです"
+
+#: src/cache.c:1303
+msgid "WARNING: Cache_stop_client, inexistent client\n"
+msgstr "警告: Cache_stop_client クライアントが存在しません\n"
+
+#: src/cache.c:1445 src/capi.c:428 src/capi.c:481 src/capi.c:536
+#: src/capi.c:570 src/IO/dpi.c:720 src/IO/dpi.c:760
+msgid " Not implemented\n"
+msgstr "すみません、まだ実装されていません。\n"
+
+#: src/capi.c:229
+msgid "Capi_verify_dpi_url_request: Permission Denied!\n"
+msgstr "Capi_verify_dpi_url_request: 許可がありません!\n"
+
+#: src/capi.c:324
+#, c-format
+msgid "  reload=%d URL_E2EReload=%d\n"
+msgstr "  reload=%d URL_E2EReload=%d\n"
+
+#: src/capi.c:389
+msgid " ERROR: [a_Capi_dpi_send_cmd] No open connection found\n"
+msgstr " エラー: [a_Capi_dpi_send_cmd] 開いている接続が見つかりませんでした\n"
+
+#: src/capi.c:457
+msgid "ERROR: can't start dpid daemon!"
+msgstr "エラー: dpidデーモンを開始できません"
+
+#: src/capi.c:492
+msgid "  ** Capi 2F catched an invalid 'web' structure\n"
+msgstr "  ** Capi 2F 無効な'web'構造体をキャッチしました\n"
+
+#: src/capi.c:552
+msgid " Error with pipe\n"
+msgstr "pipeでエラーが発生しました\n"
+
+#: src/commands.c:166
+msgid "View Source"
+msgstr "ソースの表示"
+
+#: src/commands.c:183
+msgid "Detected HTML errors"
+msgstr "検出されたHTMLのエラー"
+
+#: src/commands.c:265
+msgid "Stopped"
+msgstr "停止しました。"
+
+#: src/dillo.c:109
+msgid ""
+"  -x, --xid XID          Open first Dillo window in an existing\n"
+"                         GtkSocket which window ID is XID (decimal)."
+msgstr ""
+"  -x, --xid XID         window IDがXID(十進数)である既存のGtkSocketで\n"
+"                        最初のDilloのwindowを開きます。"
+
+#: src/dillo.c:112
+msgid "  -v, --version          Display version info and exit."
+msgstr "  -v, --version         バージョン情報を表示して終了します。"
+
+#: src/dillo.c:114
+msgid "  -h, --help             Display this help text and exit."
+msgstr "  -h, --help            このヘルプテキストを表示して終了します。"
+
+#: src/dillo.c:116
+msgid ""
+"  -f, --fullwindow       Start in full window mode: hide address bar,\n"
+"                         navigation buttons, menu, and status bar."
+msgstr ""
+"  -f, --fullwindow       全画面モードで開始: アドレスバー、\n"
+"                         ナビゲーションボタン、メニュー、ステータスバーが非表"
+"示になります。"
+
+#: src/dillo.c:119
+msgid "  -l, --local            Don't follow links for this URL(s)."
+msgstr "  -l, --local           このURLでリンクをたどりません"
+
+#: src/dillo.c:121
+msgid ""
+"  -g, -geometry GEO      Set initial window position where GEO is\n"
+"                         <width>x<height>{+-}<x>{+-}<y>"
+msgstr ""
+"  -g, -geometry GEO      初期ウインドウの位置をGEOに設定します。\n"
+"                         <width>x<height>{+-}<x>{+-}<y>"
+
+#: src/dillo.c:125
+msgid ""
+"  -D, --debug-rendering  Draw additionaly several lines in a web page,\n"
+"                         representing its structure. For debugging. "
+msgstr ""
+"  -D, --debug-rendering  WEBページの中にその構造を表すように、\n"
+"                         いくつかの線を追加で描画します。 デバッグ用です。 "
+
+#: src/dillo.c:129
+msgid "  -R, --rcfile FILE  Use alternative rcfile."
+msgstr "  -R, --rcfile FILE  代わりの設定ファイルを使用します。"
+
+#: src/dillo.c:266
+#, c-format
+msgid ""
+"Error: the XID must be an unsigned decimal numerical value.\n"
+"The offending value was: %s\n"
+msgstr ""
+"エラー: XIDは符号無しの十進数である必要があります。\n"
+"問題となった値: %s\n"
+
+#: src/dillo.c:284
+msgid "Error in command line options.\n"
+msgstr "コマンドラインオプションでエラーが起きました。\n"
+
+#: src/dillo.c:291
+#, c-format
+msgid "Setting gtk charset to %s...\n"
+msgstr "gtk charsetを%sに設定しています...\n"
+
+#: src/dillo.c:395
+msgid "Dillo: normal exit!\n"
+msgstr "Dillo: 正常終了\n"
+
+#: src/dillo.c:409
+#, c-format
+msgid "Dillo: error creating directory %s: %s\n"
+msgstr "Dillo: ディレクトリ%sの作成でエラーしました: %s\n"
+
+#: src/dillo.c:412
+#, c-format
+msgid "Dillo: error reading %s: %s\n"
+msgstr "Dillo: %sの読み込みでエラーしました: %s\n"
+
+#: src/dillo.c:461
+#, c-format
+msgid "Option %s requires %d argument(s)\n"
+msgstr "オプション %sは%d個の引数を必要とします\n"
+
+#: src/dillo.c:496
+msgid ""
+"\n"
+"Usage: dillo [OPTIONS] [URL|FILE]...\n"
+"Options:\n"
+msgstr ""
+"\n"
+"使い方: dillo [オプション] [URL|ファイル]...\n"
+"オプション:\n"
+
+#: src/dillo.c:503
+#, c-format
+msgid "  %s, %s   *Undocumented*\n"
+msgstr "  %s, %s   (説明なし)\n"
+
+#: src/dillo.c:506
+msgid ""
+"  URL                    URL to browse.\n"
+"  FILE                   Local FILE to view.\n"
+msgstr ""
+"  URL                   ブラウズするURL\n"
+"  FILE                  表示するローカルファイル\n"
+
+#: src/html.c:182
+#, c-format
+msgid "HTML warning: line %d, "
+msgstr "HTML 警告: %d行目, "
+
+#: src/html.c:213
+#, c-format
+msgid "URL has %d illegal character%s [%d space%s]\n"
+msgstr "URLに%d個の不正な文字%s [%d個のスペース%s]が含まれています\n"
+
+#: src/html.c:216
+#, c-format
+msgid "URL has %d illegal character%s [%d in (00-1F or 7F)]\n"
+msgstr "URLに%d個の不正な文字%s[%d個の(00-1Fまたは7F)]が含まれています\n"
+
+#: src/html.c:219
+#, c-format
+msgid "URL has %d illegal character%s [%d space%s and %d in (00-1F or 7F)]\n"
+msgstr ""
+"URLに%d個の不正な文字%s [%d個のスペース%sと%d個の(00-1F, 7F)]が含まれていま"
+"す\n"
+
+#: src/html.c:1226
+msgid "numeric character reference out of range\n"
+msgstr "数値文字参照が範囲外です\n"
+
+#: src/html.c:1234
+msgid "numeric character reference without trailing ';'\n"
+msgstr "後に';'が無い数値文字参照です\n"
+
+#: src/html.c:1246
+#, c-format
+msgid "undefined character entity '%s'\n"
+msgstr "未定義の文字参照 '%s'\n"
+
+#: src/html.c:1254
+msgid "character entity reference without trailing ';'\n"
+msgstr "後に';'が無い文字実体参照です\n"
+
+#: src/html.c:1262
+msgid "code positions 128-159 are not defined for ISO Latin-1\n"
+msgstr "コードポイント 128-159はISO Latin-1で定義されていません\n"
+
+#: src/html.c:1270
+msgid "literal '&'\n"
+msgstr "リテラル '&'\n"
+
+#: src/html.c:1379
+msgid "TAB character inside <PRE>\n"
+msgstr "TAB文字が<PRE>の中にあります\n"
+
+#: src/html.c:1615
+#, c-format
+msgid "  - forcing close of open tag: <%s>\n"
+msgstr "  - 開始タグに終了タグを強制します: <%s>\n"
+
+#: src/html.c:1624
+#, c-format
+msgid "unexpected closing tag: </%1$s>. -- expected </%2$s>\n"
+msgstr "予期しない終了タグ: </%1$s> -- 予期されていたのは</%2$s>です\n"
+
+#: src/html.c:1696
+#, c-format
+msgid "Garbage after length: %s\n"
+msgstr "長さ%s以降に不用なデータ\n"
+
+#: src/html.c:1715
+msgid "color is not in \"#RRGGBB\" format\n"
+msgstr "colorが\"#RRGGBB\"の型式ではありません\n"
+
+#: src/html.c:1735
+#, c-format
+msgid "'%s' value is not of the form [A-Za-z][A-Za-z0-9:_.-]*\n"
+msgstr "値'%s'は[A-Za-z][A-Za-z0-9:_.-]*の形式ではありません\n"
+
+#: src/html.c:1839
+msgid "HTML element was already open\n"
+msgstr "HTML要素は既に開いています\n"
+
+#: src/html.c:1866
+msgid "HEAD element must go before the BODY section\n"
+msgstr "BASE要素はHEADセクションに現われるべきです。\n"
+
+#: src/html.c:1876
+msgid "HEAD element was already open\n"
+msgstr "HEAD要素は既に開いています\n"
+
+#: src/html.c:1889
+msgid "HEAD section lacks the TITLE element\n"
+msgstr "HEADセクションにTITLE要素が欠けています\n"
+
+#: src/html.c:1917
+msgid "the TITLE element must be inside the HEAD section\n"
+msgstr "TITLE要素はHEADセクションに現われるべきです。\n"
+
+#: src/html.c:1986
+msgid "BODY element was already open\n"
+msgstr "BODY要素は既に開いています\n"
+
+#: src/html.c:1991
+msgid "unclosed HEAD element\n"
+msgstr "閉じられなかったHEAD要素\n"
+
+#: src/html.c:2187
+msgid "<td> or <th> outside <table>\n"
+msgstr "<td>または<th>が<table>の外側にあります\n"
+
+#: src/html.c:2191
+msgid "<td> or <th> outside <tr>\n"
+msgstr "<td>または<th>が<tr>の外側にあります\n"
+
+#: src/html.c:2309
+msgid "Invalid HTML syntax: <tr> outside <table>\n"
+msgstr "不正なHTML構文: <tr>が<table>の外側にあります\n"
+
+#: src/html.c:2367
+msgid "<noframes> outside of <frameset>!!!\n"
+msgstr "<noframes>が<frameset>の外側にあります!!!\n"
+
+#: src/html.c:2375
+msgid "<noframe> is illegal tag !!! use <noframes>.\n"
+msgstr "<noframe>は不正なタグです!!! <noframes>を使用してください\n"
+
+#: src/html.c:2562
+msgid "<frame> outside of <frameset>\n"
+msgstr "<frame>が<frameset>の外側にあります\n"
+
+#: src/html.c:2565
+msgid "<frame> inside of <noframes>\n"
+msgstr "<frame>が<noframes>の内側にあります\n"
+
+#: src/html.c:2568
+msgid "<frame> inside of <iframe>\n"
+msgstr "<frame>が<iframe>の内側にあります\n"
+
+#: src/html.c:2620
+msgid "incorrectly placed <frameset>\n"
+msgstr "<frameset>が誤った場所にあります\n"
+
+#: src/html.c:2636
+msgid "<frameset> inside of <noframes>\n"
+msgstr "<frameset>が<noframes>の内側にあります\n"
+
+#: src/html.c:2641
+msgid "<frameset> inside of <iframe>\n"
+msgstr "<frameset>が<iframe>の内側にあります\n"
+
+#: src/html.c:3123
+msgid "  Html_tag_open_img: server-side map (ISMAP)\n"
+msgstr "  Html_tag_open_img: server-side map (ISMAP)\n"
+
+#: src/html.c:3149
+msgid "nested <map>\n"
+msgstr "<map>がネストされています\n"
+
+#: src/html.c:3201
+msgid "usemap coords MUST be separated with ','\n"
+msgstr "usemapコードは','で区切られていなければなりません\n"
+
+#: src/html.c:3245
+msgid "nohref"
+msgstr "nohref"
+
+#: src/html.c:3284
+msgid "link depends on javascript()\n"
+msgstr "リンクがjavascript()に依存しています。\n"
+
+#: src/html.c:3300
+#, c-format
+msgid "Registering ANCHOR: %s\n"
+msgstr "ANCHORを登録しています: %s\n"
+
+#: src/html.c:3305
+msgid "Anchor names must be unique within the document\n"
+msgstr "アンカー名は文書内で固有でなければいけません\n"
+
+#: src/html.c:3512
+msgid "it is strongly recommended using <UL> instead of <MENU>\n"
+msgstr "<MENU>の代りに<UL>を使うことが強く推奨されています\n"
+
+#: src/html.c:3574
+msgid "<li> outside <ul> or <ol>\n"
+msgstr "<li>が<ul>または<ol>の外側にあります\n"
+
+#: src/html.c:3770
+msgid "nested forms\n"
+msgstr "formsがネストされています\n"
+
+#: src/html.c:3817
+msgid "FORM lacks a Submit button\n"
+msgstr "FORMにSubmitボタンが欠けています\n"
+
+#: src/html.c:3819
+msgid " (added a submit button internally)\n"
+msgstr " (submitボタンを内部で追加しました)\n"
+
+#: src/html.c:3923
+msgid "META elements must be inside the HEAD section\n"
+msgstr "META要素はHEADセクションに現われるべきです。\n"
+
+#: src/html.c:3975
+#, c-format
+msgid ""
+"The NON-STANDARD meta refresh tag. The HTML 4.01 SPEC (sec 7.4.4) recommends "
+"explicitly to avoid it. The author wanted you to go <%s>\n"
+msgstr ""
+"非標準のmeta refreshタグです。HTML4.01SPEC(sec 7.4.4)ではこれを回避することを"
+"はっきりと推奨しています。(このページの)著者は<%s>に行くことを望んでいまし"
+"た。\n"
+
+#: src/html.c:4345
+msgid "Html_submit_form: Method unknown\n"
+msgstr "Html_submit_form: 不明なメソッドです\n"
+
+#: src/html.c:4427
+msgid "Html_input_image: unable to create image submit.\n"
+msgstr "Html_input_image: 画像送信ボタンを生成できません。\n"
+
+#: src/html.c:4449
+msgid "input camp outside <form>\n"
+msgstr "inputの場所が<form>の外側にあります\n"
+
+#: src/html.c:4529
+msgid "submit"
+msgstr "送信"
+
+#: src/html.c:4536 config/dillocfg.c:79
+msgid "Reset"
+msgstr "リセット"
+
+#: src/html.c:4546
+msgid "Submit"
+msgstr "送信"
+
+#: src/html.c:4563
+msgid "An input of the type \"file\" wasn't rendered!\n"
+msgstr "inputタイプ\"file\"はレンダリングされませんでした。\n"
+
+#: src/html.c:4737
+msgid "<textarea> outside <form>\n"
+msgstr "<textarea>が<form>の外側にあります\n"
+
+#: src/html.c:4742
+msgid "nested <textarea>\n"
+msgstr "<textarea>がネストされています\n"
+
+#: src/html.c:4814
+msgid "<select> outside <form>\n"
+msgstr "<select>が<form>の外側にあります\n"
+
+#: src/html.c:4818
+msgid "nested <select>\n"
+msgstr "<select>がネストされています\n"
+
+#: src/html.c:5042
+msgid "base URI is relative (it MUST be absolute)\n"
+msgstr "base URIが関連しています(無条件であるべきです)\n"
+
+#: src/html.c:5049
+msgid "the BASE element must appear in the HEAD section\n"
+msgstr "BASE要素はHEADセクションに現われるべきです\n"
+
+#: src/html.c:5400
+#, c-format
+msgid "<%1$s> is not allowed to contain <%2$s>. -- closing <%3$s>\n"
+msgstr "<%1$s>は<%2$s>を含むことが許されていません。 -- <%3$s>を閉じています\n"
+
+#: src/html.c:5515
+#, c-format
+msgid "<pre> is not allowed to contain <%s>\n"
+msgstr "<pre>は<%s>を含むことが許されていません\n"
+
+#: src/html.c:5537
+msgid "'id' and 'name' attribute of <a> tag differ\n"
+msgstr "<a>タグの'id'と'name'属性は異なります\n"
+
+#: src/html.c:5764
+msgid "Html_write_raw : bufsize is negative!\n"
+msgstr "Html_write_raw : バッファサイズが負の値です!\n"
+
+#: src/html.c:5842
+msgid "attribute lacks closing quote\n"
+msgstr "属性で閉じるクォートが欠けています\n"
+
+#: src/html.c:5850
+#, c-format
+msgid "<%s> element lacks its closing '>'\n"
+msgstr "<%s>属性は'>'で閉じられていません\n"
+
+#: src/html.c:6144
+msgid "could not allocate character encoding converter"
+msgstr "文字コードコンバータを割り当てられません"
+
+#: src/misc.c:455
+msgid "Untitled"
+msgstr "無題"
+
+#: src/interface.c:249
+msgid "Selection retrieval failed\n"
+msgstr "セレクションのに失敗\n"
+
+#: src/interface.c:363
+msgid "Clear the URL box (middle-click to paste an URL)."
+msgstr "URLボックスをクリア(中クリックでURLを貼り付け)"
+
+#: src/interface.c:385
+msgid "Search the Web"
+msgstr "Webを検索"
+
+#: src/interface.c:417 src/menu.c:231 src/menu.c:280
+msgid "Back"
+msgstr "戻る"
+
+#: src/interface.c:421
+msgid "Go to previous page (right-click for menu)."
+msgstr "前のページに戻る(右クリックでメニュー)"
+
+#: src/interface.c:450 src/menu.c:233 src/menu.c:282
+msgid "Forward"
+msgstr "進む"
+
+#: src/interface.c:454
+msgid "Go to next page (right-click for menu)."
+msgstr "次のページに進む(右クリックでメニュー)"
+
+#: src/interface.c:481
+msgid "Home"
+msgstr "ホーム"
+
+#: src/interface.c:485
+msgid "Go to the Home page"
+msgstr "ホームページを開く"
+
+#: src/interface.c:499 config/dillocfg.c:80
+msgid "Reload"
+msgstr "再読込"
+
+#: src/interface.c:500
+msgid "Reload this page"
+msgstr "このページを再読込する"
+
+#: src/interface.c:512 config/dillocfg.c:81
+msgid "Save"
+msgstr "保存"
+
+#: src/interface.c:513
+msgid "Save this page"
+msgstr "このページを保存する"
+
+#: src/interface.c:520 src/menu.c:235 src/menu.c:284
+msgid "Stop"
+msgstr "中止"
+
+#: src/interface.c:521
+msgid "Stop the current transfer"
+msgstr "読み込みを中止する"
+
+#: src/interface.c:534
+msgid "Book"
+msgstr "ブックマーク"
+
+#: src/interface.c:538
+msgid "View bookmarks"
+msgstr "ブックマークの表示"
+
+#: src/interface.c:655 src/interface.c:826
+msgid "Hide Controls"
+msgstr "コントロールの非表示"
+
+#: src/interface.c:655 src/interface.c:826
+msgid "Show Controls"
+msgstr "コントロールの表示"
+
+#: src/interface.c:929
+msgid "Show HTML bugs (right-click for menu)."
+msgstr "HTMLのバグを表示(右クリックでメニュー)"
+
+#: src/interface.c:1231
+#, c-format
+msgid "Warning: search_url ends with '%%'\n"
+msgstr "警告: search_urlの終端に'%%'があります。\n"
+
+#: src/interface.c:1233
+#, c-format
+msgid "Warning: illegal specifier '%%%c' in search_url\n"
+msgstr "警告: 無効な指定子'%%%c'がsearch_urlの中にあります。\n"
+
+#: src/interface.c:1298
+msgid "Dillo: Open File"
+msgstr "Dillo: ファイルを開く"
+
+#: src/interface.c:1374
+msgid "Clear"
+msgstr "クリア"
+
+#: src/interface.c:1382 src/interface.c:1536 src/nav.c:453
+msgid "Cancel"
+msgstr "取消"
+
+#: src/interface.c:1513
+msgid "User Name:"
+msgstr "ユーザー名:"
+
+#: src/interface.c:1520
+msgid "Password:"
+msgstr "パスワード:"
+
+#: src/interface.c:1529 src/interface.c:1604 src/interface.c:2073
+#: src/nav.c:453
+msgid "OK"
+msgstr "了解"
+
+#: src/interface.c:1566
+msgid "Dillo: Enter Authentication"
+msgstr "Dillo: 認証"
+
+#: src/interface.c:1586
+msgid "Dillo: Question"
+msgstr "Dillo: 質問"
+
+#: src/interface.c:1602
+msgid "Dillo: Open URL"
+msgstr "Dillo: URLを開く"
+
+#: src/interface.c:1626
+#, c-format
+msgid "File saved (%d Bytes)"
+msgstr "ファイルに保存しました。(%d バイト)"
+
+#: src/interface.c:1708
+#, c-format
+msgid "Error trying to save: %s\n"
+msgstr "%sの書き込んでいる時にエラーが発生しました。\n"
+
+#: src/interface.c:1761
+msgid "Dillo: Save URL as File..."
+msgstr "Dillo: URLをファイルに保存..."
+
+#: src/interface.c:1788
+msgid "Dillo: Save link as File..."
+msgstr "Dillo: リンクをファイルに保存..."
+
+#: src/interface.c:1843 src/interface.c:1857
+msgid "Dillo: Find text"
+msgstr "Dillo: テキストの検索"
+
+#: src/interface.c:1844 src/interface.c:1850
+#, c-format
+msgid "Cannot find \"%s\"."
+msgstr "\"%s\"は見つかりませんでした。"
+
+#: src/interface.c:1858
+#, c-format
+msgid "No further occurence of \"%s\". Restarting from the beginning."
+msgstr "\"%s\"を最後まで検索しました。 先頭から再検索します。"
+
+#: src/interface.c:1866
+#, c-format
+msgid "(Find) \"%s\": restart from beginning"
+msgstr "(検索) \"%s\": 最初から再開します"
+
+#: src/interface.c:1879
+#, c-format
+msgid "(Find) \"%s\""
+msgstr "(検索) \"%s\""
+
+#: src/interface.c:1885
+msgid "Unexpected return from a_Dw_gtk_scrolled_window_search()\n"
+msgstr "予期しないa_Dw_gtk_scrolled_window_search()からの戻り値\n"
+
+#: src/interface.c:1937
+msgid "press <Enter> to (repeat) search, <Esc> to close search"
+msgstr "<Enter>を押すと(続けて)検索、<Esc>で検索を終了"
+
+#: src/interface.c:1938 src/interface.c:2031
+msgid "Search"
+msgstr "検索"
+
+#: src/interface.c:1940 src/interface.c:1941 src/interface.c:1977
+msgid "Case sensitive"
+msgstr "大文字/小文字を区別する"
+
+#: src/interface.c:1975
+msgid "Dillo: Find text in page"
+msgstr "Dillo: テキストの検索"
+
+#: src/interface.c:1978
+msgid "Find"
+msgstr "検索"
+
+#: src/interface.c:2029
+msgid "Dillo"
+msgstr "Dillo"
+
+#: src/interface.c:2029
+msgid "Dillo: Search the Web"
+msgstr "Dillo: Webを検索"
+
+#: src/interface.c:2066
+#, c-format
+msgid "Dillo: Enter proxy password for '%s'"
+msgstr "Dillo: '%s'へのプロキシパスワードを入力してください"
+
+#: src/interface.c:2151
+msgid "Close"
+msgstr "閉じる"
+
+#: src/interface.c:2226
+msgid "close"
+msgstr "閉じる"
+
+#: src/nav.c:383
+#, c-format
+msgid "Unhandled switch type %d in a_Nav_jump_callback in src/nav.c\n"
+msgstr "src/nav.cのa_Nav_jump_callbackで処理できないswitchの種類 %d\n"
+
+#: src/nav.c:452
+msgid "Repost form data?"
+msgstr "データを再送信しますか?"
+
+#: src/menu.c:173
+msgid "_File"
+msgstr "ファイル(_F)"
+
+#: src/menu.c:174
+msgid "_New Window"
+msgstr "新規Window(_N)"
+
+#: src/menu.c:177
+msgid "New _Tab"
+msgstr "新規タブ(_T)"
+
+#: src/menu.c:181
+msgid "_Open File..."
+msgstr "ファイルを開く(_O)..."
+
+#: src/menu.c:183
+msgid "Open _URL..."
+msgstr "URLを開く(_U)..."
+
+#: src/menu.c:189
+msgid "Close Window"
+msgstr "Windowを閉じる"
+
+#: src/menu.c:192 src/menu.c:359
+msgid "Close Tab"
+msgstr "タブを閉じる"
+
+#: src/menu.c:196
+msgid "Exit Dillo"
+msgstr "Dilloを終了する"
+
+#: src/menu.c:200
+msgid "_View"
+msgstr "表示(_V)"
+
+#: src/menu.c:202
+msgid "Previous tab"
+msgstr "前のタブ"
+
+#: src/menu.c:204
+msgid "Next tab"
+msgstr "次のタブ"
+
+#: src/menu.c:208
+msgid "_Options..."
+msgstr "設定(_O)..."
+
+#: src/menu.c:228
+msgid "PAGE OPTIONS"
+msgstr "ページオプション"
+
+#: src/menu.c:237 src/menu.c:286
+msgid "_Reload"
+msgstr "再読込(_R)"
+
+#: src/menu.c:241
+msgid "View page So_urce"
+msgstr "ページのソースを表示(_u)"
+
+#: src/menu.c:243
+msgid "View page Bugs"
+msgstr "ページのバグを表示(_u)"
+
+#: src/menu.c:244
+msgid "_Bookmark this Page"
+msgstr "このページをブックマークする(_B)"
+
+#: src/menu.c:247
+msgid "Duplicate this Page"
+msgstr "このページを複製する"
+
+#: src/menu.c:250
+msgid "Duplicate this tab"
+msgstr "このタブを複製する"
+
+#: src/menu.c:254
+msgid "_Find Text"
+msgstr "テキストの検索(_F)"
+
+#: src/menu.c:257
+msgid "Jump to..."
+msgstr "ジャンプ..."
+
+#: src/menu.c:258
+msgid "This Frame..."
+msgstr "このフレーム..."
+
+#: src/menu.c:259
+msgid "This Frameset..."
+msgstr "このフレームセット..."
+
+#: src/menu.c:262
+msgid "Save Page As..."
+msgstr "ページに名前を付けて保存..."
+
+#: src/menu.c:277
+msgid "FRAME OPTIONS"
+msgstr "フレームオプション"
+
+#: src/menu.c:290
+msgid "View frame Source"
+msgstr "フレームのソースを表示"
+
+#: src/menu.c:292
+msgid "Bookmark this Frame"
+msgstr "このフレームをブックマークする"
+
+#: src/menu.c:294
+msgid "Reload this Frame"
+msgstr "このフレームを再読込する"
+
+#: src/menu.c:297
+msgid "Show only this Frame"
+msgstr "このフレームのみ表示"
+
+#: src/menu.c:299
+msgid "Open Frame in new Window"
+msgstr "フレームを新しいWindowで開く"
+
+#: src/menu.c:302
+msgid "Open Frame in new Tab"
+msgstr "フレームを新しいタブで開く"
+
+#: src/menu.c:306
+msgid "_Find Text in this Frame..."
+msgstr "このフレーム内をテキスト検索(_F)..."
+
+#: src/menu.c:309 src/menu.c:340
+msgid "Save Frame As..."
+msgstr "フレームに名前を付けて保存..."
+
+#: src/menu.c:325
+msgid "FRAMESET OPTIONS"
+msgstr "フレームセットオプション"
+
+#: src/menu.c:327
+msgid "View Frameset Source"
+msgstr "フレームセットのソースを表示"
+
+#: src/menu.c:329
+msgid "Bookmark this Frameset"
+msgstr "このフレームセットをブックマークする"
+
+#: src/menu.c:331
+msgid "Reload this Frameset"
+msgstr "このフレームセットを再読込する"
+
+#: src/menu.c:334
+msgid "Show only this Frameset"
+msgstr "このフレームセットのみ表示"
+
+#: src/menu.c:337
+msgid "_Find Text in this Frameset..."
+msgstr "このフレームセット内をテキスト検索(_F)..."
+
+#: src/menu.c:357
+msgid "TAB OPTIONS"
+msgstr "タブオプション"
+
+#: src/menu.c:361
+msgid "New Tab"
+msgstr "新規タブ"
+
+#: src/menu.c:363
+msgid "Reload Tab"
+msgstr "タブを再読込"
+
+#: src/menu.c:460
+msgid "FOLLOWING PAGES"
+msgstr "次のページ"
+
+#: src/menu.c:463
+msgid "PREVIOUS PAGES"
+msgstr "前のページ"
+
+#: src/menu.c:531
+msgid "LINK OPTIONS"
+msgstr "リンクオプション"
+
+#: src/menu.c:533
+msgid "Open Link in New Window"
+msgstr "リンクを新しいWindowで開く"
+
+#: src/menu.c:536
+msgid "Open Link in New Tab"
+msgstr "リンクを新しいタブで開く"
+
+#: src/menu.c:539
+msgid "Open Link"
+msgstr "リンクを開く"
+
+#: src/menu.c:542
+msgid "Bookmark this Link"
+msgstr "このリンクをブックマーク(_B)"
+
+#: src/menu.c:544
+msgid "Copy Link location"
+msgstr "リンクの場所をコピー"
+
+#: src/menu.c:549
+msgid "Save Link As..."
+msgstr "リンクに名前を付けて保存..."
+
+#: src/menu.c:553
+msgid "Image Menu..."
+msgstr "画像メニュー..."
+
+#: src/menu.c:571
+msgid "IMAGE OPTIONS"
+msgstr "画像オプション"
+
+#: src/menu.c:573
+msgid "Isolate Image"
+msgstr "画像だけを表示"
+
+#: src/menu.c:575
+msgid "Open Image in New Window"
+msgstr "画像を新しいWindowで開く"
+
+#: src/menu.c:578
+msgid "Open Image in New Tab"
+msgstr "画像を新しいタブで開く"
+
+#: src/menu.c:581
+msgid "Open Image"
+msgstr "画像を開く"
+
+#: src/menu.c:584
+msgid "Bookmark this Image"
+msgstr "この画像をブックマークする"
+
+#: src/menu.c:586
+msgid "Copy Image location"
+msgstr "画像の場所をコピーする"
+
+#: src/menu.c:591
+msgid "Save Image As..."
+msgstr "画像に名前を付けて保存..."
+
+#: src/menu.c:605
+msgid "BUG METER OPTIONS"
+msgstr "バグメーターオプション"
+
+#: src/menu.c:607
+msgid "Validate URL with W3C"
+msgstr "URLをW3Cで検査する"
+
+#: src/menu.c:609
+msgid "Validate URL with WDG"
+msgstr "URLをWDGで検査する"
+
+#: src/menu.c:612
+msgid "About Bug Meter..."
+msgstr "バグメーターについて..."
+
+#: src/prefs.c:431
+msgid "Error: Can't open specified config file. default file is used.\n"
+msgstr "エラー: 設定ファイルを開けません。デフォルトのファイルが使用中です。\n"
+
+#: src/i18n.c:359
+msgid "charset detect may mistake...\n"
+msgstr "文字コード認識に失敗したかもしれません...\n"
+
+#: src/i18n.c:447
+msgid "<meta> outside of <head>!\n"
+msgstr "<meta>が<head>の外側にあります\n"
+
+#: src/i18n.c:493
+msgid "all ascii code\n"
+msgstr "全てASCIIコードです。\n"
+
+#: src/i18n.c:526
+msgid "unable to fully convert between character encodings\n"
+msgstr "文字コードを完全に変換できませんでした\n"
+
+#: src/i18n.c:565
+msgid "no support enc\n"
+msgstr "サポートしてないエンコードです。\n"
+
+#: src/tab.c:293 src/tab.c:425 dpi/bookmarks.c:1653
+msgid "(Untitled)"
+msgstr "(無題)"
+
+#: src/IO/https.c:168
+msgid "--Error detected\n"
+msgstr "--エラーを検出しました\n"
+
+#: src/IO/https.c:173 src/IO/https.c:204 src/IO/http.c:294
+msgid "ERROR: unable to connect to remote host"
+msgstr "エラー: リモートホストに接続できません"
+
+#: src/IO/https.c:179 src/IO/http.c:309
+msgid "--Connection established\n"
+msgstr "--接続を確立しました\n"
+
+#: src/IO/https.c:280 src/IO/http.c:417
+#, c-format
+msgid "Sending query to %s..."
+msgstr "クエリを%sに送信しています..."
+
+#: src/IO/https.c:333 src/IO/http.c:486
+#, c-format
+msgid "DNS solving %s"
+msgstr "DNSは%sを解決しています"
+
+#: src/IO/https.c:363
+msgid " HTTPS: new abort handler! #2\n"
+msgstr " HTTPS: 新規のabortハンドラです! #2\n"
+
+#: src/IO/https.c:365 src/IO/https.c:387 src/IO/http.c:301 src/IO/http.c:520
+#: src/IO/http.c:551
+#, c-format
+msgid "ERROR: %s"
+msgstr "エラー: %s"
+
+#: src/IO/https.c:386
+msgid " HTTP: new abort handler! #1\n"
+msgstr " HTTP: 新規のabortハンドラです! #1\n"
+
+#: src/IO/https.c:400 src/IO/http.c:564
+#, c-format
+msgid "ERROR: Dns can't solve %s"
+msgstr "エラー: DNSは%sを解決できません"
+
+#: src/IO/https.c:421 src/IO/http.c:591
+msgid "Query sent, waiting for reply..."
+msgstr "クエリを送信しました 応答を待っています..."
+
+#: src/IO/http.c:190
+#, c-format
+msgid "Getting %1$s, referer %2$s\n"
+msgstr "%1$sを取得中 リファラ %2$s\n"
+
+#: src/IO/http.c:259
+#, c-format
+msgid ""
+"Query:\n"
+"%s"
+msgstr ""
+"クエリ:\n"
+"%s"
+
+#: src/IO/http.c:286
+msgid "--Connection broken\n"
+msgstr "--切断されました\n"
+
+#: src/IO/http.c:342
+#, c-format
+msgid "Http_connect_socket ERROR: %s\n"
+msgstr "Http_connect_socketでエラー: %s\n"
+
+#: src/IO/http.c:363 src/IO/http.c:377
+#, c-format
+msgid "Connecting to %s\n"
+msgstr "%sに接続しています\n"
+
+#: src/IO/http.c:396
+msgid "Contacting host..."
+msgstr "ホストに接続しています..."
+
+#: src/IO/http.c:529
+msgid "Http: OpAbort [1B]\n"
+msgstr "Http: OpAbort [1B]\n"
+
+#: src/IO/dpi.c:188
+msgid "ERROR: [Dpi_get_token] Can't find token start\n"
+msgstr "エラー: [Dpi_get_token] トークンの開始を見つけられません。\n"
+
+#: src/IO/dpi.c:221
+msgid "ERROR: [Dpi_get_token] *** NULL code here ***\n"
+msgstr "エラー: [Dpi_get_token] *** ここにNULLコードがあります ***\n"
+
+#: src/IO/dpi.c:312
+msgid "Dpi: [Dpi_process_io] IOClose\n"
+msgstr "Dpi: [Dpi_process_io] IOClose\n"
+
+#: src/IO/dpi.c:338
+#, c-format
+msgid "Dpi_start_dpid (child): %s\n"
+msgstr "Dpi_start_dpid (child): %s\n"
+
+#: src/IO/dpi.c:348 src/IO/dpi.c:363
+#, c-format
+msgid "Dpi_start_dpid: %s\n"
+msgstr "Dpi_start_dpid: %s\n"
+
+#: src/IO/dpi.c:359
+#, c-format
+msgid "Dpi_start_dpid: n = %d\n"
+msgstr "Dpi_start_dpid: n = %d\n"
+
+#: src/IO/dpi.c:386
+#, c-format
+msgid "Dpi_check_uds: %1$s %2$s\n"
+msgstr "Dpi_check_uds: %1$s %2$s\n"
+
+#: src/IO/dpi.c:673
+msgid "dpi.c: ERROR, can't start dpi daemon\n"
+msgstr "dpi.c: エラー, dpiデーモンを開始できません\n"
+
+#: src/IO/dpi.c:686
+msgid "a_Dpi_ccc: OpAbort[2B], Not implemented\n"
+msgstr "a_Dpi_ccc: OpAbort[2B], 実装されていません\n"
+
+#: src/IO/dpi.c:790 src/IO/dpi.c:794
+#, c-format
+msgid "a_Dpi_bye_dpid: %s\n"
+msgstr "a_Dpi_bye_dpid: %s\n"
+
+#: dpid/dpi_socket_dir.c:106
+#, c-format
+msgid "The dpi_socket_dir file does not exist\n"
+msgstr "dpi_socket_dirファイルが存在しません\n"
+
+#: dpid/dpi_socket_dir.c:110 dpid/dpi_socket_dir.c:114
+#, c-format
+msgid "debug_msg - init_sockdir: The socket directory "
+msgstr "debug_msg - init_sockdir: socketディレクトリは"
+
+#: dpid/dpi_socket_dir.c:111
+#, c-format
+msgid "%s exists and is OK\n"
+msgstr "%sは存在していてOKです\n"
+
+#: dpid/dpi_socket_dir.c:115
+#, c-format
+msgid "%s does not exist or is not a directory\n"
+msgstr "%sは存在しないか、ディレクトリではありません\n"
+
+#: dpid/dpi_socket_dir.c:124
+#, c-format
+msgid " - Failed to create dpi socket directory\n"
+msgstr " - dpi socketディレクトリの作成に失敗しました\n"
+
+#: dpid/dpi_socket_dir.c:127
+#, c-format
+msgid " - failed to save %s\n"
+msgstr " - %sの保存に失敗しました\n"
+
+#: dpid/main.c:59 dpid/main.c:66 dpid/main.c:77 dpid/main.c:85 dpid/main.c:99
+#: dpid/main.c:104 dpid/main.c:109
+#, c-format
+msgid "ERROR in child proc for %s\n"
+msgstr "%sで子プロセスがエラー\n"
+
+#: dpid/main.c:166
+#, c-format
+msgid ": dpid failed to parse cmd in %s\n"
+msgstr ": dpidが%sのコマンド解析に失敗しました\n"
+
+#: dpid/main.c:265
+#, c-format
+msgid "Failed to create socket directory\n"
+msgstr "socketディレクトリの作成に失敗しました\n"
+
+#: dpid/main.c:275
+#, c-format
+msgid "dpid refuses to start, possibly because:\n"
+msgstr "dpidは開始を拒否しました。予想される原因:\n"
+
+#: dpid/main.c:276
+#, c-format
+msgid "\t1) An instance of dpid is already running.\n"
+msgstr "\t1) dpidのインスタンスが既に起動している。\n"
+
+#: dpid/main.c:277
+#, c-format
+msgid "\t2) A previous dpid didn't clean up on exit.\n"
+msgstr "\t2) 前のdpidが不正終了した。\n"
+
+#: dpid/main.c:280
+msgid "init_srs_sockets failed\n"
+msgstr "init_srs_socketsが失敗しました\n"
+
+#: dpid/main.c:294
+#, c-format
+msgid "dpid started\n"
+msgstr "dpidが開始しました\n"
+
+#: dpid/main.c:340
+#, c-format
+msgid "accept on srs socket failed\n"
+msgstr "srs socketの受理に失敗しました\n"
+
+#: dpid/main.c:341
+#, c-format
+msgid "service pending connections, and continue\n"
+msgstr "未解決の接続をを供給し、継続します\n"
+
+#: dpi/bookmarks.c:96
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td>&nbsp;Bookmarks::</td>\n"
+"    <td width='100%' align='right'>\n"
+"     [<a href='dpi:/bm/modify'>modify</a>]\n"
+"    </td></tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+msgstr ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>ブックマーク</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td><pre>&nbsp;ブックマーク::</pre></td>\n"
+"    <td width='100%' align='right'>\n"
+"     <pre>[<a href='dpi:/bm/modify'>変更</a>]</pre>\n"
+"    </td></tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+
+#: dpi/bookmarks.c:115
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td>&nbsp;Bookmarks :: modify</td></tr>\n"
+"  </table></td></tr>                            \n"
+"</table>                                        \n"
+"\n"
+"<form>\n"
+"<table width='100%' border='1' cellpadding='0'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='teal'>\n"
+"   <tr>\n"
+"    <td><b>Select&nbsp;an&nbsp;operation&nbsp;</b></td>\n"
+"    <td><select name='operation'>\n"
+"     <option value='none' selected>--\n"
+"     <option value='delete'>Delete\n"
+"     <option value='move'>Move\n"
+"     <option value='modify'>Modify\n"
+"     <option value='add_sec'>Add Section\n"
+"     <option value='add_url'>Add URL\n"
+"     </select></td>\n"
+"    <td><b>,&nbsp;mark&nbsp;its&nbsp;operands,&nbsp;and&nbsp;</b></td>\n"
+"    <td><input type='submit' name='submit' value='submit.'></td>\n"
+"    <td width='100%'></td>\n"
+"    </tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+msgstr ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>ブックマーク</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td><pre>&nbsp;ブックマーク :: 変更</pre></td></tr>\n"
+"  </table></td></tr>                            \n"
+"</table>                                        \n"
+"\n"
+"<form>\n"
+"<table width='100%' border='1' cellpadding='0'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='teal'>\n"
+"   <tr>\n"
+"    <td><pre><b>命令を選択&nbsp;</b></pre></td>\n"
+"    <td><select name='operation'>\n"
+"     <option value='none' selected>--\n"
+"     <option value='delete'>削除\n"
+"     <option value='move'>移動\n"
+"     <option value='modify'>変更\n"
+"     <option value='add_sec'>セクションを追加\n"
+"     <option value='add_url'>URLを追加\n"
+"     </select></td>\n"
+"    <td><pre><b>、対象をチェックして、</b></pre></td>\n"
+"    <td><input type='submit' name='submit' value='適用'></td>\n"
+"    <td width='100%'></td>\n"
+"    </tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+
+#: dpi/bookmarks.c:151
+msgid ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='2' cellpadding='4' cellspacing='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n"
+msgstr ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='2' cellpadding='4' cellspacing='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><pre>セクション:</pre></td></tr></table></td></tr>\n"
+
+#: dpi/bookmarks.c:160
+msgid ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n"
+msgstr ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='1' cellpadding='4' cellspacing='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><pre>セクション:</pre></td></tr></table></td></tr>\n"
+
+#: dpi/bookmarks.c:243
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: add section\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+" <input type='hidden' name='operation' value='add_section'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><b>New&nbsp;section:</b></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+"\n"
+msgstr ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>ブックマーク</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;ブックマークの変更:: セクションを追加"
+"</pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+" <input type='hidden' name='operation' value='add_section'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><pre><b>新規 セクション:</b></pre></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>タイトル:</pre></td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='適用'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+"\n"
+
+#: dpi/bookmarks.c:283
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: update\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='modify2'>\n"
+msgstr ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>ブックマーク</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;ブックマークの変更:: アップデート</"
+"pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='modify2'>\n"
+
+#: dpi/bookmarks.c:310
+#, c-format
+msgid ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td>%s</td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+msgstr ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>タイトル:</pre></td>\n"
+"   <td><input type='text' name='title%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td>%s</td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+
+#: dpi/bookmarks.c:323
+#, c-format
+msgid ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='s%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+msgstr ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>タイトル:</pre></td>\n"
+"   <td><input type='text' name='s%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+
+#: dpi/bookmarks.c:336
+#, c-format
+msgid ""
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+msgstr ""
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='適用'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+
+#: dpi/bookmarks.c:346
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: add url\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='add_url2'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><b>Add&nbsp;url:</b></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td><input type='text' name='url' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+msgstr ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>ブックマーク</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;ブックマークの変更:: URLの追加</"
+"pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='add_url2'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><pre><b>URLの追加:</b></pre></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>タイトル:</pre></td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td><input type='text' name='url' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='適用'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+
+#: dpi/bookmarks.c:691
+msgid "Unclassified"
+msgstr "未分類"
+
+#: dpi/bookmarks.c:724
+#, c-format
+msgid "echo \":s0: Unclassified\" > %s"
+msgstr "echo \":s0: 未分類\" > %s"
+
+#: dpi/bookmarks.c:786
+#, c-format
+msgid ""
+"Syntax error in bookmarks file:\n"
+" %s"
+msgstr "ブックマークファイルで構文エラー: %s"
+
+#: dpi/bookmarks.c:898
+msgid "Added bookmark!"
+msgstr "ブックマークに追加しました!"
+
+#: dpi/bookmarks.c:1087
+msgid "Update&nbsp;sections:"
+msgstr "<pre>セクションの更新:</pre>"
+
+#: dpi/bookmarks.c:1107
+msgid "Update&nbsp;titles:"
+msgstr "<pre>タイトルの更新:</pre>"
+
+#: dpi/bookmarks.c:1404
+msgid "Delete: you must mark what to delete!"
+msgstr "削除: 削除したい項目をマークして下さい!"
+
+#: dpi/bookmarks.c:1410
+msgid "Move: you must mark a target section!"
+msgstr "移動: 移動先のセクションをマークして下さい!"
+
+#: dpi/bookmarks.c:1412
+msgid "Move: can not move a section (yet)."
+msgstr "移動: (まだ)セクションを移動できません。"
+
+#: dpi/bookmarks.c:1414
+msgid "Move: you must mark some urls, and a target section!"
+msgstr "移動: URL(複数可)と移動先のセクションを選択して下さい!"
+
+#: dpi/bookmarks.c:1419
+msgid "Modify: you must mark what to update!"
+msgstr "変更: 更新したい項目をマークして下さい!"
+
+#: dpi/bookmarks.c:1436
+msgid "Add url: only one target section is allowed!"
+msgstr "URLの追加: セクションを一つだけ選択して下さい!"
+
+#: dpi/bookmarks.c:1443
+msgid "No operation, just do nothing!"
+msgstr "命令が何も選択されていません!"
+
+#: dpi/bookmarks.c:1446
+msgid "Sorry, not implemented yet."
+msgstr "すみません、まだ実装されていません。"
+
+#: dpi/bookmarks.c:1614
+msgid "Haven't got a full tag!\n"
+msgstr "十分なタグを得ていません!\n"
+
+#: dpi/bookmarks.c:1690
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<HTML><body> Error on the bookmarks server...</body></html>"
+msgstr ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<HTML><body> ブックマークサーバーのエラーです...</body></html>"
+
+#: config/dillocfg.c:82
+msgid "Quit"
+msgstr "終了"
+
+#: config/dillocfg.c:84 config/dillocfg.c:90
+msgid "Dillo Preferences"
+msgstr "Dillo 設定"
+
+#: config/dillocfg.c:113
+msgid "Interface"
+msgstr "インターフェース"
+
+#: config/dillocfg.c:114
+msgid "  Font  "
+msgstr "  フォント  "
+
+#: config/dillocfg.c:115
+msgid "  Color "
+msgstr "   色   "
+
+#: config/dillocfg.c:116
+msgid " Network "
+msgstr " ネットワーク "
+
+#: config/dillocfg.c:118
+msgid "   Tab   "
+msgstr "   タブ   "
+
+#: config/dillocfg.c:121
+msgid "  Other  "
+msgstr "  その他  "
+
+#: config/dillocfg.c:329
+msgid "Add"
+msgstr "追加"
+
+#: config/dillocfg.c:330
+msgid "Delete"
+msgstr "削除"
+
+#: config/dillocfg.c:336
+msgid "Address"
+msgstr "アドレス"
+
+#: config/dillocfg.c:337
+msgid "Rule"
+msgstr "ルール"
+
+#: config/dillocfg.c:363 config/dillocfg.c:369
+#, c-format
+msgid "Read failed <%s>\n"
+msgstr "<%s>の読み込みに失敗しました\n"
+
+#: config/dillocfg.c:450 config/dillocfg.c:458
+#, c-format
+msgid "can't write <%s>\n"
+msgstr "<%s>に書き込めません\n"
+
+#: config/dillocfg_token.c:60
+msgid "Window Size"
+msgstr "Windowの大きさ"
+
+#: config/dillocfg_token.c:68
+msgid "HTTP Proxy"
+msgstr "HTTPプロキシ"
+
+#: config/dillocfg_token.c:76
+msgid "HTTP Proxy User"
+msgstr "HTTPプロキシユーザー"
+
+#: config/dillocfg_token.c:84
+msgid "NO Proxy"
+msgstr "プロキシを使わないのは"
+
+#: config/dillocfg_token.c:92
+msgid "User-Agent"
+msgstr "ユーザーエージェント"
+
+#: config/dillocfg_token.c:100
+msgid "Send referer header"
+msgstr "リファラヘッダを送信する"
+
+#: config/dillocfg_token.c:108
+msgid "Link color"
+msgstr "未訪問リンクの色"
+
+#: config/dillocfg_token.c:116
+msgid "Visited color"
+msgstr "訪問済みリンクの色"
+
+#: config/dillocfg_token.c:124
+msgid "BackGround color"
+msgstr "背景の色"
+
+#: config/dillocfg_token.c:132
+msgid "Allow white bg"
+msgstr "白い背景を許可する"
+
+#: config/dillocfg_token.c:140
+msgid "Force my colors"
+msgstr "常に設定した色で表示する"
+
+#: config/dillocfg_token.c:148
+msgid "Contrast visited color"
+msgstr "訪問済みリンクを正反対の色で表示する"
+
+#: config/dillocfg_token.c:156
+msgid "Text color"
+msgstr "テキストの色"
+
+#: config/dillocfg_token.c:164
+msgid "Use oblique"
+msgstr "イタリックではなく斜体を使う"
+
+#: config/dillocfg_token.c:172
+msgid "Start Page"
+msgstr "開始ページ"
+
+#: config/dillocfg_token.c:180
+msgid "HOMEPAGE"
+msgstr "ホームページ"
+
+#: config/dillocfg_token.c:188
+msgid "Search-engine's URL"
+msgstr "検索エンジンのURL"
+
+#: config/dillocfg_token.c:196
+msgid "Search-engine's charset"
+msgstr "検索エンジンの文字コード"
+
+#: config/dillocfg_token.c:204
+msgid "Show Tooltip"
+msgstr "ツールチップを表示"
+
+#: config/dillocfg_token.c:212
+msgid "Panel Size"
+msgstr "パネルの大きさ"
+
+#: config/dillocfg_token.c:220
+msgid "Small icons"
+msgstr "小さいアイコン"
+
+#: config/dillocfg_token.c:228
+msgid "Limit text width"
+msgstr "テキストの幅を制限する"
+
+#: config/dillocfg_token.c:236
+msgid "Limit font decoration"
+msgstr "フォントの飾りを制限する"
+
+#: config/dillocfg_token.c:244
+msgid "Font factor"
+msgstr "フォントの倍率"
+
+#: config/dillocfg_token.c:252
+msgid "Font Sizes"
+msgstr "フォントの大きさ"
+
+#: config/dillocfg_token.c:260
+msgid "W3C+heuristics"
+msgstr "W3C+ヒューリスティック"
+
+#: config/dillocfg_token.c:268
+msgid "Use dicache"
+msgstr "画像を非圧縮でキャッシュする"
+
+#: config/dillocfg_token.c:276
+msgid "Show Back"
+msgstr "戻るを表示"
+
+#: config/dillocfg_token.c:284
+msgid "Show Forw"
+msgstr "進むを表示"
+
+#: config/dillocfg_token.c:292
+msgid "Show Home"
+msgstr "ホームを表示"
+
+#: config/dillocfg_token.c:300
+msgid "Show Reload"
+msgstr "再読込を表示"
+
+#: config/dillocfg_token.c:308
+msgid "Show Save"
+msgstr "保存を表示"
+
+#: config/dillocfg_token.c:316
+msgid "Show Stop"
+msgstr "停止を表示"
+
+#: config/dillocfg_token.c:324
+msgid "Show Bookmarks"
+msgstr "ブックマークを表示"
+
+#: config/dillocfg_token.c:332
+msgid "Show Menubar"
+msgstr "メニューバーを表示"
+
+#: config/dillocfg_token.c:340
+msgid "Show ClearURL"
+msgstr "URLクリアを表示"
+
+#: config/dillocfg_token.c:348
+msgid "Show URL box"
+msgstr "URLボックスを表示"
+
+#: config/dillocfg_token.c:356
+msgid "Show Web Search"
+msgstr "Web検索を表示"
+
+#: config/dillocfg_token.c:364
+msgid "Show Progress box"
+msgstr "プログレスボックスを表示"
+
+#: config/dillocfg_token.c:372
+msgid "Show Popup navigation"
+msgstr "ポップアップナビゲーションを表示"
+
+#: config/dillocfg_token.c:380
+msgid "Fullwindow start"
+msgstr "フルウインドウで開始する"
+
+#: config/dillocfg_token.c:388
+msgid "Transient dialogs"
+msgstr "一時的なダイアログを許可する"
+
+#: config/dillocfg_token.c:396
+msgid "Popup dialogs"
+msgstr "ダイアログをポップアップする"
+
+#: config/dillocfg_token.c:404
+msgid "vw_aafontname"
+msgstr "AA時のプロポーショナルフォント"
+
+#: config/dillocfg_token.c:412
+msgid "fw_aafontname"
+msgstr "AA時の固定幅フォント"
+
+#: config/dillocfg_token.c:420
+msgid "vw_fontname"
+msgstr "プロポーショナルフォント"
+
+#: config/dillocfg_token.c:428
+msgid "fw_fontname"
+msgstr "固定幅フォント"
+
+#: config/dillocfg_token.c:436
+msgid "Generate submit"
+msgstr "送信ボタンの自動生成"
+
+#: config/dillocfg_token.c:444
+msgid "Enterpress forces submit"
+msgstr "Enterキーでフォームの送信"
+
+#: config/dillocfg_token.c:452
+msgid "Show debugging messsages"
+msgstr "デバッグメッセージの表示"
+
+#: config/dillocfg_token.c:460
+msgid "Show Extra Warnings"
+msgstr "余分な警告を表示"
+
+#: config/dillocfg_token.c:468
+msgid "Focus location on new"
+msgstr "新規WindowでURLバーにフォーカスする"
+
+#: config/dillocfg_token.c:476 config/dillocfg_token.c:484
+msgid "Accept Language"
+msgstr "Accept Language"
+
+#: config/dillocfg_token.c:493
+msgid "Tab load in background"
+msgstr "タブを裏で開く"
+
+#: config/dillocfg_token.c:501
+msgid "Tab close middle click"
+msgstr "タブを中クリックで閉じる"
+
+#: config/dillocfg_token.c:509
+msgid "Tab instead of window"
+msgstr "Windowの代わりにタブで開く"
+
+#: config/dillocfg_token.c:517
+msgid "Tab bar show fullscreen"
+msgstr "フルスクリーンでタブバーを表示"
+
+#: config/dillocfg_token.c:525
+msgid "Tab bar show single tab"
+msgstr "タブが一つでも表示する"
+
+#: config/dillocfg_token.c:533
+msgid "Tab bar scroller"
+msgstr "タブバーにスクロールボタンを表示"
+
+#: config/dillocfg_token.c:541
+msgid "Tab bar homogeneous"
+msgstr "タブを全て同じ幅にする"
+
+#: config/dillocfg_token.c:549
+msgid "Tab title compress"
+msgstr "タブのタイトルを圧縮する"
+
+#: config/dillocfg_token.c:557
+msgid "Compress vowels"
+msgstr "省略する文字"
+
+#: config/dillocfg_token.c:565
+msgid "Compress_common_prefixes"
+msgstr "省略する接頭語"
+
+#: config/dillocfg_token.c:574
+msgid "Default"
+msgstr "デフォルト"
+
+#~ msgid ""
+#~ "  URL                   URL to browse.\n"
+#~ "  FILE                  Local FILE to view.\n"
+#~ msgstr ""
+#~ "  URL                   ブラウズするURL\n"
+#~ "  FILE                  表示するローカルファイル\n"
+
+#~ msgid "realm"
+#~ msgstr "領域"
+
+#~ msgid "  -f, --fullwindow       Start in full window mode."
+#~ msgstr "  -f, --fullwindow      フルウインドウで開始します"
+
+#~ msgid "Character entities for ASCII [129-159] are 'undefined' for HTML\n"
+#~ msgstr "HTMLではASCII [129-159]の文字実体参照が未定義です。\n"
+
+#~ msgid "first character of '%s' value is outside the [A-Za-z] set\n"
+#~ msgstr "'%s'の最初の文字が[A-Za-z]以外です\n"
+
+#~ msgid "not found ' or \" in <meta> tag!\n"
+#~ msgstr "<meta>タグ内に ' または \" が見つかりません。\n"
+
+#~ msgid "<meta> outside of <head>! or not found charset.\n"
+#~ msgstr "<head>の外側に<meta>があるか、charsetが見つかりません。\n"
+
+#~ msgid "Close Find Text"
+#~ msgstr "テキストの検索を閉じる"
+
+#~ msgid "get_command failed\n"
+#~ msgstr "get_commandが失敗しました\n"
+
+#~ msgid "Clear the url-box!"
+#~ msgstr "URLボックスをクリア"
+
+#~ msgid "Go to next page"
+#~ msgstr "次のページに進む"
+
+#~ msgid "Show HTML bugs"
+#~ msgstr "HTMLのバグを表示"
+
+#~ msgid "Directory listing of"
+#~ msgstr "ディレクトリの一覧 "
+
+#~ msgid "Parent directory"
+#~ msgstr "上のディレクトリ"
+
+#~ msgid "ERROR: Can't find %s %s"
+#~ msgstr "エラー: %s %sを見つけられません"
+
+#~ msgid "Warning: Can't find <%s>\n"
+#~ msgstr "警告: <%s>を見つけられません\n"
+
+#~ msgid "Add Bookmark for Link"
+#~ msgstr "リンクをブックマークに追加"
+
+#~ msgid "ERROR: suspicious username: %s\n"
+#~ msgstr "エラー: 疑わしいユーザー名: %s\n"
+
+#~ msgid "Server NOT running\n"
+#~ msgstr "サーバーが起動していません。\n"
+
+#~ msgid "<waited %d cycles for server to be on line>\n"
+#~ msgstr "<サーバーをこの行で%dサイクル待ちました>\n"
+
+#~ msgid "Tab"
+#~ msgstr "タブ"
+
+#~ msgid "Window Width"
+#~ msgstr "Windowの横幅"
+
+#~ msgid "Window Height"
+#~ msgstr "Windowの高さ"
+
+#~ msgid "broken JIS code!\n"
+#~ msgstr "破損したJISコードです\n"
+
+#~ msgid "guess maybe mistaken. recheck charset.\n"
+#~ msgstr "推測に失敗した可能性があります。文字コードを再チェックします。\n"
+
+#~ msgid "not found meta tag charset.\n"
+#~ msgstr "metaタグにcharsetが見つかりません。\n"
+
+#~ msgid "Setting locale to %s...\n"
+#~ msgstr "LOCALEを%sに設定しています...\n"
diff -pruN dillo-0.8.6/po/quot.sed dillo-0.8.6-i18n-misc-20060709/po/quot.sed
--- dillo-0.8.6/po/quot.sed	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/quot.sed	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
diff -pruN dillo-0.8.6/po/remove-potcdate.sin dillo-0.8.6-i18n-misc-20060709/po/remove-potcdate.sin
--- dillo-0.8.6/po/remove-potcdate.sin	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/remove-potcdate.sin	2006-05-16 01:21:06.000000000 +0900
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
�Х��ʥ꡼���ե�����dillo-0.8.6/po/zh_CN.gmo��dillo-0.8.6-i18n-misc-20060709/po/zh_CN.gmo�ϰ㤤�ޤ�
diff -pruN dillo-0.8.6/po/zh_CN.po dillo-0.8.6-i18n-misc-20060709/po/zh_CN.po
--- dillo-0.8.6/po/zh_CN.po	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/zh_CN.po	2006-07-09 00:49:43.000000000 +0900
@@ -0,0 +1,2100 @@
+# Dillo Chinese Translation.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# Babyfai Cheung <babyfai1@yahoo.com.hk>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: Dillo 0.8.4-i18n-misc\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-07-09 00:49+0900\n"
+"PO-Revision-Date: 2005-02-06 22:00+0800\n"
+"Last-Translator: Babyfai Cheung <babyfai1@yahoo.com.hk>\n"
+"Language-Team: NONE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msg.h:27
+msgid "HTTP warning: "
+msgstr ""
+
+#: src/auth.c:87
+msgid "Browser Url has changed\n"
+msgstr "浏览器位址已变更\n"
+
+#: src/cache.c:253
+msgid "WARNING: Cache_entry_add, leaking an entry.\n"
+msgstr ""
+
+#: src/cache.c:316
+msgid "## Aborting CCCQuery\n"
+msgstr "## 退出 CCCQuery\n"
+
+#: src/cache.c:319
+msgid "## Aborting CCCAnswer\n"
+msgstr "##  退出 CCCAnswer\n"
+
+#: src/cache.c:322
+msgid "## Aborting raw2\n"
+msgstr "##  退出 raw2\n"
+
+#: src/cache.c:365
+msgid "## No more clients for this entry\n"
+msgstr ""
+
+#: src/cache.c:369
+msgid "Cache_prepare_reload: ERROR, entry still has clients\n"
+msgstr ""
+
+#: src/cache.c:398
+#, c-format
+msgid "Reloading >%s< because it shouldn't be cached\n"
+msgstr ""
+
+#: src/cache.c:418
+msgid "ERROR: unsupported protocol"
+msgstr "错误: 尚未支援的通讯协定"
+
+#: src/cache.c:488
+#, c-format
+msgid "Redirect loop for URL: >%s<\n"
+msgstr "重导向回圈予 URL: >%s<\n"
+
+#: src/cache.c:590
+#, c-format
+msgid "Bad clocks, ignore expire on >%s<\n"
+msgstr ""
+
+#: src/cache.c:594
+#, c-format
+msgid "Forcing min expire %d on >%s< instead %ld\n"
+msgstr ""
+
+#: src/cache.c:678
+msgid "'Cache-Control: max-age=' without 'Date: ' header"
+msgstr ""
+
+#: src/cache.c:722
+msgid "Server didn't send Content-Type in header.\n"
+msgstr "服务器并未在标头中送出内容.\n"
+
+#: src/cache.c:743
+#, c-format
+msgid "Forcing default expire to query url >%s<\n"
+msgstr ""
+
+#: src/cache.c:831
+#, c-format
+msgid "Cache_decode_data: got all data -- decodinging %s\n"
+msgstr "Cache_decode_data: 收到全部资料 -- 正在解码 %s\n"
+
+#: src/cache.c:840
+msgid "Cache_decode_data: not gzip data!\n"
+msgstr "Cache_decode_data: 没有压缩资料!\n"
+
+#: src/cache.c:846
+msgid "Cache_decode_data: invalid gzip data!\n"
+msgstr "Cache_decode_data: 无效的压缩资料!\n"
+
+#: src/cache.c:898
+msgid "not x-gzip\n"
+msgstr "没有 X-压缩资料\n"
+
+#: src/cache.c:931
+#, c-format
+msgid ""
+"Content-Length does NOT match message body,\n"
+" at: %s\n"
+msgstr ""
+"发现不符长度的内容,\n"
+" 在: %s\n"
+
+#: src/cache.c:950
+msgid "Cache_process_io Op = IOAbort; not implemented yet\n"
+msgstr ""
+
+#: src/cache.c:1004
+#, c-format
+msgid "ERROR: redirect loop for: %s"
+msgstr "错误: 重导向回圈予: %s"
+
+#: src/cache.c:1015
+#, c-format
+msgid ""
+">>>Redirect from: %s\n"
+" to %s\n"
+msgstr ""
+">>>重导向从: %s\n"
+" 至 %s\n"
+
+#: src/cache.c:1035
+msgid ">>>Image redirection without entity-content<<<\n"
+msgstr ">>>重导向影像,在无实质主题下<<<\n"
+
+#: src/cache.c:1037
+msgid ">>>Image redirection with entity-content<<<\n"
+msgstr ">>>重导向影像,在实质主题下<<<\n"
+
+#: src/cache.c:1103
+msgid "FATAL!:*** >>>> Cache_process_queue Caught busy!!!\n"
+msgstr "重大错误:*** >>>> Cache_process_queue 系统繁忙 !!!\n"
+
+#: src/cache.c:1111
+#, c-format
+msgid "Content-Type '%s' doesn't match the real data.\n"
+msgstr ""
+
+#: src/cache.c:1140
+#, c-format
+msgid "HTTP warning: Content-Type '%s' doesn't match the real data."
+msgstr ""
+
+#: src/cache.c:1177
+#, fuzzy, c-format
+msgid "Unhandled MIME type: <%s>\n"
+msgstr ""
+"\n"
+"  不明的 MIME 类型: <%s>\n"
+
+#: src/cache.c:1202
+msgid "Client Callback is NULL"
+msgstr ""
+
+#: src/cache.c:1303
+msgid "WARNING: Cache_stop_client, inexistent client\n"
+msgstr ""
+
+#: src/cache.c:1445 src/capi.c:428 src/capi.c:481 src/capi.c:536
+#: src/capi.c:570 src/IO/dpi.c:720 src/IO/dpi.c:760
+msgid " Not implemented\n"
+msgstr "没有实行\n"
+
+#: src/capi.c:229
+msgid "Capi_verify_dpi_url_request: Permission Denied!\n"
+msgstr ""
+
+#: src/capi.c:324
+#, c-format
+msgid "  reload=%d URL_E2EReload=%d\n"
+msgstr ""
+
+#: src/capi.c:389
+msgid " ERROR: [a_Capi_dpi_send_cmd] No open connection found\n"
+msgstr ""
+
+#: src/capi.c:457
+msgid "ERROR: can't start dpid daemon!"
+msgstr ""
+
+#: src/capi.c:492
+msgid "  ** Capi 2F catched an invalid 'web' structure\n"
+msgstr ""
+
+#: src/capi.c:552
+msgid " Error with pipe\n"
+msgstr ""
+
+#: src/commands.c:166
+msgid "View Source"
+msgstr "检视源始档"
+
+#: src/commands.c:183
+msgid "Detected HTML errors"
+msgstr "发现  HTML 错误"
+
+#: src/commands.c:265
+msgid "Stopped"
+msgstr "已停止"
+
+#: src/dillo.c:109
+msgid ""
+"  -x, --xid XID          Open first Dillo window in an existing\n"
+"                         GtkSocket which window ID is XID (decimal)."
+msgstr ""
+
+#: src/dillo.c:112
+msgid "  -v, --version          Display version info and exit."
+msgstr ""
+
+#: src/dillo.c:114
+msgid "  -h, --help             Display this help text and exit."
+msgstr ""
+
+#: src/dillo.c:116
+msgid ""
+"  -f, --fullwindow       Start in full window mode: hide address bar,\n"
+"                         navigation buttons, menu, and status bar."
+msgstr ""
+
+#: src/dillo.c:119
+msgid "  -l, --local            Don't follow links for this URL(s)."
+msgstr ""
+
+#: src/dillo.c:121
+msgid ""
+"  -g, -geometry GEO      Set initial window position where GEO is\n"
+"                         <width>x<height>{+-}<x>{+-}<y>"
+msgstr ""
+
+#: src/dillo.c:125
+msgid ""
+"  -D, --debug-rendering  Draw additionaly several lines in a web page,\n"
+"                         representing its structure. For debugging. "
+msgstr ""
+
+#: src/dillo.c:129
+msgid "  -R, --rcfile FILE  Use alternative rcfile."
+msgstr ""
+
+#: src/dillo.c:266
+#, c-format
+msgid ""
+"Error: the XID must be an unsigned decimal numerical value.\n"
+"The offending value was: %s\n"
+msgstr ""
+
+#: src/dillo.c:284
+msgid "Error in command line options.\n"
+msgstr ""
+
+#: src/dillo.c:291
+#, c-format
+msgid "Setting gtk charset to %s...\n"
+msgstr ""
+
+#: src/dillo.c:395
+#, fuzzy
+msgid "Dillo: normal exit!\n"
+msgstr "Dillo: 找寻字串"
+
+#: src/dillo.c:409
+#, c-format
+msgid "Dillo: error creating directory %s: %s\n"
+msgstr ""
+
+#: src/dillo.c:412
+#, c-format
+msgid "Dillo: error reading %s: %s\n"
+msgstr ""
+
+#: src/dillo.c:461
+#, c-format
+msgid "Option %s requires %d argument(s)\n"
+msgstr ""
+
+#: src/dillo.c:496
+msgid ""
+"\n"
+"Usage: dillo [OPTIONS] [URL|FILE]...\n"
+"Options:\n"
+msgstr ""
+
+#: src/dillo.c:503
+#, c-format
+msgid "  %s, %s   *Undocumented*\n"
+msgstr ""
+
+#: src/dillo.c:506
+msgid ""
+"  URL                    URL to browse.\n"
+"  FILE                   Local FILE to view.\n"
+msgstr ""
+
+#: src/html.c:182
+#, c-format
+msgid "HTML warning: line %d, "
+msgstr ""
+
+#: src/html.c:213
+#, c-format
+msgid "URL has %d illegal character%s [%d space%s]\n"
+msgstr ""
+
+#: src/html.c:216
+#, c-format
+msgid "URL has %d illegal character%s [%d in (00-1F or 7F)]\n"
+msgstr ""
+
+#: src/html.c:219
+#, c-format
+msgid "URL has %d illegal character%s [%d space%s and %d in (00-1F or 7F)]\n"
+msgstr ""
+
+#: src/html.c:1226
+msgid "numeric character reference out of range\n"
+msgstr ""
+
+#: src/html.c:1234
+msgid "numeric character reference without trailing ';'\n"
+msgstr ""
+
+#: src/html.c:1246
+#, c-format
+msgid "undefined character entity '%s'\n"
+msgstr ""
+
+#: src/html.c:1254
+msgid "character entity reference without trailing ';'\n"
+msgstr ""
+
+#: src/html.c:1262
+msgid "code positions 128-159 are not defined for ISO Latin-1\n"
+msgstr ""
+
+#: src/html.c:1270
+msgid "literal '&'\n"
+msgstr ""
+
+#: src/html.c:1379
+msgid "TAB character inside <PRE>\n"
+msgstr ""
+
+#: src/html.c:1615
+#, c-format
+msgid "  - forcing close of open tag: <%s>\n"
+msgstr ""
+
+#: src/html.c:1624
+#, c-format
+msgid "unexpected closing tag: </%1$s>. -- expected </%2$s>\n"
+msgstr ""
+
+#: src/html.c:1696
+#, c-format
+msgid "Garbage after length: %s\n"
+msgstr ""
+
+#: src/html.c:1715
+msgid "color is not in \"#RRGGBB\" format\n"
+msgstr ""
+
+#: src/html.c:1735
+#, c-format
+msgid "'%s' value is not of the form [A-Za-z][A-Za-z0-9:_.-]*\n"
+msgstr ""
+
+#: src/html.c:1839
+msgid "HTML element was already open\n"
+msgstr ""
+
+#: src/html.c:1866
+msgid "HEAD element must go before the BODY section\n"
+msgstr ""
+
+#: src/html.c:1876
+msgid "HEAD element was already open\n"
+msgstr ""
+
+#: src/html.c:1889
+msgid "HEAD section lacks the TITLE element\n"
+msgstr ""
+
+#: src/html.c:1917
+msgid "the TITLE element must be inside the HEAD section\n"
+msgstr ""
+
+#: src/html.c:1986
+msgid "BODY element was already open\n"
+msgstr ""
+
+#: src/html.c:1991
+msgid "unclosed HEAD element\n"
+msgstr ""
+
+#: src/html.c:2187
+msgid "<td> or <th> outside <table>\n"
+msgstr ""
+
+#: src/html.c:2191
+msgid "<td> or <th> outside <tr>\n"
+msgstr ""
+
+#: src/html.c:2309
+msgid "Invalid HTML syntax: <tr> outside <table>\n"
+msgstr ""
+
+#: src/html.c:2367
+msgid "<noframes> outside of <frameset>!!!\n"
+msgstr ""
+
+#: src/html.c:2375
+msgid "<noframe> is illegal tag !!! use <noframes>.\n"
+msgstr ""
+
+#: src/html.c:2562
+msgid "<frame> outside of <frameset>\n"
+msgstr ""
+
+#: src/html.c:2565
+msgid "<frame> inside of <noframes>\n"
+msgstr ""
+
+#: src/html.c:2568
+msgid "<frame> inside of <iframe>\n"
+msgstr ""
+
+#: src/html.c:2620
+msgid "incorrectly placed <frameset>\n"
+msgstr ""
+
+#: src/html.c:2636
+msgid "<frameset> inside of <noframes>\n"
+msgstr ""
+
+#: src/html.c:2641
+msgid "<frameset> inside of <iframe>\n"
+msgstr ""
+
+#: src/html.c:3123
+msgid "  Html_tag_open_img: server-side map (ISMAP)\n"
+msgstr ""
+
+#: src/html.c:3149
+msgid "nested <map>\n"
+msgstr ""
+
+#: src/html.c:3201
+msgid "usemap coords MUST be separated with ','\n"
+msgstr ""
+
+#: src/html.c:3245
+msgid "nohref"
+msgstr ""
+
+#: src/html.c:3284
+msgid "link depends on javascript()\n"
+msgstr ""
+
+#: src/html.c:3300
+#, c-format
+msgid "Registering ANCHOR: %s\n"
+msgstr ""
+
+#: src/html.c:3305
+msgid "Anchor names must be unique within the document\n"
+msgstr ""
+
+#: src/html.c:3512
+msgid "it is strongly recommended using <UL> instead of <MENU>\n"
+msgstr ""
+
+#: src/html.c:3574
+msgid "<li> outside <ul> or <ol>\n"
+msgstr ""
+
+#: src/html.c:3770
+msgid "nested forms\n"
+msgstr ""
+
+#: src/html.c:3817
+msgid "FORM lacks a Submit button\n"
+msgstr ""
+
+#: src/html.c:3819
+msgid " (added a submit button internally)\n"
+msgstr ""
+
+#: src/html.c:3923
+msgid "META elements must be inside the HEAD section\n"
+msgstr ""
+
+#: src/html.c:3975
+#, c-format
+msgid ""
+"The NON-STANDARD meta refresh tag. The HTML 4.01 SPEC (sec 7.4.4) recommends "
+"explicitly to avoid it. The author wanted you to go <%s>\n"
+msgstr ""
+
+#: src/html.c:4345
+msgid "Html_submit_form: Method unknown\n"
+msgstr ""
+
+#: src/html.c:4427
+msgid "Html_input_image: unable to create image submit.\n"
+msgstr ""
+
+#: src/html.c:4449
+msgid "input camp outside <form>\n"
+msgstr ""
+
+#: src/html.c:4529
+msgid "submit"
+msgstr "提交"
+
+#: src/html.c:4536 config/dillocfg.c:79
+msgid "Reset"
+msgstr "重设"
+
+#: src/html.c:4546
+msgid "Submit"
+msgstr "提交"
+
+#: src/html.c:4563
+msgid "An input of the type \"file\" wasn't rendered!\n"
+msgstr ""
+
+#: src/html.c:4737
+msgid "<textarea> outside <form>\n"
+msgstr ""
+
+#: src/html.c:4742
+msgid "nested <textarea>\n"
+msgstr ""
+
+#: src/html.c:4814
+msgid "<select> outside <form>\n"
+msgstr ""
+
+#: src/html.c:4818
+msgid "nested <select>\n"
+msgstr ""
+
+#: src/html.c:5042
+msgid "base URI is relative (it MUST be absolute)\n"
+msgstr ""
+
+#: src/html.c:5049
+msgid "the BASE element must appear in the HEAD section\n"
+msgstr ""
+
+#: src/html.c:5400
+#, c-format
+msgid "<%1$s> is not allowed to contain <%2$s>. -- closing <%3$s>\n"
+msgstr ""
+
+#: src/html.c:5515
+#, c-format
+msgid "<pre> is not allowed to contain <%s>\n"
+msgstr ""
+
+#: src/html.c:5537
+msgid "'id' and 'name' attribute of <a> tag differ\n"
+msgstr ""
+
+#: src/html.c:5764
+msgid "Html_write_raw : bufsize is negative!\n"
+msgstr ""
+
+#: src/html.c:5842
+msgid "attribute lacks closing quote\n"
+msgstr ""
+
+#: src/html.c:5850
+#, c-format
+msgid "<%s> element lacks its closing '>'\n"
+msgstr ""
+
+#: src/html.c:6144
+msgid "could not allocate character encoding converter"
+msgstr ""
+
+#: src/misc.c:455
+msgid "Untitled"
+msgstr "未命名"
+
+#: src/interface.c:249
+msgid "Selection retrieval failed\n"
+msgstr "选择回收失败\n"
+
+#: src/interface.c:363
+msgid "Clear the URL box (middle-click to paste an URL)."
+msgstr "清空位址栏(点击中键)."
+
+#: src/interface.c:385
+msgid "Search the Web"
+msgstr "搜寻网页"
+
+#: src/interface.c:417 src/menu.c:231 src/menu.c:280
+msgid "Back"
+msgstr "返回"
+
+#: src/interface.c:421
+msgid "Go to previous page (right-click for menu)."
+msgstr "回到上一页(右击菜单)."
+
+#: src/interface.c:450 src/menu.c:233 src/menu.c:282
+msgid "Forward"
+msgstr "往前"
+
+#: src/interface.c:454
+msgid "Go to next page (right-click for menu)."
+msgstr "移至下一页(右击菜单)."
+
+#: src/interface.c:481
+msgid "Home"
+msgstr "首页"
+
+#: src/interface.c:485
+msgid "Go to the Home page"
+msgstr "移至首页"
+
+#: src/interface.c:499 config/dillocfg.c:80
+msgid "Reload"
+msgstr "重载"
+
+#: src/interface.c:500
+msgid "Reload this page"
+msgstr "重新载入"
+
+#: src/interface.c:512 config/dillocfg.c:81
+msgid "Save"
+msgstr "储存"
+
+#: src/interface.c:513
+msgid "Save this page"
+msgstr "储存网页"
+
+#: src/interface.c:520 src/menu.c:235 src/menu.c:284
+msgid "Stop"
+msgstr "停止"
+
+#: src/interface.c:521
+msgid "Stop the current transfer"
+msgstr "停止当前的传送"
+
+#: src/interface.c:534
+msgid "Book"
+msgstr "书签"
+
+#: src/interface.c:538
+msgid "View bookmarks"
+msgstr "检视书签"
+
+#: src/interface.c:655 src/interface.c:826
+msgid "Hide Controls"
+msgstr "隐藏控制栏"
+
+#: src/interface.c:655 src/interface.c:826
+msgid "Show Controls"
+msgstr "显示控制栏"
+
+#: src/interface.c:929
+msgid "Show HTML bugs (right-click for menu)."
+msgstr "显示 HTML 错误(右击菜单)."
+
+#: src/interface.c:1231
+#, c-format
+msgid "Warning: search_url ends with '%%'\n"
+msgstr "警告: search_url 结尾为 '%%'\n"
+
+#: src/interface.c:1233
+#, c-format
+msgid "Warning: illegal specifier '%%%c' in search_url\n"
+msgstr "警告: 在 search_url 中,有非法的指定符 '%%%c'\n"
+
+#: src/interface.c:1298
+msgid "Dillo: Open File"
+msgstr "Dillo: 开启文件"
+
+#: src/interface.c:1374
+msgid "Clear"
+msgstr "清除"
+
+#: src/interface.c:1382 src/interface.c:1536 src/nav.c:453
+msgid "Cancel"
+msgstr "取消"
+
+#: src/interface.c:1513
+msgid "User Name:"
+msgstr "用户名称:"
+
+#: src/interface.c:1520
+msgid "Password:"
+msgstr "口令:"
+
+#: src/interface.c:1529 src/interface.c:1604 src/interface.c:2073
+#: src/nav.c:453
+msgid "OK"
+msgstr "确定"
+
+#: src/interface.c:1566
+msgid "Dillo: Enter Authentication"
+msgstr "Dillo: 进入验证"
+
+#: src/interface.c:1586
+msgid "Dillo: Question"
+msgstr "Dillo: 问题"
+
+#: src/interface.c:1602
+msgid "Dillo: Open URL"
+msgstr "Dillo: 开启网页"
+
+#: src/interface.c:1626
+#, c-format
+msgid "File saved (%d Bytes)"
+msgstr "文件已存入(%d Bytes)"
+
+#: src/interface.c:1708
+#, c-format
+msgid "Error trying to save: %s\n"
+msgstr "错误於储存: %s\n"
+
+#: src/interface.c:1761
+msgid "Dillo: Save URL as File..."
+msgstr "Dillo: 储存网页为..."
+
+#: src/interface.c:1788
+msgid "Dillo: Save link as File..."
+msgstr "Dillo: 储存连接为..."
+
+#: src/interface.c:1843 src/interface.c:1857
+msgid "Dillo: Find text"
+msgstr "Dillo: 找寻字串"
+
+#: src/interface.c:1844 src/interface.c:1850
+#, c-format
+msgid "Cannot find \"%s\"."
+msgstr "找不到 \"%s\"."
+
+#: src/interface.c:1858
+#, c-format
+msgid "No further occurence of \"%s\". Restarting from the beginning."
+msgstr "找不到更多符合 \"%s\". 重开端再找寻"
+
+#: src/interface.c:1866
+#, c-format
+msgid "(Find) \"%s\": restart from beginning"
+msgstr "(找寻) \"%s\": 重开端再找寻 "
+
+#: src/interface.c:1879
+#, c-format
+msgid "(Find) \"%s\""
+msgstr "(找寻) \"%s\""
+
+#: src/interface.c:1885
+msgid "Unexpected return from a_Dw_gtk_scrolled_window_search()\n"
+msgstr "意外回传从 a_Dw_gtk_scrolled_window_search()\n"
+
+#: src/interface.c:1937
+msgid "press <Enter> to (repeat) search, <Esc> to close search"
+msgstr "按 <Enter> 重新搜寻, <Esc> 退出"
+
+#: src/interface.c:1938 src/interface.c:2031
+msgid "Search"
+msgstr "搜寻"
+
+#: src/interface.c:1940 src/interface.c:1941 src/interface.c:1977
+msgid "Case sensitive"
+msgstr "区分大小写"
+
+#: src/interface.c:1975
+msgid "Dillo: Find text in page"
+msgstr "Dillo: 在页面中找寻文字"
+
+#: src/interface.c:1978
+msgid "Find"
+msgstr "找寻"
+
+#: src/interface.c:2029
+msgid "Dillo"
+msgstr "Dillo"
+
+#: src/interface.c:2029
+msgid "Dillo: Search the Web"
+msgstr "Dillo: 搜寻网页"
+
+#: src/interface.c:2066
+#, c-format
+msgid "Dillo: Enter proxy password for '%s'"
+msgstr "Dillo: 输入 '%s' 的服务器口令"
+
+#: src/interface.c:2151
+msgid "Close"
+msgstr "关闭"
+
+#: src/interface.c:2226
+msgid "close"
+msgstr "关闭"
+
+#: src/nav.c:383
+#, c-format
+msgid "Unhandled switch type %d in a_Nav_jump_callback in src/nav.c\n"
+msgstr ""
+
+#: src/nav.c:452
+msgid "Repost form data?"
+msgstr "再列出表单资料?"
+
+#: src/menu.c:173
+msgid "_File"
+msgstr "文件(_F)"
+
+#: src/menu.c:174
+msgid "_New Window"
+msgstr "新窗口(_N)"
+
+#: src/menu.c:177
+msgid "New _Tab"
+msgstr "新分页(_T)"
+
+#: src/menu.c:181
+msgid "_Open File..."
+msgstr "开启文件(_O)..."
+
+#: src/menu.c:183
+msgid "Open _URL..."
+msgstr "开启位址(_U)..."
+
+#: src/menu.c:189
+msgid "Close Window"
+msgstr "关闭窗口"
+
+#: src/menu.c:192 src/menu.c:359
+msgid "Close Tab"
+msgstr "关闭分页"
+
+#: src/menu.c:196
+msgid "Exit Dillo"
+msgstr "关闭 Dillo"
+
+#: src/menu.c:200
+msgid "_View"
+msgstr "检视(_V)"
+
+#: src/menu.c:202
+msgid "Previous tab"
+msgstr "上一分页"
+
+#: src/menu.c:204
+msgid "Next tab"
+msgstr "下一分页"
+
+#: src/menu.c:208
+msgid "_Options..."
+msgstr "选项(_O)..."
+
+#: src/menu.c:228
+msgid "PAGE OPTIONS"
+msgstr "页面选项"
+
+#: src/menu.c:237 src/menu.c:286
+msgid "_Reload"
+msgstr "重载(_R)"
+
+#: src/menu.c:241
+msgid "View page So_urce"
+msgstr "检视源始档(_S)"
+
+#: src/menu.c:243
+msgid "View page Bugs"
+msgstr "检视页面错误"
+
+#: src/menu.c:244
+msgid "_Bookmark this Page"
+msgstr "加进书签(_B)"
+
+#: src/menu.c:247
+msgid "Duplicate this Page"
+msgstr "复制至新窗口"
+
+#: src/menu.c:250
+msgid "Duplicate this tab"
+msgstr "复制至新分页"
+
+#: src/menu.c:254
+msgid "_Find Text"
+msgstr "找寻文字(_F)"
+
+#: src/menu.c:257
+msgid "Jump to..."
+msgstr "跳至..."
+
+#: src/menu.c:258
+msgid "This Frame..."
+msgstr "此框架..."
+
+#: src/menu.c:259
+msgid "This Frameset..."
+msgstr "此框架布局..."
+
+#: src/menu.c:262
+msgid "Save Page As..."
+msgstr "储存为..."
+
+#: src/menu.c:277
+msgid "FRAME OPTIONS"
+msgstr "框架选项"
+
+#: src/menu.c:290
+msgid "View frame Source"
+msgstr "检视框架源始档"
+
+#: src/menu.c:292
+msgid "Bookmark this Frame"
+msgstr "框架加进书签"
+
+#: src/menu.c:294
+msgid "Reload this Frame"
+msgstr "重新载入"
+
+#: src/menu.c:297
+msgid "Show only this Frame"
+msgstr "只显示此框架"
+
+#: src/menu.c:299
+msgid "Open Frame in new Window"
+msgstr "在新窗口开启框架"
+
+#: src/menu.c:302
+msgid "Open Frame in new Tab"
+msgstr "在新分页开启框架"
+
+#: src/menu.c:306
+msgid "_Find Text in this Frame..."
+msgstr "於框架找寻字串(_F)..."
+
+#: src/menu.c:309 src/menu.c:340
+msgid "Save Frame As..."
+msgstr "储存框架为..."
+
+#: src/menu.c:325
+msgid "FRAMESET OPTIONS"
+msgstr "框架布局选项"
+
+#: src/menu.c:327
+msgid "View Frameset Source"
+msgstr "检视源始档"
+
+#: src/menu.c:329
+msgid "Bookmark this Frameset"
+msgstr "加进书签"
+
+#: src/menu.c:331
+msgid "Reload this Frameset"
+msgstr "重新载入"
+
+#: src/menu.c:334
+msgid "Show only this Frameset"
+msgstr "只显示此框架"
+
+#: src/menu.c:337
+msgid "_Find Text in this Frameset..."
+msgstr "找寻字串(_F)..."
+
+#: src/menu.c:357
+msgid "TAB OPTIONS"
+msgstr "分页选项"
+
+#: src/menu.c:361
+msgid "New Tab"
+msgstr "新分页"
+
+#: src/menu.c:363
+msgid "Reload Tab"
+msgstr "重载分页"
+
+#: src/menu.c:460
+msgid "FOLLOWING PAGES"
+msgstr "下一页"
+
+#: src/menu.c:463
+msgid "PREVIOUS PAGES"
+msgstr "上一页"
+
+#: src/menu.c:531
+msgid "LINK OPTIONS"
+msgstr "连接选项"
+
+#: src/menu.c:533
+msgid "Open Link in New Window"
+msgstr "在新窗口开启连接"
+
+#: src/menu.c:536
+msgid "Open Link in New Tab"
+msgstr "在新分页开启连接"
+
+#: src/menu.c:539
+msgid "Open Link"
+msgstr "开启连接"
+
+#: src/menu.c:542
+msgid "Bookmark this Link"
+msgstr "连接加进书签"
+
+#: src/menu.c:544
+msgid "Copy Link location"
+msgstr "复制连接位址"
+
+#: src/menu.c:549
+msgid "Save Link As..."
+msgstr "储存连接为..."
+
+#: src/menu.c:553
+msgid "Image Menu..."
+msgstr "影像菜单.."
+
+#: src/menu.c:571
+msgid "IMAGE OPTIONS"
+msgstr "影像选项"
+
+#: src/menu.c:573
+msgid "Isolate Image"
+msgstr "检视影像"
+
+#: src/menu.c:575
+msgid "Open Image in New Window"
+msgstr "在新窗口开启影像"
+
+#: src/menu.c:578
+msgid "Open Image in New Tab"
+msgstr "在新分页开启影像"
+
+#: src/menu.c:581
+msgid "Open Image"
+msgstr "开启影像"
+
+#: src/menu.c:584
+msgid "Bookmark this Image"
+msgstr "将影像加入书签"
+
+#: src/menu.c:586
+msgid "Copy Image location"
+msgstr "复制影像位址"
+
+#: src/menu.c:591
+msgid "Save Image As..."
+msgstr "储存影像为..."
+
+#: src/menu.c:605
+msgid "BUG METER OPTIONS"
+msgstr "错误侦测选项"
+
+#: src/menu.c:607
+msgid "Validate URL with W3C"
+msgstr "以 W3C 错误侦测"
+
+#: src/menu.c:609
+msgid "Validate URL with WDG"
+msgstr "以 WDG 错误侦测"
+
+#: src/menu.c:612
+msgid "About Bug Meter..."
+msgstr "关於错误侦测..."
+
+#: src/prefs.c:431
+msgid "Error: Can't open specified config file. default file is used.\n"
+msgstr ""
+
+#: src/i18n.c:359
+msgid "charset detect may mistake...\n"
+msgstr "文字检测可能错误...\n"
+
+#: src/i18n.c:447
+msgid "<meta> outside of <head>!\n"
+msgstr ""
+
+#: src/i18n.c:493
+msgid "all ascii code\n"
+msgstr "全为 ASCII 编码\n"
+
+#: src/i18n.c:526
+msgid "unable to fully convert between character encodings\n"
+msgstr "未能完全转换文字间的编码\n"
+
+#: src/i18n.c:565
+msgid "no support enc\n"
+msgstr "不支援的编码\n"
+
+#: src/tab.c:293 src/tab.c:425 dpi/bookmarks.c:1653
+msgid "(Untitled)"
+msgstr "(无题)"
+
+#: src/IO/https.c:168
+msgid "--Error detected\n"
+msgstr "--错误检测\n"
+
+#: src/IO/https.c:173 src/IO/https.c:204 src/IO/http.c:294
+msgid "ERROR: unable to connect to remote host"
+msgstr "错误: 未能连接远端主机"
+
+#: src/IO/https.c:179 src/IO/http.c:309
+msgid "--Connection established\n"
+msgstr "--连线已建立\n"
+
+#: src/IO/https.c:280 src/IO/http.c:417
+#, c-format
+msgid "Sending query to %s..."
+msgstr "正送出请求至 %s..."
+
+#: src/IO/https.c:333 src/IO/http.c:486
+#, c-format
+msgid "DNS solving %s"
+msgstr "DNS 正查释域名 %s"
+
+#: src/IO/https.c:363
+msgid " HTTPS: new abort handler! #2\n"
+msgstr ""
+
+#: src/IO/https.c:365 src/IO/https.c:387 src/IO/http.c:301 src/IO/http.c:520
+#: src/IO/http.c:551
+#, c-format
+msgid "ERROR: %s"
+msgstr "错误: %s"
+
+#: src/IO/https.c:386
+msgid " HTTP: new abort handler! #1\n"
+msgstr ""
+
+#: src/IO/https.c:400 src/IO/http.c:564
+#, c-format
+msgid "ERROR: Dns can't solve %s"
+msgstr "错误: Dns 未能查释域名 %s"
+
+#: src/IO/https.c:421 src/IO/http.c:591
+msgid "Query sent, waiting for reply..."
+msgstr "请求已送出, 正等侯回覆中..."
+
+#: src/IO/http.c:190
+#, c-format
+msgid "Getting %1$s, referer %2$s\n"
+msgstr "提取 %1$s 中, 因应 %2$s\n"
+
+#: src/IO/http.c:259
+#, c-format
+msgid ""
+"Query:\n"
+"%s"
+msgstr ""
+"查询: \n"
+"%s"
+
+#: src/IO/http.c:286
+msgid "--Connection broken\n"
+msgstr "--连线被中断 \n"
+
+#: src/IO/http.c:342
+#, c-format
+msgid "Http_connect_socket ERROR: %s\n"
+msgstr "连接端口 错误: %s\n"
+
+#: src/IO/http.c:363 src/IO/http.c:377
+#, c-format
+msgid "Connecting to %s\n"
+msgstr "正在连接 %s\n"
+
+#: src/IO/http.c:396
+msgid "Contacting host..."
+msgstr "正在联系主机..."
+
+#: src/IO/http.c:529
+msgid "Http: OpAbort [1B]\n"
+msgstr "Http: OpAbort [1B]\n"
+
+#: src/IO/dpi.c:188
+msgid "ERROR: [Dpi_get_token] Can't find token start\n"
+msgstr ""
+
+#: src/IO/dpi.c:221
+msgid "ERROR: [Dpi_get_token] *** NULL code here ***\n"
+msgstr ""
+
+#: src/IO/dpi.c:312
+msgid "Dpi: [Dpi_process_io] IOClose\n"
+msgstr ""
+
+#: src/IO/dpi.c:338
+#, c-format
+msgid "Dpi_start_dpid (child): %s\n"
+msgstr ""
+
+#: src/IO/dpi.c:348 src/IO/dpi.c:363
+#, c-format
+msgid "Dpi_start_dpid: %s\n"
+msgstr ""
+
+#: src/IO/dpi.c:359
+#, c-format
+msgid "Dpi_start_dpid: n = %d\n"
+msgstr ""
+
+#: src/IO/dpi.c:386
+#, c-format
+msgid "Dpi_check_uds: %1$s %2$s\n"
+msgstr ""
+
+#: src/IO/dpi.c:673
+msgid "dpi.c: ERROR, can't start dpi daemon\n"
+msgstr ""
+
+#: src/IO/dpi.c:686
+msgid "a_Dpi_ccc: OpAbort[2B], Not implemented\n"
+msgstr ""
+
+#: src/IO/dpi.c:790 src/IO/dpi.c:794
+#, c-format
+msgid "a_Dpi_bye_dpid: %s\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:106
+#, c-format
+msgid "The dpi_socket_dir file does not exist\n"
+msgstr "dpi_socket_dir 文件并不存在\n"
+
+#: dpid/dpi_socket_dir.c:110 dpid/dpi_socket_dir.c:114
+#, c-format
+msgid "debug_msg - init_sockdir: The socket directory "
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:111
+#, c-format
+msgid "%s exists and is OK\n"
+msgstr "%s 存在并可正常使用\n"
+
+#: dpid/dpi_socket_dir.c:115
+#, c-format
+msgid "%s does not exist or is not a directory\n"
+msgstr "%s 不存在且不是一个目录\n"
+
+#: dpid/dpi_socket_dir.c:124
+#, c-format
+msgid " - Failed to create dpi socket directory\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:127
+#, c-format
+msgid " - failed to save %s\n"
+msgstr ""
+
+#: dpid/main.c:59 dpid/main.c:66 dpid/main.c:77 dpid/main.c:85 dpid/main.c:99
+#: dpid/main.c:104 dpid/main.c:109
+#, c-format
+msgid "ERROR in child proc for %s\n"
+msgstr ""
+
+#: dpid/main.c:166
+#, c-format
+msgid ": dpid failed to parse cmd in %s\n"
+msgstr ""
+
+#: dpid/main.c:265
+#, c-format
+msgid "Failed to create socket directory\n"
+msgstr ""
+
+#: dpid/main.c:275
+#, c-format
+msgid "dpid refuses to start, possibly because:\n"
+msgstr ""
+
+#: dpid/main.c:276
+#, c-format
+msgid "\t1) An instance of dpid is already running.\n"
+msgstr ""
+
+#: dpid/main.c:277
+#, c-format
+msgid "\t2) A previous dpid didn't clean up on exit.\n"
+msgstr ""
+
+#: dpid/main.c:280
+msgid "init_srs_sockets failed\n"
+msgstr ""
+
+#: dpid/main.c:294
+#, c-format
+msgid "dpid started\n"
+msgstr ""
+
+#: dpid/main.c:340
+#, c-format
+msgid "accept on srs socket failed\n"
+msgstr ""
+
+#: dpid/main.c:341
+#, c-format
+msgid "service pending connections, and continue\n"
+msgstr ""
+
+#: dpi/bookmarks.c:96
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td>&nbsp;Bookmarks::</td>\n"
+"    <td width='100%' align='right'>\n"
+"     [<a href='dpi:/bm/modify'>modify</a>]\n"
+"    </td></tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>书签</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td><pre>&nbsp;书签::</pre></td>\n"
+"    <td width='100%' align='right'>\n"
+"     <pre>[<a href='dpi:/bm/modify'>编辑</a>]</pre>\n"
+"    </td></tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+
+#: dpi/bookmarks.c:115
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td>&nbsp;Bookmarks :: modify</td></tr>\n"
+"  </table></td></tr>                            \n"
+"</table>                                        \n"
+"\n"
+"<form>\n"
+"<table width='100%' border='1' cellpadding='0'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='teal'>\n"
+"   <tr>\n"
+"    <td><b>Select&nbsp;an&nbsp;operation&nbsp;</b></td>\n"
+"    <td><select name='operation'>\n"
+"     <option value='none' selected>--\n"
+"     <option value='delete'>Delete\n"
+"     <option value='move'>Move\n"
+"     <option value='modify'>Modify\n"
+"     <option value='add_sec'>Add Section\n"
+"     <option value='add_url'>Add URL\n"
+"     </select></td>\n"
+"    <td><b>,&nbsp;mark&nbsp;its&nbsp;operands,&nbsp;and&nbsp;</b></td>\n"
+"    <td><input type='submit' name='submit' value='submit.'></td>\n"
+"    <td width='100%'></td>\n"
+"    </tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>书签</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td><pre>&nbsp;书签 :: 编辑</pre></td></tr>\n"
+"  </table></td></tr>                            \n"
+"</table>                                        \n"
+"\n"
+"<form>\n"
+"<table width='100%' border='1' cellpadding='0'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='teal'>\n"
+"   <tr>\n"
+"    <td><pre><b>选择动作&nbsp;</b></pre></td>\n"
+"    <td><select name='operation'>\n"
+"     <option value='none' selected>--\n"
+"     <option value='delete'>删除\n"
+"     <option value='move'>移动\n"
+"     <option value='modify'>修改\n"
+"     <option value='add_sec'>加入项目\n"
+"     <option value='add_url'>加入 URL\n"
+"     </select></td>\n"
+"    <td><pre><b>套用已选动作</b></pre></td>\n"
+"    <td><input type='submit' name='submit' value='套用.'></td>\n"
+"    <td width='100%'></td>\n"
+"    </tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+
+#: dpi/bookmarks.c:151
+msgid ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='2' cellpadding='4' cellspacing='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n"
+msgstr ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='2' cellpadding='4' cellspacing='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><pre>项目:</pre></td></tr></table></td></tr>\n"
+
+#: dpi/bookmarks.c:160
+msgid ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n"
+msgstr ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><pre>项目:</pre></td></tr></table></td></tr>\n"
+
+#: dpi/bookmarks.c:243
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: add section\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+" <input type='hidden' name='operation' value='add_section'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><b>New&nbsp;section:</b></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+"\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>书签</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;编辑书签:: 加入项目</pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+" <input type='hidden' name='operation' value='add_section'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><pre><b>新加入项目:</b></pre></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>标题:</pre></td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='套用.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+"\n"
+
+#: dpi/bookmarks.c:283
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: update\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='modify2'>\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>书签</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;编辑书签:: 更新</pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='modify2'>\n"
+
+#: dpi/bookmarks.c:310
+#, c-format
+msgid ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td>%s</td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+msgstr ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>标题:</pre></td>\n"
+"   <td><input type='text' name='title%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td>%s</td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+
+#: dpi/bookmarks.c:323
+#, c-format
+msgid ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='s%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+msgstr ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>标题:</pre></td>\n"
+"   <td><input type='text' name='s%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+
+#: dpi/bookmarks.c:336
+#, c-format
+msgid ""
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+msgstr ""
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='套用.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+
+#: dpi/bookmarks.c:346
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: add url\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='add_url2'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><b>Add&nbsp;url:</b></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td><input type='text' name='url' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>书签</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;编辑书签:: 加入网页</pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='add_url2'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><pre><b>加入网页l:</b></pre></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>标题:</pre></td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td><input type='text' name='url' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='套用.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+
+#: dpi/bookmarks.c:691
+msgid "Unclassified"
+msgstr "未经分类"
+
+#: dpi/bookmarks.c:724
+#, c-format
+msgid "echo \":s0: Unclassified\" > %s"
+msgstr "echo \":s0: 未经分类\" > %s"
+
+#: dpi/bookmarks.c:786
+#, c-format
+msgid ""
+"Syntax error in bookmarks file:\n"
+" %s"
+msgstr ""
+"语法错误於书签档:\n"
+" %s"
+
+#: dpi/bookmarks.c:898
+msgid "Added bookmark!"
+msgstr "加进书签!"
+
+#: dpi/bookmarks.c:1087
+msgid "Update&nbsp;sections:"
+msgstr "<pre>更新项目:</pre>"
+
+#: dpi/bookmarks.c:1107
+msgid "Update&nbsp;titles:"
+msgstr "<pre>更新标题:</pre>"
+
+#: dpi/bookmarks.c:1404
+msgid "Delete: you must mark what to delete!"
+msgstr "删除: 请先选择项目!"
+
+#: dpi/bookmarks.c:1410
+msgid "Move: you must mark a target section!"
+msgstr "移动: 请先选择项目!"
+
+#: dpi/bookmarks.c:1412
+msgid "Move: can not move a section (yet)."
+msgstr "移动: 移动项目失败!"
+
+#: dpi/bookmarks.c:1414
+msgid "Move: you must mark some urls, and a target section!"
+msgstr "移动: 请先选择网页及项目!"
+
+#: dpi/bookmarks.c:1419
+msgid "Modify: you must mark what to update!"
+msgstr "修改: 请先选择要更新的项目!"
+
+#: dpi/bookmarks.c:1436
+msgid "Add url: only one target section is allowed!"
+msgstr "加入网页: 只可选择一个项目!"
+
+#: dpi/bookmarks.c:1443
+msgid "No operation, just do nothing!"
+msgstr "没有指示,操作无效!"
+
+#: dpi/bookmarks.c:1446
+msgid "Sorry, not implemented yet."
+msgstr "操作尚未完成."
+
+#: dpi/bookmarks.c:1614
+msgid "Haven't got a full tag!\n"
+msgstr "找不到完整标签!\n"
+
+#: dpi/bookmarks.c:1690
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<HTML><body> Error on the bookmarks server...</body></html>"
+msgstr "<HTML><body> 书签系统错误...</body></html>"
+
+#: config/dillocfg.c:82
+msgid "Quit"
+msgstr "退出"
+
+#: config/dillocfg.c:84 config/dillocfg.c:90
+msgid "Dillo Preferences"
+msgstr "偏好设定"
+
+#: config/dillocfg.c:113
+msgid "Interface"
+msgstr "介面"
+
+#: config/dillocfg.c:114
+msgid "  Font  "
+msgstr "字型"
+
+#: config/dillocfg.c:115
+msgid "  Color "
+msgstr "颜色"
+
+#: config/dillocfg.c:116
+msgid " Network "
+msgstr "网络"
+
+#: config/dillocfg.c:118
+msgid "   Tab   "
+msgstr "分页"
+
+#: config/dillocfg.c:121
+msgid "  Other  "
+msgstr "其他"
+
+#: config/dillocfg.c:329
+msgid "Add"
+msgstr "加入"
+
+#: config/dillocfg.c:330
+msgid "Delete"
+msgstr "删除"
+
+#: config/dillocfg.c:336
+msgid "Address"
+msgstr "位址"
+
+#: config/dillocfg.c:337
+msgid "Rule"
+msgstr "规则"
+
+#: config/dillocfg.c:363 config/dillocfg.c:369
+#, c-format
+msgid "Read failed <%s>\n"
+msgstr "错误读取 <%s>\n"
+
+#: config/dillocfg.c:450 config/dillocfg.c:458
+#, c-format
+msgid "can't write <%s>\n"
+msgstr "不能写入 <%s>\n"
+
+#: config/dillocfg_token.c:60
+msgid "Window Size"
+msgstr "窗口大小"
+
+#: config/dillocfg_token.c:68
+msgid "HTTP Proxy"
+msgstr "代理服务器"
+
+#: config/dillocfg_token.c:76
+msgid "HTTP Proxy User"
+msgstr "服务器用户"
+
+#: config/dillocfg_token.c:84
+msgid "NO Proxy"
+msgstr "没有服务器"
+
+#: config/dillocfg_token.c:92
+msgid "User-Agent"
+msgstr "浏览器-相容识别"
+
+#: config/dillocfg_token.c:100
+msgid "Send referer header"
+msgstr ""
+
+#: config/dillocfg_token.c:108
+msgid "Link color"
+msgstr "连接"
+
+#: config/dillocfg_token.c:116
+msgid "Visited color"
+msgstr "已到网页"
+
+#: config/dillocfg_token.c:124
+msgid "BackGround color"
+msgstr "背景"
+
+#: config/dillocfg_token.c:132
+msgid "Allow white bg"
+msgstr "空白背景"
+
+#: config/dillocfg_token.c:140
+msgid "Force my colors"
+msgstr "使用自选颜色"
+
+#: config/dillocfg_token.c:148
+msgid "Contrast visited color"
+msgstr "加亮已到网页颜色"
+
+#: config/dillocfg_token.c:156
+msgid "Text color"
+msgstr "文字颜色"
+
+#: config/dillocfg_token.c:164
+msgid "Use oblique"
+msgstr "兼容斜体"
+
+#: config/dillocfg_token.c:172
+msgid "Start Page"
+msgstr "起始页"
+
+#: config/dillocfg_token.c:180
+msgid "HOMEPAGE"
+msgstr "首页"
+
+#: config/dillocfg_token.c:188
+msgid "Search-engine's URL"
+msgstr "搜寻引擎网址"
+
+#: config/dillocfg_token.c:196
+msgid "Search-engine's charset"
+msgstr "搜寻引擎字体"
+
+#: config/dillocfg_token.c:204
+msgid "Show Tooltip"
+msgstr "显示提示"
+
+#: config/dillocfg_token.c:212
+msgid "Panel Size"
+msgstr "板面大小"
+
+#: config/dillocfg_token.c:220
+msgid "Small icons"
+msgstr "小型图示"
+
+#: config/dillocfg_token.c:228
+msgid "Limit text width"
+msgstr "限制文字宽度"
+
+#: config/dillocfg_token.c:236
+msgid "Limit font decoration"
+msgstr "限制文字装饰"
+
+#: config/dillocfg_token.c:244
+msgid "Font factor"
+msgstr "文字系数"
+
+#: config/dillocfg_token.c:252
+msgid "Font Sizes"
+msgstr "文字大小"
+
+#: config/dillocfg_token.c:260
+msgid "W3C+heuristics"
+msgstr "W3C+试探程序"
+
+#: config/dillocfg_token.c:268
+msgid "Use dicache"
+msgstr "使用磁碟缓存"
+
+#: config/dillocfg_token.c:276
+msgid "Show Back"
+msgstr "显示返回"
+
+#: config/dillocfg_token.c:284
+msgid "Show Forw"
+msgstr "显示往前"
+
+#: config/dillocfg_token.c:292
+msgid "Show Home"
+msgstr "显示首页"
+
+#: config/dillocfg_token.c:300
+msgid "Show Reload"
+msgstr "显示重载"
+
+#: config/dillocfg_token.c:308
+msgid "Show Save"
+msgstr "显示储存"
+
+#: config/dillocfg_token.c:316
+msgid "Show Stop"
+msgstr "显示停止"
+
+#: config/dillocfg_token.c:324
+msgid "Show Bookmarks"
+msgstr "显示书签"
+
+#: config/dillocfg_token.c:332
+msgid "Show Menubar"
+msgstr "显示菜单拦"
+
+#: config/dillocfg_token.c:340
+msgid "Show ClearURL"
+msgstr "显示清空位址"
+
+#: config/dillocfg_token.c:348
+msgid "Show URL box"
+msgstr "显示位址栏"
+
+#: config/dillocfg_token.c:356
+msgid "Show Web Search"
+msgstr "显示搜寻框"
+
+#: config/dillocfg_token.c:364
+msgid "Show Progress box"
+msgstr "显示进度框"
+
+#: config/dillocfg_token.c:372
+msgid "Show Popup navigation"
+msgstr "显示弹出浏览"
+
+#: config/dillocfg_token.c:380
+msgid "Fullwindow start"
+msgstr "全屏幕开始"
+
+#: config/dillocfg_token.c:388
+msgid "Transient dialogs"
+msgstr "短暂对话框"
+
+#: config/dillocfg_token.c:396
+msgid "Popup dialogs"
+msgstr "弹出对话框"
+
+#: config/dillocfg_token.c:404
+msgid "vw_aafontname"
+msgstr "一般字体(平滑化)"
+
+#: config/dillocfg_token.c:412
+msgid "fw_aafontname"
+msgstr "固定字体(平滑化)"
+
+#: config/dillocfg_token.c:420
+msgid "vw_fontname"
+msgstr "一般字体"
+
+#: config/dillocfg_token.c:428
+msgid "fw_fontname"
+msgstr "固定字体"
+
+#: config/dillocfg_token.c:436
+msgid "Generate submit"
+msgstr "发放提交"
+
+#: config/dillocfg_token.c:444
+msgid "Enterpress forces submit"
+msgstr "按 Enter 键提交"
+
+#: config/dillocfg_token.c:452
+msgid "Show debugging messsages"
+msgstr "显示除错讯息"
+
+#: config/dillocfg_token.c:460
+msgid "Show Extra Warnings"
+msgstr "显示重大警告讯息"
+
+#: config/dillocfg_token.c:468
+msgid "Focus location on new"
+msgstr "聚焦位址於新窗口"
+
+#: config/dillocfg_token.c:476 config/dillocfg_token.c:484
+msgid "Accept Language"
+msgstr "接受语言"
+
+#: config/dillocfg_token.c:493
+msgid "Tab load in background"
+msgstr "在背景开启分页"
+
+#: config/dillocfg_token.c:501
+msgid "Tab close middle click"
+msgstr "以中键关闭分页"
+
+#: config/dillocfg_token.c:509
+msgid "Tab instead of window"
+msgstr "以分页替代窗口"
+
+#: config/dillocfg_token.c:517
+msgid "Tab bar show fullscreen"
+msgstr "分页标题栏显示全屏幕"
+
+#: config/dillocfg_token.c:525
+msgid "Tab bar show single tab"
+msgstr "分页标题栏只显示单一分页"
+
+#: config/dillocfg_token.c:533
+msgid "Tab bar scroller"
+msgstr "显示分页标题栏卷轴"
+
+#: config/dillocfg_token.c:541
+msgid "Tab bar homogeneous"
+msgstr "分页标题栏平均化"
+
+#: config/dillocfg_token.c:549
+msgid "Tab title compress"
+msgstr "简化分页标题"
+
+#: config/dillocfg_token.c:557
+msgid "Compress vowels"
+msgstr "压缩母音字元"
+
+#: config/dillocfg_token.c:565
+msgid "Compress_common_prefixes"
+msgstr "压缩标头文字"
+
+#: config/dillocfg_token.c:574
+msgid "Default"
+msgstr "缺省值"
�Х��ʥ꡼���ե�����dillo-0.8.6/po/zh_TW.gmo��dillo-0.8.6-i18n-misc-20060709/po/zh_TW.gmo�ϰ㤤�ޤ�
diff -pruN dillo-0.8.6/po/zh_TW.po dillo-0.8.6-i18n-misc-20060709/po/zh_TW.po
--- dillo-0.8.6/po/zh_TW.po	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/po/zh_TW.po	2006-07-09 00:49:43.000000000 +0900
@@ -0,0 +1,2100 @@
+# Dillo Chinese Translation.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# Babyfai Cheung <babyfai1@yahoo.com.hk>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: Dillo 0.8.4-i18n-misc\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-07-09 00:49+0900\n"
+"PO-Revision-Date: 2005-02-06 22:00+0800\n"
+"Last-Translator: Babyfai Cheung <babyfai1@yahoo.com.hk>\n"
+"Language-Team: NONE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/msg.h:27
+msgid "HTTP warning: "
+msgstr ""
+
+#: src/auth.c:87
+msgid "Browser Url has changed\n"
+msgstr "瀏覽器位址已變更\n"
+
+#: src/cache.c:253
+msgid "WARNING: Cache_entry_add, leaking an entry.\n"
+msgstr ""
+
+#: src/cache.c:316
+msgid "## Aborting CCCQuery\n"
+msgstr "## 退出 CCCQuery\n"
+
+#: src/cache.c:319
+msgid "## Aborting CCCAnswer\n"
+msgstr "##  退出 CCCAnswer\n"
+
+#: src/cache.c:322
+msgid "## Aborting raw2\n"
+msgstr "##  退出 raw2\n"
+
+#: src/cache.c:365
+msgid "## No more clients for this entry\n"
+msgstr ""
+
+#: src/cache.c:369
+msgid "Cache_prepare_reload: ERROR, entry still has clients\n"
+msgstr ""
+
+#: src/cache.c:398
+#, c-format
+msgid "Reloading >%s< because it shouldn't be cached\n"
+msgstr ""
+
+#: src/cache.c:418
+msgid "ERROR: unsupported protocol"
+msgstr "錯誤: 尚未支援的通訊協定"
+
+#: src/cache.c:488
+#, c-format
+msgid "Redirect loop for URL: >%s<\n"
+msgstr "重導向回圈予 URL: >%s<\n"
+
+#: src/cache.c:590
+#, c-format
+msgid "Bad clocks, ignore expire on >%s<\n"
+msgstr ""
+
+#: src/cache.c:594
+#, c-format
+msgid "Forcing min expire %d on >%s< instead %ld\n"
+msgstr ""
+
+#: src/cache.c:678
+msgid "'Cache-Control: max-age=' without 'Date: ' header"
+msgstr ""
+
+#: src/cache.c:722
+msgid "Server didn't send Content-Type in header.\n"
+msgstr "伺服器並未在標頭中送出內容.\n"
+
+#: src/cache.c:743
+#, c-format
+msgid "Forcing default expire to query url >%s<\n"
+msgstr ""
+
+#: src/cache.c:831
+#, c-format
+msgid "Cache_decode_data: got all data -- decodinging %s\n"
+msgstr "Cache_decode_data: 收到全部資料 -- 正在解碼 %s\n"
+
+#: src/cache.c:840
+msgid "Cache_decode_data: not gzip data!\n"
+msgstr "Cache_decode_data: 沒有壓縮資料!\n"
+
+#: src/cache.c:846
+msgid "Cache_decode_data: invalid gzip data!\n"
+msgstr "Cache_decode_data: 無效的壓縮資料!\n"
+
+#: src/cache.c:898
+msgid "not x-gzip\n"
+msgstr "沒有 X-壓縮資料\n"
+
+#: src/cache.c:931
+#, c-format
+msgid ""
+"Content-Length does NOT match message body,\n"
+" at: %s\n"
+msgstr ""
+"發現不符長度的內容,\n"
+" 在: %s\n"
+
+#: src/cache.c:950
+msgid "Cache_process_io Op = IOAbort; not implemented yet\n"
+msgstr ""
+
+#: src/cache.c:1004
+#, c-format
+msgid "ERROR: redirect loop for: %s"
+msgstr "錯誤: 重導向回圈予: %s"
+
+#: src/cache.c:1015
+#, c-format
+msgid ""
+">>>Redirect from: %s\n"
+" to %s\n"
+msgstr ""
+">>>重導向從: %s\n"
+" 至 %s\n"
+
+#: src/cache.c:1035
+msgid ">>>Image redirection without entity-content<<<\n"
+msgstr ">>>重導向影像,在無實質主題下<<<\n"
+
+#: src/cache.c:1037
+msgid ">>>Image redirection with entity-content<<<\n"
+msgstr ">>>重導向影像,在實質主題下<<<\n"
+
+#: src/cache.c:1103
+msgid "FATAL!:*** >>>> Cache_process_queue Caught busy!!!\n"
+msgstr "重大錯誤:*** >>>> Cache_process_queue 系統繁忙 !!!\n"
+
+#: src/cache.c:1111
+#, c-format
+msgid "Content-Type '%s' doesn't match the real data.\n"
+msgstr ""
+
+#: src/cache.c:1140
+#, c-format
+msgid "HTTP warning: Content-Type '%s' doesn't match the real data."
+msgstr ""
+
+#: src/cache.c:1177
+#, fuzzy, c-format
+msgid "Unhandled MIME type: <%s>\n"
+msgstr ""
+"\n"
+"  不明的 MIME 類型: <%s>\n"
+
+#: src/cache.c:1202
+msgid "Client Callback is NULL"
+msgstr ""
+
+#: src/cache.c:1303
+msgid "WARNING: Cache_stop_client, inexistent client\n"
+msgstr ""
+
+#: src/cache.c:1445 src/capi.c:428 src/capi.c:481 src/capi.c:536
+#: src/capi.c:570 src/IO/dpi.c:720 src/IO/dpi.c:760
+msgid " Not implemented\n"
+msgstr "沒有實行\n"
+
+#: src/capi.c:229
+msgid "Capi_verify_dpi_url_request: Permission Denied!\n"
+msgstr ""
+
+#: src/capi.c:324
+#, c-format
+msgid "  reload=%d URL_E2EReload=%d\n"
+msgstr ""
+
+#: src/capi.c:389
+msgid " ERROR: [a_Capi_dpi_send_cmd] No open connection found\n"
+msgstr ""
+
+#: src/capi.c:457
+msgid "ERROR: can't start dpid daemon!"
+msgstr ""
+
+#: src/capi.c:492
+msgid "  ** Capi 2F catched an invalid 'web' structure\n"
+msgstr ""
+
+#: src/capi.c:552
+msgid " Error with pipe\n"
+msgstr ""
+
+#: src/commands.c:166
+msgid "View Source"
+msgstr "檢視源始檔"
+
+#: src/commands.c:183
+msgid "Detected HTML errors"
+msgstr "發現  HTML 錯誤"
+
+#: src/commands.c:265
+msgid "Stopped"
+msgstr "已停止"
+
+#: src/dillo.c:109
+msgid ""
+"  -x, --xid XID          Open first Dillo window in an existing\n"
+"                         GtkSocket which window ID is XID (decimal)."
+msgstr ""
+
+#: src/dillo.c:112
+msgid "  -v, --version          Display version info and exit."
+msgstr ""
+
+#: src/dillo.c:114
+msgid "  -h, --help             Display this help text and exit."
+msgstr ""
+
+#: src/dillo.c:116
+msgid ""
+"  -f, --fullwindow       Start in full window mode: hide address bar,\n"
+"                         navigation buttons, menu, and status bar."
+msgstr ""
+
+#: src/dillo.c:119
+msgid "  -l, --local            Don't follow links for this URL(s)."
+msgstr ""
+
+#: src/dillo.c:121
+msgid ""
+"  -g, -geometry GEO      Set initial window position where GEO is\n"
+"                         <width>x<height>{+-}<x>{+-}<y>"
+msgstr ""
+
+#: src/dillo.c:125
+msgid ""
+"  -D, --debug-rendering  Draw additionaly several lines in a web page,\n"
+"                         representing its structure. For debugging. "
+msgstr ""
+
+#: src/dillo.c:129
+msgid "  -R, --rcfile FILE  Use alternative rcfile."
+msgstr ""
+
+#: src/dillo.c:266
+#, c-format
+msgid ""
+"Error: the XID must be an unsigned decimal numerical value.\n"
+"The offending value was: %s\n"
+msgstr ""
+
+#: src/dillo.c:284
+msgid "Error in command line options.\n"
+msgstr ""
+
+#: src/dillo.c:291
+#, c-format
+msgid "Setting gtk charset to %s...\n"
+msgstr ""
+
+#: src/dillo.c:395
+#, fuzzy
+msgid "Dillo: normal exit!\n"
+msgstr "Dillo: 找尋字串"
+
+#: src/dillo.c:409
+#, c-format
+msgid "Dillo: error creating directory %s: %s\n"
+msgstr ""
+
+#: src/dillo.c:412
+#, c-format
+msgid "Dillo: error reading %s: %s\n"
+msgstr ""
+
+#: src/dillo.c:461
+#, c-format
+msgid "Option %s requires %d argument(s)\n"
+msgstr ""
+
+#: src/dillo.c:496
+msgid ""
+"\n"
+"Usage: dillo [OPTIONS] [URL|FILE]...\n"
+"Options:\n"
+msgstr ""
+
+#: src/dillo.c:503
+#, c-format
+msgid "  %s, %s   *Undocumented*\n"
+msgstr ""
+
+#: src/dillo.c:506
+msgid ""
+"  URL                    URL to browse.\n"
+"  FILE                   Local FILE to view.\n"
+msgstr ""
+
+#: src/html.c:182
+#, c-format
+msgid "HTML warning: line %d, "
+msgstr ""
+
+#: src/html.c:213
+#, c-format
+msgid "URL has %d illegal character%s [%d space%s]\n"
+msgstr ""
+
+#: src/html.c:216
+#, c-format
+msgid "URL has %d illegal character%s [%d in (00-1F or 7F)]\n"
+msgstr ""
+
+#: src/html.c:219
+#, c-format
+msgid "URL has %d illegal character%s [%d space%s and %d in (00-1F or 7F)]\n"
+msgstr ""
+
+#: src/html.c:1226
+msgid "numeric character reference out of range\n"
+msgstr ""
+
+#: src/html.c:1234
+msgid "numeric character reference without trailing ';'\n"
+msgstr ""
+
+#: src/html.c:1246
+#, c-format
+msgid "undefined character entity '%s'\n"
+msgstr ""
+
+#: src/html.c:1254
+msgid "character entity reference without trailing ';'\n"
+msgstr ""
+
+#: src/html.c:1262
+msgid "code positions 128-159 are not defined for ISO Latin-1\n"
+msgstr ""
+
+#: src/html.c:1270
+msgid "literal '&'\n"
+msgstr ""
+
+#: src/html.c:1379
+msgid "TAB character inside <PRE>\n"
+msgstr ""
+
+#: src/html.c:1615
+#, c-format
+msgid "  - forcing close of open tag: <%s>\n"
+msgstr ""
+
+#: src/html.c:1624
+#, c-format
+msgid "unexpected closing tag: </%1$s>. -- expected </%2$s>\n"
+msgstr ""
+
+#: src/html.c:1696
+#, c-format
+msgid "Garbage after length: %s\n"
+msgstr ""
+
+#: src/html.c:1715
+msgid "color is not in \"#RRGGBB\" format\n"
+msgstr ""
+
+#: src/html.c:1735
+#, c-format
+msgid "'%s' value is not of the form [A-Za-z][A-Za-z0-9:_.-]*\n"
+msgstr ""
+
+#: src/html.c:1839
+msgid "HTML element was already open\n"
+msgstr ""
+
+#: src/html.c:1866
+msgid "HEAD element must go before the BODY section\n"
+msgstr ""
+
+#: src/html.c:1876
+msgid "HEAD element was already open\n"
+msgstr ""
+
+#: src/html.c:1889
+msgid "HEAD section lacks the TITLE element\n"
+msgstr ""
+
+#: src/html.c:1917
+msgid "the TITLE element must be inside the HEAD section\n"
+msgstr ""
+
+#: src/html.c:1986
+msgid "BODY element was already open\n"
+msgstr ""
+
+#: src/html.c:1991
+msgid "unclosed HEAD element\n"
+msgstr ""
+
+#: src/html.c:2187
+msgid "<td> or <th> outside <table>\n"
+msgstr ""
+
+#: src/html.c:2191
+msgid "<td> or <th> outside <tr>\n"
+msgstr ""
+
+#: src/html.c:2309
+msgid "Invalid HTML syntax: <tr> outside <table>\n"
+msgstr ""
+
+#: src/html.c:2367
+msgid "<noframes> outside of <frameset>!!!\n"
+msgstr ""
+
+#: src/html.c:2375
+msgid "<noframe> is illegal tag !!! use <noframes>.\n"
+msgstr ""
+
+#: src/html.c:2562
+msgid "<frame> outside of <frameset>\n"
+msgstr ""
+
+#: src/html.c:2565
+msgid "<frame> inside of <noframes>\n"
+msgstr ""
+
+#: src/html.c:2568
+msgid "<frame> inside of <iframe>\n"
+msgstr ""
+
+#: src/html.c:2620
+msgid "incorrectly placed <frameset>\n"
+msgstr ""
+
+#: src/html.c:2636
+msgid "<frameset> inside of <noframes>\n"
+msgstr ""
+
+#: src/html.c:2641
+msgid "<frameset> inside of <iframe>\n"
+msgstr ""
+
+#: src/html.c:3123
+msgid "  Html_tag_open_img: server-side map (ISMAP)\n"
+msgstr ""
+
+#: src/html.c:3149
+msgid "nested <map>\n"
+msgstr ""
+
+#: src/html.c:3201
+msgid "usemap coords MUST be separated with ','\n"
+msgstr ""
+
+#: src/html.c:3245
+msgid "nohref"
+msgstr ""
+
+#: src/html.c:3284
+msgid "link depends on javascript()\n"
+msgstr ""
+
+#: src/html.c:3300
+#, c-format
+msgid "Registering ANCHOR: %s\n"
+msgstr ""
+
+#: src/html.c:3305
+msgid "Anchor names must be unique within the document\n"
+msgstr ""
+
+#: src/html.c:3512
+msgid "it is strongly recommended using <UL> instead of <MENU>\n"
+msgstr ""
+
+#: src/html.c:3574
+msgid "<li> outside <ul> or <ol>\n"
+msgstr ""
+
+#: src/html.c:3770
+msgid "nested forms\n"
+msgstr ""
+
+#: src/html.c:3817
+msgid "FORM lacks a Submit button\n"
+msgstr ""
+
+#: src/html.c:3819
+msgid " (added a submit button internally)\n"
+msgstr ""
+
+#: src/html.c:3923
+msgid "META elements must be inside the HEAD section\n"
+msgstr ""
+
+#: src/html.c:3975
+#, c-format
+msgid ""
+"The NON-STANDARD meta refresh tag. The HTML 4.01 SPEC (sec 7.4.4) recommends "
+"explicitly to avoid it. The author wanted you to go <%s>\n"
+msgstr ""
+
+#: src/html.c:4345
+msgid "Html_submit_form: Method unknown\n"
+msgstr ""
+
+#: src/html.c:4427
+msgid "Html_input_image: unable to create image submit.\n"
+msgstr ""
+
+#: src/html.c:4449
+msgid "input camp outside <form>\n"
+msgstr ""
+
+#: src/html.c:4529
+msgid "submit"
+msgstr "提交"
+
+#: src/html.c:4536 config/dillocfg.c:79
+msgid "Reset"
+msgstr "重設"
+
+#: src/html.c:4546
+msgid "Submit"
+msgstr "提交"
+
+#: src/html.c:4563
+msgid "An input of the type \"file\" wasn't rendered!\n"
+msgstr ""
+
+#: src/html.c:4737
+msgid "<textarea> outside <form>\n"
+msgstr ""
+
+#: src/html.c:4742
+msgid "nested <textarea>\n"
+msgstr ""
+
+#: src/html.c:4814
+msgid "<select> outside <form>\n"
+msgstr ""
+
+#: src/html.c:4818
+msgid "nested <select>\n"
+msgstr ""
+
+#: src/html.c:5042
+msgid "base URI is relative (it MUST be absolute)\n"
+msgstr ""
+
+#: src/html.c:5049
+msgid "the BASE element must appear in the HEAD section\n"
+msgstr ""
+
+#: src/html.c:5400
+#, c-format
+msgid "<%1$s> is not allowed to contain <%2$s>. -- closing <%3$s>\n"
+msgstr ""
+
+#: src/html.c:5515
+#, c-format
+msgid "<pre> is not allowed to contain <%s>\n"
+msgstr ""
+
+#: src/html.c:5537
+msgid "'id' and 'name' attribute of <a> tag differ\n"
+msgstr ""
+
+#: src/html.c:5764
+msgid "Html_write_raw : bufsize is negative!\n"
+msgstr ""
+
+#: src/html.c:5842
+msgid "attribute lacks closing quote\n"
+msgstr ""
+
+#: src/html.c:5850
+#, c-format
+msgid "<%s> element lacks its closing '>'\n"
+msgstr ""
+
+#: src/html.c:6144
+msgid "could not allocate character encoding converter"
+msgstr ""
+
+#: src/misc.c:455
+msgid "Untitled"
+msgstr "未命名"
+
+#: src/interface.c:249
+msgid "Selection retrieval failed\n"
+msgstr "選擇回收失敗\n"
+
+#: src/interface.c:363
+msgid "Clear the URL box (middle-click to paste an URL)."
+msgstr "清空位址欄(點擊中鍵)."
+
+#: src/interface.c:385
+msgid "Search the Web"
+msgstr "搜尋網頁"
+
+#: src/interface.c:417 src/menu.c:231 src/menu.c:280
+msgid "Back"
+msgstr "返回"
+
+#: src/interface.c:421
+msgid "Go to previous page (right-click for menu)."
+msgstr "回到上一頁(右擊選單)."
+
+#: src/interface.c:450 src/menu.c:233 src/menu.c:282
+msgid "Forward"
+msgstr "往前"
+
+#: src/interface.c:454
+msgid "Go to next page (right-click for menu)."
+msgstr "移至下一頁(右擊選單)."
+
+#: src/interface.c:481
+msgid "Home"
+msgstr "首頁"
+
+#: src/interface.c:485
+msgid "Go to the Home page"
+msgstr "移至首頁"
+
+#: src/interface.c:499 config/dillocfg.c:80
+msgid "Reload"
+msgstr "重載"
+
+#: src/interface.c:500
+msgid "Reload this page"
+msgstr "重新載入"
+
+#: src/interface.c:512 config/dillocfg.c:81
+msgid "Save"
+msgstr "儲存"
+
+#: src/interface.c:513
+msgid "Save this page"
+msgstr "儲存網頁"
+
+#: src/interface.c:520 src/menu.c:235 src/menu.c:284
+msgid "Stop"
+msgstr "停止"
+
+#: src/interface.c:521
+msgid "Stop the current transfer"
+msgstr "停止當前的傳送"
+
+#: src/interface.c:534
+msgid "Book"
+msgstr "書籤"
+
+#: src/interface.c:538
+msgid "View bookmarks"
+msgstr "檢視書籤"
+
+#: src/interface.c:655 src/interface.c:826
+msgid "Hide Controls"
+msgstr "隱藏控制欄"
+
+#: src/interface.c:655 src/interface.c:826
+msgid "Show Controls"
+msgstr "顯示控制欄"
+
+#: src/interface.c:929
+msgid "Show HTML bugs (right-click for menu)."
+msgstr "顯示 HTML 錯誤(右擊選單)."
+
+#: src/interface.c:1231
+#, c-format
+msgid "Warning: search_url ends with '%%'\n"
+msgstr "警告: search_url 結尾為 '%%'\n"
+
+#: src/interface.c:1233
+#, c-format
+msgid "Warning: illegal specifier '%%%c' in search_url\n"
+msgstr "警告: 在 search_url 中,有非法的指定符 '%%%c'\n"
+
+#: src/interface.c:1298
+msgid "Dillo: Open File"
+msgstr "Dillo: 開啟檔案"
+
+#: src/interface.c:1374
+msgid "Clear"
+msgstr "清除"
+
+#: src/interface.c:1382 src/interface.c:1536 src/nav.c:453
+msgid "Cancel"
+msgstr "取消"
+
+#: src/interface.c:1513
+msgid "User Name:"
+msgstr "用戶名稱:"
+
+#: src/interface.c:1520
+msgid "Password:"
+msgstr "密碼:"
+
+#: src/interface.c:1529 src/interface.c:1604 src/interface.c:2073
+#: src/nav.c:453
+msgid "OK"
+msgstr "確定"
+
+#: src/interface.c:1566
+msgid "Dillo: Enter Authentication"
+msgstr "Dillo: 進入驗証"
+
+#: src/interface.c:1586
+msgid "Dillo: Question"
+msgstr "Dillo: 問題"
+
+#: src/interface.c:1602
+msgid "Dillo: Open URL"
+msgstr "Dillo: 開啟網頁"
+
+#: src/interface.c:1626
+#, c-format
+msgid "File saved (%d Bytes)"
+msgstr "檔案已存入(%d Bytes)"
+
+#: src/interface.c:1708
+#, c-format
+msgid "Error trying to save: %s\n"
+msgstr "錯誤於儲存: %s\n"
+
+#: src/interface.c:1761
+msgid "Dillo: Save URL as File..."
+msgstr "Dillo: 儲存網頁為..."
+
+#: src/interface.c:1788
+msgid "Dillo: Save link as File..."
+msgstr "Dillo: 儲存連結為..."
+
+#: src/interface.c:1843 src/interface.c:1857
+msgid "Dillo: Find text"
+msgstr "Dillo: 找尋字串"
+
+#: src/interface.c:1844 src/interface.c:1850
+#, c-format
+msgid "Cannot find \"%s\"."
+msgstr "找不到 \"%s\"."
+
+#: src/interface.c:1858
+#, c-format
+msgid "No further occurence of \"%s\". Restarting from the beginning."
+msgstr "找不到更多符合 \"%s\". 重開端再找尋"
+
+#: src/interface.c:1866
+#, c-format
+msgid "(Find) \"%s\": restart from beginning"
+msgstr "(找尋) \"%s\": 重開端再找尋 "
+
+#: src/interface.c:1879
+#, c-format
+msgid "(Find) \"%s\""
+msgstr "(找尋) \"%s\""
+
+#: src/interface.c:1885
+msgid "Unexpected return from a_Dw_gtk_scrolled_window_search()\n"
+msgstr "意外回傳從 a_Dw_gtk_scrolled_window_search()\n"
+
+#: src/interface.c:1937
+msgid "press <Enter> to (repeat) search, <Esc> to close search"
+msgstr "按 <Enter> 重新搜尋, <Esc> 退出"
+
+#: src/interface.c:1938 src/interface.c:2031
+msgid "Search"
+msgstr "搜尋"
+
+#: src/interface.c:1940 src/interface.c:1941 src/interface.c:1977
+msgid "Case sensitive"
+msgstr "區分大小寫"
+
+#: src/interface.c:1975
+msgid "Dillo: Find text in page"
+msgstr "Dillo: 在頁面中找尋文字"
+
+#: src/interface.c:1978
+msgid "Find"
+msgstr "找尋"
+
+#: src/interface.c:2029
+msgid "Dillo"
+msgstr "Dillo"
+
+#: src/interface.c:2029
+msgid "Dillo: Search the Web"
+msgstr "Dillo: 搜尋網頁"
+
+#: src/interface.c:2066
+#, c-format
+msgid "Dillo: Enter proxy password for '%s'"
+msgstr "Dillo: 輸入 '%s' 的伺服器密碼"
+
+#: src/interface.c:2151
+msgid "Close"
+msgstr "關閉"
+
+#: src/interface.c:2226
+msgid "close"
+msgstr "關閉"
+
+#: src/nav.c:383
+#, c-format
+msgid "Unhandled switch type %d in a_Nav_jump_callback in src/nav.c\n"
+msgstr ""
+
+#: src/nav.c:452
+msgid "Repost form data?"
+msgstr "再列出表單資料?"
+
+#: src/menu.c:173
+msgid "_File"
+msgstr "檔案(_F)"
+
+#: src/menu.c:174
+msgid "_New Window"
+msgstr "新窗口(_N)"
+
+#: src/menu.c:177
+msgid "New _Tab"
+msgstr "新分頁(_T)"
+
+#: src/menu.c:181
+msgid "_Open File..."
+msgstr "開啟檔案(_O)..."
+
+#: src/menu.c:183
+msgid "Open _URL..."
+msgstr "開啟位址(_U)..."
+
+#: src/menu.c:189
+msgid "Close Window"
+msgstr "關閉窗口"
+
+#: src/menu.c:192 src/menu.c:359
+msgid "Close Tab"
+msgstr "關閉分頁"
+
+#: src/menu.c:196
+msgid "Exit Dillo"
+msgstr "關閉 Dillo"
+
+#: src/menu.c:200
+msgid "_View"
+msgstr "檢視(_V)"
+
+#: src/menu.c:202
+msgid "Previous tab"
+msgstr "上一分頁"
+
+#: src/menu.c:204
+msgid "Next tab"
+msgstr "下一分頁"
+
+#: src/menu.c:208
+msgid "_Options..."
+msgstr "選項(_O)..."
+
+#: src/menu.c:228
+msgid "PAGE OPTIONS"
+msgstr "頁面選項"
+
+#: src/menu.c:237 src/menu.c:286
+msgid "_Reload"
+msgstr "重載(_R)"
+
+#: src/menu.c:241
+msgid "View page So_urce"
+msgstr "檢視源始檔(_S)"
+
+#: src/menu.c:243
+msgid "View page Bugs"
+msgstr "檢視頁面錯誤"
+
+#: src/menu.c:244
+msgid "_Bookmark this Page"
+msgstr "加進書籤(_B)"
+
+#: src/menu.c:247
+msgid "Duplicate this Page"
+msgstr "複製至新窗口"
+
+#: src/menu.c:250
+msgid "Duplicate this tab"
+msgstr "複製至新分頁"
+
+#: src/menu.c:254
+msgid "_Find Text"
+msgstr "找尋文字(_F)"
+
+#: src/menu.c:257
+msgid "Jump to..."
+msgstr "跳至..."
+
+#: src/menu.c:258
+msgid "This Frame..."
+msgstr "此框架..."
+
+#: src/menu.c:259
+msgid "This Frameset..."
+msgstr "此框架佈局..."
+
+#: src/menu.c:262
+msgid "Save Page As..."
+msgstr "儲存為..."
+
+#: src/menu.c:277
+msgid "FRAME OPTIONS"
+msgstr "框架選項"
+
+#: src/menu.c:290
+msgid "View frame Source"
+msgstr "檢視框架源始檔"
+
+#: src/menu.c:292
+msgid "Bookmark this Frame"
+msgstr "框架加進書籤"
+
+#: src/menu.c:294
+msgid "Reload this Frame"
+msgstr "重新載入"
+
+#: src/menu.c:297
+msgid "Show only this Frame"
+msgstr "只顯示此框架"
+
+#: src/menu.c:299
+msgid "Open Frame in new Window"
+msgstr "在新窗口開啟框架"
+
+#: src/menu.c:302
+msgid "Open Frame in new Tab"
+msgstr "在新分頁開啟框架"
+
+#: src/menu.c:306
+msgid "_Find Text in this Frame..."
+msgstr "於框架找尋字串(_F)..."
+
+#: src/menu.c:309 src/menu.c:340
+msgid "Save Frame As..."
+msgstr "儲存框架為..."
+
+#: src/menu.c:325
+msgid "FRAMESET OPTIONS"
+msgstr "框架佈局選項"
+
+#: src/menu.c:327
+msgid "View Frameset Source"
+msgstr "檢視源始檔"
+
+#: src/menu.c:329
+msgid "Bookmark this Frameset"
+msgstr "加進書籤"
+
+#: src/menu.c:331
+msgid "Reload this Frameset"
+msgstr "重新載入"
+
+#: src/menu.c:334
+msgid "Show only this Frameset"
+msgstr "只顯示此框架"
+
+#: src/menu.c:337
+msgid "_Find Text in this Frameset..."
+msgstr "找尋字串(_F)..."
+
+#: src/menu.c:357
+msgid "TAB OPTIONS"
+msgstr "分頁選項"
+
+#: src/menu.c:361
+msgid "New Tab"
+msgstr "新分頁"
+
+#: src/menu.c:363
+msgid "Reload Tab"
+msgstr "重載分頁"
+
+#: src/menu.c:460
+msgid "FOLLOWING PAGES"
+msgstr "下一頁"
+
+#: src/menu.c:463
+msgid "PREVIOUS PAGES"
+msgstr "上一頁"
+
+#: src/menu.c:531
+msgid "LINK OPTIONS"
+msgstr "連結選項"
+
+#: src/menu.c:533
+msgid "Open Link in New Window"
+msgstr "在新窗口開啟連結"
+
+#: src/menu.c:536
+msgid "Open Link in New Tab"
+msgstr "在新分頁開啟連結"
+
+#: src/menu.c:539
+msgid "Open Link"
+msgstr "開啟連結"
+
+#: src/menu.c:542
+msgid "Bookmark this Link"
+msgstr "連結加進書籤"
+
+#: src/menu.c:544
+msgid "Copy Link location"
+msgstr "複製連結位址"
+
+#: src/menu.c:549
+msgid "Save Link As..."
+msgstr "儲存連結為..."
+
+#: src/menu.c:553
+msgid "Image Menu..."
+msgstr "影像選單.."
+
+#: src/menu.c:571
+msgid "IMAGE OPTIONS"
+msgstr "影像選項"
+
+#: src/menu.c:573
+msgid "Isolate Image"
+msgstr "檢視影像"
+
+#: src/menu.c:575
+msgid "Open Image in New Window"
+msgstr "在新窗口開啟影像"
+
+#: src/menu.c:578
+msgid "Open Image in New Tab"
+msgstr "在新分頁開啟影像"
+
+#: src/menu.c:581
+msgid "Open Image"
+msgstr "開啟影像"
+
+#: src/menu.c:584
+msgid "Bookmark this Image"
+msgstr "將影像加入書籤"
+
+#: src/menu.c:586
+msgid "Copy Image location"
+msgstr "複製影像位址"
+
+#: src/menu.c:591
+msgid "Save Image As..."
+msgstr "儲存影像為..."
+
+#: src/menu.c:605
+msgid "BUG METER OPTIONS"
+msgstr "錯誤偵測選項"
+
+#: src/menu.c:607
+msgid "Validate URL with W3C"
+msgstr "以 W3C 錯誤偵測"
+
+#: src/menu.c:609
+msgid "Validate URL with WDG"
+msgstr "以 WDG 錯誤偵測"
+
+#: src/menu.c:612
+msgid "About Bug Meter..."
+msgstr "關於錯誤偵測..."
+
+#: src/prefs.c:431
+msgid "Error: Can't open specified config file. default file is used.\n"
+msgstr ""
+
+#: src/i18n.c:359
+msgid "charset detect may mistake...\n"
+msgstr "文字檢測可能錯誤...\n"
+
+#: src/i18n.c:447
+msgid "<meta> outside of <head>!\n"
+msgstr ""
+
+#: src/i18n.c:493
+msgid "all ascii code\n"
+msgstr "全為 ASCII 編碼\n"
+
+#: src/i18n.c:526
+msgid "unable to fully convert between character encodings\n"
+msgstr "未能完全轉換文字間的編碼\n"
+
+#: src/i18n.c:565
+msgid "no support enc\n"
+msgstr "不支援的編碼\n"
+
+#: src/tab.c:293 src/tab.c:425 dpi/bookmarks.c:1653
+msgid "(Untitled)"
+msgstr "(無題)"
+
+#: src/IO/https.c:168
+msgid "--Error detected\n"
+msgstr "--錯誤檢測\n"
+
+#: src/IO/https.c:173 src/IO/https.c:204 src/IO/http.c:294
+msgid "ERROR: unable to connect to remote host"
+msgstr "錯誤: 未能連接遠端主機"
+
+#: src/IO/https.c:179 src/IO/http.c:309
+msgid "--Connection established\n"
+msgstr "--連線已建立\n"
+
+#: src/IO/https.c:280 src/IO/http.c:417
+#, c-format
+msgid "Sending query to %s..."
+msgstr "正送出請求至 %s..."
+
+#: src/IO/https.c:333 src/IO/http.c:486
+#, c-format
+msgid "DNS solving %s"
+msgstr "DNS 正查釋域名 %s"
+
+#: src/IO/https.c:363
+msgid " HTTPS: new abort handler! #2\n"
+msgstr ""
+
+#: src/IO/https.c:365 src/IO/https.c:387 src/IO/http.c:301 src/IO/http.c:520
+#: src/IO/http.c:551
+#, c-format
+msgid "ERROR: %s"
+msgstr "錯誤: %s"
+
+#: src/IO/https.c:386
+msgid " HTTP: new abort handler! #1\n"
+msgstr ""
+
+#: src/IO/https.c:400 src/IO/http.c:564
+#, c-format
+msgid "ERROR: Dns can't solve %s"
+msgstr "錯誤: Dns 未能查釋域名 %s"
+
+#: src/IO/https.c:421 src/IO/http.c:591
+msgid "Query sent, waiting for reply..."
+msgstr "請求已送出, 正等侯回覆中..."
+
+#: src/IO/http.c:190
+#, c-format
+msgid "Getting %1$s, referer %2$s\n"
+msgstr "提取 %1$s 中, 因應 %2$s\n"
+
+#: src/IO/http.c:259
+#, c-format
+msgid ""
+"Query:\n"
+"%s"
+msgstr ""
+"查詢: \n"
+"%s"
+
+#: src/IO/http.c:286
+msgid "--Connection broken\n"
+msgstr "--連線被中斷 \n"
+
+#: src/IO/http.c:342
+#, c-format
+msgid "Http_connect_socket ERROR: %s\n"
+msgstr "連接端口 錯誤: %s\n"
+
+#: src/IO/http.c:363 src/IO/http.c:377
+#, c-format
+msgid "Connecting to %s\n"
+msgstr "正在連接 %s\n"
+
+#: src/IO/http.c:396
+msgid "Contacting host..."
+msgstr "正在聯系主機..."
+
+#: src/IO/http.c:529
+msgid "Http: OpAbort [1B]\n"
+msgstr "Http: OpAbort [1B]\n"
+
+#: src/IO/dpi.c:188
+msgid "ERROR: [Dpi_get_token] Can't find token start\n"
+msgstr ""
+
+#: src/IO/dpi.c:221
+msgid "ERROR: [Dpi_get_token] *** NULL code here ***\n"
+msgstr ""
+
+#: src/IO/dpi.c:312
+msgid "Dpi: [Dpi_process_io] IOClose\n"
+msgstr ""
+
+#: src/IO/dpi.c:338
+#, c-format
+msgid "Dpi_start_dpid (child): %s\n"
+msgstr ""
+
+#: src/IO/dpi.c:348 src/IO/dpi.c:363
+#, c-format
+msgid "Dpi_start_dpid: %s\n"
+msgstr ""
+
+#: src/IO/dpi.c:359
+#, c-format
+msgid "Dpi_start_dpid: n = %d\n"
+msgstr ""
+
+#: src/IO/dpi.c:386
+#, c-format
+msgid "Dpi_check_uds: %1$s %2$s\n"
+msgstr ""
+
+#: src/IO/dpi.c:673
+msgid "dpi.c: ERROR, can't start dpi daemon\n"
+msgstr ""
+
+#: src/IO/dpi.c:686
+msgid "a_Dpi_ccc: OpAbort[2B], Not implemented\n"
+msgstr ""
+
+#: src/IO/dpi.c:790 src/IO/dpi.c:794
+#, c-format
+msgid "a_Dpi_bye_dpid: %s\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:106
+#, c-format
+msgid "The dpi_socket_dir file does not exist\n"
+msgstr "dpi_socket_dir 檔案並不存在\n"
+
+#: dpid/dpi_socket_dir.c:110 dpid/dpi_socket_dir.c:114
+#, c-format
+msgid "debug_msg - init_sockdir: The socket directory "
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:111
+#, c-format
+msgid "%s exists and is OK\n"
+msgstr "%s 存在並可正常使用\n"
+
+#: dpid/dpi_socket_dir.c:115
+#, c-format
+msgid "%s does not exist or is not a directory\n"
+msgstr "%s 不存在且不是一個目錄\n"
+
+#: dpid/dpi_socket_dir.c:124
+#, c-format
+msgid " - Failed to create dpi socket directory\n"
+msgstr ""
+
+#: dpid/dpi_socket_dir.c:127
+#, c-format
+msgid " - failed to save %s\n"
+msgstr ""
+
+#: dpid/main.c:59 dpid/main.c:66 dpid/main.c:77 dpid/main.c:85 dpid/main.c:99
+#: dpid/main.c:104 dpid/main.c:109
+#, c-format
+msgid "ERROR in child proc for %s\n"
+msgstr ""
+
+#: dpid/main.c:166
+#, c-format
+msgid ": dpid failed to parse cmd in %s\n"
+msgstr ""
+
+#: dpid/main.c:265
+#, c-format
+msgid "Failed to create socket directory\n"
+msgstr ""
+
+#: dpid/main.c:275
+#, c-format
+msgid "dpid refuses to start, possibly because:\n"
+msgstr ""
+
+#: dpid/main.c:276
+#, c-format
+msgid "\t1) An instance of dpid is already running.\n"
+msgstr ""
+
+#: dpid/main.c:277
+#, c-format
+msgid "\t2) A previous dpid didn't clean up on exit.\n"
+msgstr ""
+
+#: dpid/main.c:280
+msgid "init_srs_sockets failed\n"
+msgstr ""
+
+#: dpid/main.c:294
+#, c-format
+msgid "dpid started\n"
+msgstr ""
+
+#: dpid/main.c:340
+#, c-format
+msgid "accept on srs socket failed\n"
+msgstr ""
+
+#: dpid/main.c:341
+#, c-format
+msgid "service pending connections, and continue\n"
+msgstr ""
+
+#: dpi/bookmarks.c:96
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td>&nbsp;Bookmarks::</td>\n"
+"    <td width='100%' align='right'>\n"
+"     [<a href='dpi:/bm/modify'>modify</a>]\n"
+"    </td></tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>書籤</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td><pre>&nbsp;書籤::</pre></td>\n"
+"    <td width='100%' align='right'>\n"
+"     <pre>[<a href='dpi:/bm/modify'>編輯</a>]</pre>\n"
+"    </td></tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+
+#: dpi/bookmarks.c:115
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td>&nbsp;Bookmarks :: modify</td></tr>\n"
+"  </table></td></tr>                            \n"
+"</table>                                        \n"
+"\n"
+"<form>\n"
+"<table width='100%' border='1' cellpadding='0'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='teal'>\n"
+"   <tr>\n"
+"    <td><b>Select&nbsp;an&nbsp;operation&nbsp;</b></td>\n"
+"    <td><select name='operation'>\n"
+"     <option value='none' selected>--\n"
+"     <option value='delete'>Delete\n"
+"     <option value='move'>Move\n"
+"     <option value='modify'>Modify\n"
+"     <option value='add_sec'>Add Section\n"
+"     <option value='add_url'>Add URL\n"
+"     </select></td>\n"
+"    <td><b>,&nbsp;mark&nbsp;its&nbsp;operands,&nbsp;and&nbsp;</b></td>\n"
+"    <td><input type='submit' name='submit' value='submit.'></td>\n"
+"    <td width='100%'></td>\n"
+"    </tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>書籤</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='#b4b4b4'>\n"
+"   <tr>\n"
+"    <td><pre>&nbsp;書籤 :: 編輯</pre></td></tr>\n"
+"  </table></td></tr>                            \n"
+"</table>                                        \n"
+"\n"
+"<form>\n"
+"<table width='100%' border='1' cellpadding='0'>\n"
+" <tr><td>\n"
+"  <table width='100%' bgcolor='teal'>\n"
+"   <tr>\n"
+"    <td><pre><b>選擇動作&nbsp;</b></pre></td>\n"
+"    <td><select name='operation'>\n"
+"     <option value='none' selected>--\n"
+"     <option value='delete'>刪除\n"
+"     <option value='move'>移動\n"
+"     <option value='modify'>修改\n"
+"     <option value='add_sec'>加入目錄\n"
+"     <option value='add_url'>加入 URL\n"
+"     </select></td>\n"
+"    <td><pre><b>套用已選動作</b></pre></td>\n"
+"    <td><input type='submit' name='submit' value='套用.'></td>\n"
+"    <td width='100%'></td>\n"
+"    </tr>\n"
+"  </table></td></tr>\n"
+"</table>\n"
+
+#: dpi/bookmarks.c:151
+msgid ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='2' cellpadding='4' cellspacing='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n"
+msgstr ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='2' cellpadding='4' cellspacing='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><pre>項目:</pre></td></tr></table></td></tr>\n"
+
+#: dpi/bookmarks.c:160
+msgid ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><small>Sections:</small></td></tr></table></td></tr>\n"
+msgstr ""
+"<table border='1' cellpadding='0' cellspacing='20' width='100%'>\n"
+" <tr valign='top'>\n"
+"  <td>\n"
+"   <table bgcolor='#b4b4b4' border='1'>\n"
+"    <tr><td>\n"
+"     <table width='100%' bgcolor='#b4b4b4'>\n"
+"      <tr><td><pre>項目:</pre></td></tr></table></td></tr>\n"
+
+#: dpi/bookmarks.c:243
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: add section\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+" <input type='hidden' name='operation' value='add_section'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><b>New&nbsp;section:</b></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+"\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>書籤</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;編輯書籤:: 加入項目</pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+" <input type='hidden' name='operation' value='add_section'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><pre><b>新加入項目:</b></pre></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>標題:</pre></td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='套用.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+"\n"
+
+#: dpi/bookmarks.c:283
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: update\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='modify2'>\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>書籤</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;編輯書籤:: 更新</pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='modify2'>\n"
+
+#: dpi/bookmarks.c:310
+#, c-format
+msgid ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td>%s</td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+msgstr ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>標題:</pre></td>\n"
+"   <td><input type='text' name='title%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td>%s</td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+
+#: dpi/bookmarks.c:323
+#, c-format
+msgid ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='s%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+msgstr ""
+"<tr><td>\n"
+" <table width='100%%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>標題:</pre></td>\n"
+"   <td><input type='text' name='s%d' size='64'\n"
+"        value='%s'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+
+#: dpi/bookmarks.c:336
+#, c-format
+msgid ""
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+msgstr ""
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='套用.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+
+#: dpi/bookmarks.c:346
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<html>\n"
+"<head>\n"
+"<title>Bookmarks</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'>&nbsp;Modify bookmarks:: add url\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='add_url2'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><b>Add&nbsp;url:</b></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td>Title:</td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td><input type='text' name='url' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='submit.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+msgstr ""
+"<html>\n"
+"<head>\n"
+"<title>書籤</title>\n"
+"</head>\n"
+"<body bgcolor='#778899' link='black' vlink='brown'>\n"
+"<table border='1' cellpadding='0' width='100%'>\n"
+" <tr><td colspan='2'>\n"
+"  <table bgcolor='#b4b4b4' width='100%'>\n"
+"   <tr><td bgcolor='#b4b4b4'><pre>&nbsp;編輯書籤:: 加入網頁</pre>\n"
+"   </td></tr></table></td></tr>\n"
+"</table>\n"
+"<br>\n"
+"<form>\n"
+"<input type='hidden' name='operation' value='add_url2'>\n"
+"<table border='1' width='100%'>\n"
+" <tr>\n"
+"  <td bgcolor='olive'><pre><b>加入網頁l:</b></pre></td>\n"
+"  <td bgcolor='white' width='100%'></td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='10'>\n"
+"<tr><td>\n"
+" <table width='100%' bgcolor='teal'>\n"
+"  <tr>\n"
+"   <td><pre>標題:</pre></td>\n"
+"   <td><input type='text' name='title' size='64'></td></tr>\n"
+"  <tr>\n"
+"   <td>URL:</td>\n"
+"   <td><input type='text' name='url' size='64'></td></tr>\n"
+" </table>\n"
+" </td></tr>\n"
+"</table>\n"
+"<table width='100%' cellpadding='4' border='0'>\n"
+"<tr><td bgcolor='#a0a0a0'>\n"
+" <input type='submit' name='submit' value='套用.'></td></tr>\n"
+"</table>\n"
+"</form>\n"
+"</body>\n"
+"</html>\n"
+
+#: dpi/bookmarks.c:691
+msgid "Unclassified"
+msgstr "未經分類"
+
+#: dpi/bookmarks.c:724
+#, c-format
+msgid "echo \":s0: Unclassified\" > %s"
+msgstr "echo \":s0: 未經分類\" > %s"
+
+#: dpi/bookmarks.c:786
+#, c-format
+msgid ""
+"Syntax error in bookmarks file:\n"
+" %s"
+msgstr ""
+"語法錯誤於書籤檔:\n"
+" %s"
+
+#: dpi/bookmarks.c:898
+msgid "Added bookmark!"
+msgstr "加進書籤!"
+
+#: dpi/bookmarks.c:1087
+msgid "Update&nbsp;sections:"
+msgstr "<pre>更新項目:</pre>"
+
+#: dpi/bookmarks.c:1107
+msgid "Update&nbsp;titles:"
+msgstr "<pre>更新標題:</pre>"
+
+#: dpi/bookmarks.c:1404
+msgid "Delete: you must mark what to delete!"
+msgstr "刪除: 請先選擇項目!"
+
+#: dpi/bookmarks.c:1410
+msgid "Move: you must mark a target section!"
+msgstr "移動: 請先選擇項目!"
+
+#: dpi/bookmarks.c:1412
+msgid "Move: can not move a section (yet)."
+msgstr "移動: 移動項目失敗!"
+
+#: dpi/bookmarks.c:1414
+msgid "Move: you must mark some urls, and a target section!"
+msgstr "移動: 請先選擇網頁及項目!"
+
+#: dpi/bookmarks.c:1419
+msgid "Modify: you must mark what to update!"
+msgstr "修改: 請先選擇要更新的項目!"
+
+#: dpi/bookmarks.c:1436
+msgid "Add url: only one target section is allowed!"
+msgstr "加入網頁: 只可選擇一個項目!"
+
+#: dpi/bookmarks.c:1443
+msgid "No operation, just do nothing!"
+msgstr "沒有指示,操作無效!"
+
+#: dpi/bookmarks.c:1446
+msgid "Sorry, not implemented yet."
+msgstr "操作尚未完成."
+
+#: dpi/bookmarks.c:1614
+msgid "Haven't got a full tag!\n"
+msgstr "找不到完整標籤!\n"
+
+#: dpi/bookmarks.c:1690
+#, fuzzy
+msgid ""
+"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n"
+"<HTML><body> Error on the bookmarks server...</body></html>"
+msgstr "<HTML><body> 書籤系統錯誤...</body></html>"
+
+#: config/dillocfg.c:82
+msgid "Quit"
+msgstr "退出"
+
+#: config/dillocfg.c:84 config/dillocfg.c:90
+msgid "Dillo Preferences"
+msgstr "偏好設定"
+
+#: config/dillocfg.c:113
+msgid "Interface"
+msgstr "介面"
+
+#: config/dillocfg.c:114
+msgid "  Font  "
+msgstr " 字型 "
+
+#: config/dillocfg.c:115
+msgid "  Color "
+msgstr " 顏色 "
+
+#: config/dillocfg.c:116
+msgid " Network "
+msgstr " 網絡 "
+
+#: config/dillocfg.c:118
+msgid "   Tab   "
+msgstr " 分頁 "
+
+#: config/dillocfg.c:121
+msgid "  Other  "
+msgstr " 其他 "
+
+#: config/dillocfg.c:329
+msgid "Add"
+msgstr "加入"
+
+#: config/dillocfg.c:330
+msgid "Delete"
+msgstr "刪除"
+
+#: config/dillocfg.c:336
+msgid "Address"
+msgstr "位址"
+
+#: config/dillocfg.c:337
+msgid "Rule"
+msgstr "規則"
+
+#: config/dillocfg.c:363 config/dillocfg.c:369
+#, c-format
+msgid "Read failed <%s>\n"
+msgstr "錯誤讀取 <%s>\n"
+
+#: config/dillocfg.c:450 config/dillocfg.c:458
+#, c-format
+msgid "can't write <%s>\n"
+msgstr "不能寫入 <%s>\n"
+
+#: config/dillocfg_token.c:60
+msgid "Window Size"
+msgstr "窗口大小"
+
+#: config/dillocfg_token.c:68
+msgid "HTTP Proxy"
+msgstr "代理伺服器"
+
+#: config/dillocfg_token.c:76
+msgid "HTTP Proxy User"
+msgstr "伺服器用戶"
+
+#: config/dillocfg_token.c:84
+msgid "NO Proxy"
+msgstr "沒有伺服器"
+
+#: config/dillocfg_token.c:92
+msgid "User-Agent"
+msgstr "瀏覽器-相容識別"
+
+#: config/dillocfg_token.c:100
+msgid "Send referer header"
+msgstr ""
+
+#: config/dillocfg_token.c:108
+msgid "Link color"
+msgstr "連結"
+
+#: config/dillocfg_token.c:116
+msgid "Visited color"
+msgstr "已到網頁"
+
+#: config/dillocfg_token.c:124
+msgid "BackGround color"
+msgstr "背景"
+
+#: config/dillocfg_token.c:132
+msgid "Allow white bg"
+msgstr "空白背景"
+
+#: config/dillocfg_token.c:140
+msgid "Force my colors"
+msgstr "使用自選顏色"
+
+#: config/dillocfg_token.c:148
+msgid "Contrast visited color"
+msgstr "加亮已到網頁顏色"
+
+#: config/dillocfg_token.c:156
+msgid "Text color"
+msgstr "文字顏色"
+
+#: config/dillocfg_token.c:164
+msgid "Use oblique"
+msgstr "兼容斜體"
+
+#: config/dillocfg_token.c:172
+msgid "Start Page"
+msgstr "起始頁"
+
+#: config/dillocfg_token.c:180
+msgid "HOMEPAGE"
+msgstr "首頁"
+
+#: config/dillocfg_token.c:188
+msgid "Search-engine's URL"
+msgstr "搜尋引擎網址"
+
+#: config/dillocfg_token.c:196
+msgid "Search-engine's charset"
+msgstr "搜尋引擎字體"
+
+#: config/dillocfg_token.c:204
+msgid "Show Tooltip"
+msgstr "顯示提示"
+
+#: config/dillocfg_token.c:212
+msgid "Panel Size"
+msgstr "板面大小"
+
+#: config/dillocfg_token.c:220
+msgid "Small icons"
+msgstr "小型圖示"
+
+#: config/dillocfg_token.c:228
+msgid "Limit text width"
+msgstr "限制文字寬度"
+
+#: config/dillocfg_token.c:236
+msgid "Limit font decoration"
+msgstr "限制文字裝飾"
+
+#: config/dillocfg_token.c:244
+msgid "Font factor"
+msgstr "文字系數"
+
+#: config/dillocfg_token.c:252
+msgid "Font Sizes"
+msgstr "文字大小"
+
+#: config/dillocfg_token.c:260
+msgid "W3C+heuristics"
+msgstr "W3C+試探程序"
+
+#: config/dillocfg_token.c:268
+msgid "Use dicache"
+msgstr "使用磁碟緩存"
+
+#: config/dillocfg_token.c:276
+msgid "Show Back"
+msgstr "顯示返回"
+
+#: config/dillocfg_token.c:284
+msgid "Show Forw"
+msgstr "顯示往前"
+
+#: config/dillocfg_token.c:292
+msgid "Show Home"
+msgstr "顯示首頁"
+
+#: config/dillocfg_token.c:300
+msgid "Show Reload"
+msgstr "顯示重載"
+
+#: config/dillocfg_token.c:308
+msgid "Show Save"
+msgstr "顯示儲存"
+
+#: config/dillocfg_token.c:316
+msgid "Show Stop"
+msgstr "顯示停止"
+
+#: config/dillocfg_token.c:324
+msgid "Show Bookmarks"
+msgstr "顯示書籤"
+
+#: config/dillocfg_token.c:332
+msgid "Show Menubar"
+msgstr "顯示選單攔"
+
+#: config/dillocfg_token.c:340
+msgid "Show ClearURL"
+msgstr "顯示清空位址"
+
+#: config/dillocfg_token.c:348
+msgid "Show URL box"
+msgstr "顯示位址欄"
+
+#: config/dillocfg_token.c:356
+msgid "Show Web Search"
+msgstr "顯示搜尋框"
+
+#: config/dillocfg_token.c:364
+msgid "Show Progress box"
+msgstr "顯示進度框"
+
+#: config/dillocfg_token.c:372
+msgid "Show Popup navigation"
+msgstr "顯示彈出瀏覽"
+
+#: config/dillocfg_token.c:380
+msgid "Fullwindow start"
+msgstr "全螢幕開始"
+
+#: config/dillocfg_token.c:388
+msgid "Transient dialogs"
+msgstr "短暫對話框"
+
+#: config/dillocfg_token.c:396
+msgid "Popup dialogs"
+msgstr "彈出對話框"
+
+#: config/dillocfg_token.c:404
+msgid "vw_aafontname"
+msgstr "一般字體(平滑化)"
+
+#: config/dillocfg_token.c:412
+msgid "fw_aafontname"
+msgstr "固定字體(平滑化)"
+
+#: config/dillocfg_token.c:420
+msgid "vw_fontname"
+msgstr "一般字體"
+
+#: config/dillocfg_token.c:428
+msgid "fw_fontname"
+msgstr "固定字體"
+
+#: config/dillocfg_token.c:436
+msgid "Generate submit"
+msgstr "發放提交"
+
+#: config/dillocfg_token.c:444
+msgid "Enterpress forces submit"
+msgstr "按 Enter 鍵提交"
+
+#: config/dillocfg_token.c:452
+msgid "Show debugging messsages"
+msgstr "顯示除錯訊息"
+
+#: config/dillocfg_token.c:460
+msgid "Show Extra Warnings"
+msgstr "顯示重大警告訊息"
+
+#: config/dillocfg_token.c:468
+msgid "Focus location on new"
+msgstr "聚焦位址於新窗口"
+
+#: config/dillocfg_token.c:476 config/dillocfg_token.c:484
+msgid "Accept Language"
+msgstr "接受語言"
+
+#: config/dillocfg_token.c:493
+msgid "Tab load in background"
+msgstr "在背景開啟分頁"
+
+#: config/dillocfg_token.c:501
+msgid "Tab close middle click"
+msgstr "以中鍵關閉分頁"
+
+#: config/dillocfg_token.c:509
+msgid "Tab instead of window"
+msgstr "以分頁替代窗口"
+
+#: config/dillocfg_token.c:517
+msgid "Tab bar show fullscreen"
+msgstr "分頁標題欄顯示全螢幕"
+
+#: config/dillocfg_token.c:525
+msgid "Tab bar show single tab"
+msgstr "分頁標題欄只顯示單一分頁"
+
+#: config/dillocfg_token.c:533
+msgid "Tab bar scroller"
+msgstr "顯示分頁標題欄卷軸"
+
+#: config/dillocfg_token.c:541
+msgid "Tab bar homogeneous"
+msgstr "分頁標題欄平均化"
+
+#: config/dillocfg_token.c:549
+msgid "Tab title compress"
+msgstr "簡化分頁標題"
+
+#: config/dillocfg_token.c:557
+msgid "Compress vowels"
+msgstr "壓縮母音字元"
+
+#: config/dillocfg_token.c:565
+msgid "Compress_common_prefixes"
+msgstr "壓縮標頭文字"
+
+#: config/dillocfg_token.c:574
+msgid "Default"
+msgstr "預設"
diff -pruN dillo-0.8.6/src/IO/DBIO.c dillo-0.8.6-i18n-misc-20060709/src/IO/DBIO.c
--- dillo-0.8.6/src/IO/DBIO.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/DBIO.c	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,290 @@
+/*
+ * File: DBIO.c
+ *
+ * Copyright (C) 2000, 2001 Jorge Arellano Cid <jcid@inf.utfsm.cl>
+ * Copyright (C) 2002       Jonathan P Springer <jonathan.springer@verizon.net>
+ *
+ * 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.
+ *
+ * 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
+ *
+ * In addition, as a special exception, Jorge Arellano Cid and Jonathan
+ * Springer give permission to link the code of this program with the OpenSSL
+ * library (or modified versions of OpenSSL that use the same license as
+ * OpenSSL), and distribute linked combinations including the two.  You must
+ * obey the GNU General Public License in all respects for all of the code
+ * used other than OpenSSL.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
+ * If you do not wish to do so, delete this exception from your version.  
+ *
+ */
+
+/*
+ * Dillo's signal driven BIO engine
+ */
+
+#include <config.h>
+
+#ifdef DILLO_SSL 
+
+#include <stdio.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#include <glib.h>
+#include <gdk/gdk.h>
+#include "../chain.h"
+#include "DBIO.h"
+
+#include <openssl/bio.h>
+#include <openssl/err.h>
+
+//#define DEBUG_LEVEL 3
+#include "../debug.h"
+
+
+/*
+ * Symbolic defines for shutdown() function
+ * (Not defined in the same header file, for all distros --Jcid)
+ */
+#define IO_StopRd   0
+#define IO_StopWr   1
+#define IO_StopRdWr 2
+
+extern void IO_submit(IOData_t *r_io);
+extern void IO_del(IOData_t *io);
+extern void IO_ins(IOData_t *io);
+extern IOData_t *IO_get(gint Key);
+
+/*
+ * IO-module data
+ */
+
+
+/*
+ * Return a newly created, and initialized, 'io' struct
+ */
+IOData_t *a_DBIO_new(BIO *bioin)
+{
+   IOData_t *io = g_new0(IOData_t, 1);
+   io->GioCh = NULL;
+   io->FD = -1;
+   io->Flags = 0;
+   io->bio = bioin;
+   return io;
+}
+
+/*
+ * Free an 'io' struct
+ */
+void DBIO_free(IOData_t *io)
+{
+  if (io->Flags & IOFlag_FreeIOBuf) g_free(io->Buf);
+  g_free(io);
+}
+
+/*
+ * Close an open BIO, and remove io controls.
+ * (This function can be used for Close and Abort operations)
+ */
+void DBIO_close_fd(IOData_t *io, gint CloseCode)
+{
+  if (io->bio) BIO_free_all(io->bio);
+
+  IO_del(io);
+}
+
+/*
+ * Abort an open FD.
+ *  This function is called to abort a BIO connection due to an IO error
+ *  or just because the connection is not required anymore.
+ */
+gboolean DBIO_abort(IOData_t *io)
+{
+   /* Close and finish this FD's activity */
+   DBIO_close_fd(io, IO_StopRdWr);
+
+   return FALSE;
+}
+
+/*
+ * Read data from a BIO into a specific buffer
+ */
+gboolean DBIO_Callback_Read(gpointer data)
+{
+  ssize_t St;
+  gboolean ret;
+  IOData_t *io = (IOData_t *) data;
+
+  DEBUG_MSG(3, "  IO_read2\n");
+
+  /* Sometimes glib delivers events on already aborted FDs  --Jcid */
+  if ( IO_get(io->Key) == NULL ) return FALSE;
+
+  St = BIO_read(io->bio, io->Buf, io->BufSize);
+
+  if ( St < 0 ) {
+    if (BIO_should_retry(io->bio)) {
+      ret = TRUE;
+    } else {
+      io->Status = ERR_get_error();
+      ret = FALSE;
+    }
+  } else if ( St == 0 ) {
+    if (BIO_should_retry(io->bio)) {
+      ret = TRUE;
+    } else {
+      a_DBIO_ccc(OpEnd, 2,0, io->Info, io, NULL);
+      ret = FALSE;
+    }
+  } else {
+    io->Status = St;  /* Status is used for length */
+    a_DBIO_ccc(OpSend, 2,0, io->Info, io, NULL);
+    ret = TRUE;
+  }
+
+  return ret;
+}
+
+/*
+ * 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.
+ */
+gboolean DBIO_Callback_Write(gpointer data)
+{
+  ssize_t St;
+  gboolean ret = FALSE;
+  IOData_t *io = (IOData_t *) data;
+
+  DEBUG_MSG(3, "  IO_write\n");
+
+  /* Sometimes glib delivers events on already aborted FDs  --Jcid */
+  if ( IO_get(io->Key) == NULL ) return FALSE;
+
+  St = BIO_write(io->bio, io->Buf, io->BufSize);
+  io->Status = St;
+
+  DEBUG_MSG(3, "  IO_write: %s [errno %d] [St %d]\n",
+	    g_strerror(errno), errno, St);
+
+  if ( St <= 0 ) {
+    if (BIO_should_retry(io->bio)) {
+      ret = TRUE;
+    } else {
+      io->Status = ERR_get_error();
+      ret = FALSE;
+    }
+  } else if ( St < (ssize_t)io->BufSize ){
+    // Not all data written
+    io->BufSize  -= St;
+    io->Buf = ((gchar *)io->Buf) + St;
+    ret = TRUE;
+  } else {
+    // All data in buffer written
+    if ( io->Op == IOWrite ) {
+      /* Single write */
+      a_DBIO_ccc(OpEnd, 1,0, io->Info, io, NULL);
+      ret = FALSE;
+    } else if ( io->Op == IOWrites ) {
+      /* todo: Writing in small chunks (not implemented) */
+    }
+  }
+
+  return ret;
+}
+
+/*
+ * Receive an IO request (IORead | IOWrite | IOWrites),
+ */
+void DBIO_submit(IOData_t *r_io)
+{
+  if ( r_io->Op == IORead ) {
+    g_idle_add(DBIO_Callback_Read, (gpointer) r_io);
+  } else if (r_io->Op == IOWrite || r_io->Op == IOWrites ) {
+    g_idle_add(DBIO_Callback_Write, (gpointer) r_io);
+  }
+  
+  /* Add a reference pointer to this request */
+  IO_ins(r_io);
+}
+
+/*
+ * CCC function for the IO module
+ * ( Data = IOData_t* ; ExtraData = NULL )
+ */
+void a_DBIO_ccc(int Op, int Branch,int Dir, ChainLink *Info, void *Data, void *ExtraData)
+{
+   IOData_t *io = Data;
+
+   if ( Branch == 1 ) {
+      /* Send query */
+      switch (Op) {
+      case OpStart:
+         io->Info = Info;
+         Info->LocalKey = io;
+         DBIO_submit(io);
+         break;
+      case OpEnd:
+         a_Chain_fcb(OpEnd, Info, io, NULL);
+         DBIO_free(io);
+         break;
+      case OpAbort:
+         a_Chain_fcb(OpAbort, Info, NULL, NULL);
+         DBIO_free(io);
+         break;
+      }
+
+   } else if ( Branch == 2 ) {
+      /* Receive answer */
+      switch (Op) {
+      case OpStart:
+         io->Info = Info;
+         Info->LocalKey = io;
+         a_Chain_link_new(Info, a_DBIO_ccc, FWD, a_Cache_ccc,2,2);
+         a_Chain_fcb(OpStart, Info, io, io->ExtData);
+         DBIO_submit(io);
+         break;
+      case OpSend:
+         a_Chain_fcb(OpSend, Info, io, NULL);
+         break;
+      case OpEnd:
+         a_Chain_fcb(OpEnd, Info, io, NULL);
+         DBIO_free(io);
+         break;
+      case OpAbort:
+         a_Chain_fcb(OpAbort, Info, io, NULL);
+         DBIO_free(io);
+         break;
+      }
+
+   } else if ( Branch == -1 ) {
+      /* Backwards call */
+      switch (Op) {
+      case OpAbort:
+         DEBUG_MSG(3, "IO   : OpAbort [-1]\n");
+         io = Info->LocalKey;
+         DBIO_abort(io);
+         DBIO_free(io);
+         g_free(Info);
+         break;
+      }
+   }
+}
+
+#endif
+
diff -pruN dillo-0.8.6/src/IO/DBIO.h dillo-0.8.6-i18n-misc-20060709/src/IO/DBIO.h
--- dillo-0.8.6/src/IO/DBIO.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/DBIO.h	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,22 @@
+#ifndef __DBIO_h
+#define __DBIO_h
+
+#include <config.h>
+
+#ifdef DILLO_SSL
+
+#include <openssl/bio.h>
+
+#include "IO.h"
+
+/*
+ * Exported functions
+ */
+IOData_t* a_DBIO_new(BIO *bio);
+void a_DBIO_ccc(int Op, int Br,int Dir, ChainLink *Info, void *Data, void *ExtraData);
+
+#endif /* DILLO_SSL */
+
+#endif /* __DBIO_h */
+
+
diff -pruN dillo-0.8.6/src/IO/IO.c dillo-0.8.6-i18n-misc-20060709/src/IO/IO.c
--- dillo-0.8.6/src/IO/IO.c	2006-01-03 03:21:56.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/IO.c	2006-05-16 01:21:09.000000000 +0900
@@ -15,6 +15,7 @@
 
 #include <pthread.h>
 
+#include <config.h>
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
@@ -86,6 +87,9 @@ IOData_t *a_IO_new(gint op, gint fd)
    io->GioCh = g_io_channel_unix_new(fd);
    io->Flags = 0;
    io->Key = 0;
+#ifdef DILLO_SSL 
+   io->bio = NULL;
+#endif
    return io;
 }
 
@@ -376,7 +380,7 @@ void a_IO_write_chunk(gint FD, void *Key
 /*
  * Register an IO in ValidIOs
  */
-static void IO_ins(IOData_t *io)
+void IO_ins(IOData_t *io)
 {
    io->Key = a_Klist_insert(&ValidIOs, (gpointer)io);
 }
@@ -384,7 +388,7 @@ static void IO_ins(IOData_t *io)
 /*
  * Remove an IO from ValidIOs
  */
-static void IO_del(IOData_t *io)
+void IO_del(IOData_t *io)
 {
    a_Klist_remove(ValidIOs, io->Key);
 }
@@ -392,7 +396,7 @@ static void IO_del(IOData_t *io)
 /*
  * Return a io by its Key (NULL if not found)
  */
-static IOData_t *IO_get(gint Key)
+IOData_t *IO_get(gint Key)
 {
    return a_Klist_get_data(ValidIOs, Key);
 }
@@ -403,7 +407,7 @@ static IOData_t *IO_get(gint Key)
 static void IO_free(IOData_t *io)
 {
    g_return_if_fail(IO_get(io->Key) == NULL);
-
+ 
    if (io->Flags & IOFlag_FreeIOBuf)
       a_IO_set_buf(io, NULL, 0);
    g_free(io);
@@ -597,7 +601,7 @@ static gboolean IO_callback(GIOChannel *
  * Receive an IO request (IORead | IOWrite | IOWrites),
  * Set the GIOChannel and let it flow!
  */
-static void IO_submit(IOData_t *r_io)
+void IO_submit(IOData_t *r_io)
 {
    /* Insert this IO in ValidIOs */
    IO_ins(r_io);
diff -pruN dillo-0.8.6/src/IO/IO.h dillo-0.8.6-i18n-misc-20060709/src/IO/IO.h
--- dillo-0.8.6/src/IO/IO.h	2005-10-28 01:20:22.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/IO.h	2006-05-16 01:21:09.000000000 +0900
@@ -1,10 +1,16 @@
 #ifndef __IO_H__
 #define __IO_H__
 
+#include<config.h>
+
 #include<unistd.h>
 #include<sys/uio.h>
 #include <glib.h>
 
+#ifdef DILLO_SSL
+#include <openssl/bio.h>
+#endif
+
 #include "../chain.h"
 
 /*
@@ -31,6 +37,7 @@
 #define IOBufLen_File    4096
 #define IOBufLen_Proto   4096
 #define IOBufLen_About   4096
+#define IOBufLen_Matrix  4096
 
 
 typedef struct {
@@ -46,6 +53,9 @@ typedef struct {
 
    void *ExtData;         /* External data reference (not used by IO.c) */
    void *Info;            /* CCC Info structure for this IO */
+#ifdef DILLO_SSL
+   BIO *bio;
+#endif
    GIOChannel *GioCh;     /* IO channel */
    guint watch_id;        /* glib's event source id */
 } IOData_t;
diff -pruN dillo-0.8.6/src/IO/Makefile.am dillo-0.8.6-i18n-misc-20060709/src/IO/Makefile.am
--- dillo-0.8.6/src/IO/Makefile.am	2004-08-04 22:58:25.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/Makefile.am	2006-05-16 01:21:09.000000000 +0900
@@ -4,6 +4,9 @@ AM_LIBS = @GTK_LIBS@
 noinst_LIBRARIES = libDio.a
 
 libDio_a_SOURCES = \
+	https.c \
+	DBIO.h \
+	DBIO.c \
 	mime.c \
 	mime.h \
 	about.c \
diff -pruN dillo-0.8.6/src/IO/Makefile.in dillo-0.8.6-i18n-misc-20060709/src/IO/Makefile.in
--- dillo-0.8.6/src/IO/Makefile.in	2006-04-27 01:07:22.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/Makefile.in	2006-05-16 01:21:09.000000000 +0900
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
@@ -14,8 +14,6 @@
 
 @SET_MAKE@
 
-SOURCES = $(libDio_a_SOURCES)
-
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -23,6 +21,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 top_builddir = ../..
+
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
@@ -39,35 +38,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-subdir = src/IO
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libDio_a_AR = $(AR) $(ARFLAGS)
-libDio_a_LIBADD =
-am_libDio_a_OBJECTS = mime.$(OBJEXT) about.$(OBJEXT) Url.$(OBJEXT) \
-	proto.$(OBJEXT) http.$(OBJEXT) dpi.$(OBJEXT) IO.$(OBJEXT)
-libDio_a_OBJECTS = $(am_libDio_a_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libDio_a_SOURCES)
-DIST_SOURCES = $(libDio_a_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
@@ -97,6 +67,7 @@ EXEEXT = @EXEEXT@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_CONFIG = @GLIB_CONFIG@
 GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_CONFIG = @GTK_CONFIG@
 GTK_LIBS = @GTK_LIBS@
@@ -104,9 +75,12 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
 LDFLAGS = @LDFLAGS@
 LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
 LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
 LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
 LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
 LIBJPEG_LIBS = @LIBJPEG_LIBS@
@@ -118,8 +92,13 @@ LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
 LIBS = @LIBS@
 LIBSSL_LIBS = @LIBSSL_LIBS@
 LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -128,11 +107,16 @@ PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_RANLIB = @ac_ct_RANLIB@
@@ -144,8 +128,6 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TR
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -164,9 +146,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
-mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
@@ -180,8 +162,13 @@ target_os = @target_os@
 target_vendor = @target_vendor@
 AM_CFLAGS = @GTK_CFLAGS@
 AM_LIBS = @GTK_LIBS@
+
 noinst_LIBRARIES = libDio.a
+
 libDio_a_SOURCES = \
+	https.c \
+	DBIO.h \
+	DBIO.c \
 	mime.c \
 	mime.h \
 	about.c \
@@ -193,39 +180,47 @@ libDio_a_SOURCES = \
 	IO.c \
 	IO.h
 
+subdir = src/IO
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+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 = https.$(OBJEXT) DBIO.$(OBJEXT) mime.$(OBJEXT) \
+	about.$(OBJEXT) Url.$(OBJEXT) proto.$(OBJEXT) http.$(OBJEXT) \
+	dpi.$(OBJEXT) IO.$(OBJEXT)
+libDio_a_OBJECTS = $(am_libDio_a_OBJECTS)
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/DBIO.Po ./$(DEPDIR)/IO.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/Url.Po ./$(DEPDIR)/about.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dpi.Po ./$(DEPDIR)/http.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/https.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) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(libDio_a_SOURCES)
+DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
+SOURCES = $(libDio_a_SOURCES)
+
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/IO/Makefile'; \
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 	cd $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu  src/IO/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+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)
@@ -235,34 +230,52 @@ libDio.a: $(libDio_a_OBJECTS) $(libDio_a
 	$(RANLIB) libDio.a
 
 mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DBIO.Po@am__quote@
 @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)/dpi.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/https.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@
 
 .c.o:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
 
 .c.obj:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
 uninstall-info-am:
 
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -271,7 +284,6 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
-tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -283,11 +295,10 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEP
 	  done | \
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -310,6 +321,10 @@ GTAGS:
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -323,7 +338,7 @@ distdir: $(DISTFILES)
 	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
 	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
 	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
 	  else \
 	    dir=''; \
 	  fi; \
@@ -341,6 +356,7 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: check-am
 all-am: Makefile $(LIBRARIES)
+
 installdirs:
 install: install-am
 install-exec: install-exec-am
@@ -361,7 +377,7 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-rm -f $(CONFIG_CLEAN_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -380,8 +396,6 @@ dvi: dvi-am
 
 dvi-am:
 
-html: html-am
-
 info: info-am
 
 info-am:
@@ -417,14 +431,13 @@ uninstall-am: uninstall-info-am
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
 	clean-noinstLIBRARIES ctags distclean distclean-compile \
-	distclean-generic distclean-tags distdir dvi dvi-am html \
-	html-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 pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-info-am
+	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 pdf pdf-am \
+	ps ps-am 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 -pruN dillo-0.8.6/src/IO/Url.c dillo-0.8.6-i18n-misc-20060709/src/IO/Url.c
--- dillo-0.8.6/src/IO/Url.c	2006-01-04 04:44:32.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/Url.c	2006-05-16 01:21:09.000000000 +0900
@@ -16,6 +16,7 @@
  * This module selects the apropriate CCC-function for a given URL.
  */
 
+#include <config.h>
 
 #include <glib.h>
 #include <stdlib.h>
@@ -87,7 +88,11 @@ ChainFunction_t a_Url_get_ccc_funct(cons
                                      {"about", a_About_ccc},
                                      {"dpi" , a_Dpi_ccc},
                                      {"ftp" , a_Dpi_ccc},
+#ifdef DILLO_SSL
+                                     {"https", a_Https_ccc},
+#else
                                      {"https" , a_Dpi_ccc},
+#endif
                                      {"data" , a_Dpi_ccc} };
    #define LSIZE (sizeof(cccList) / sizeof(cccList[0]))
 
diff -pruN dillo-0.8.6/src/IO/Url.h dillo-0.8.6-i18n-misc-20060709/src/IO/Url.h
--- dillo-0.8.6/src/IO/Url.h	2005-10-28 01:20:22.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/Url.h	2006-05-16 01:21:09.000000000 +0900
@@ -38,6 +38,11 @@ void a_Dpi_ccc  (int Op, int Branch, int
 
 char *a_Dpi_send_blocking_cmd(const gchar *server_name, const gchar *cmd);
 void a_Dpi_bye_dpid(void);
+#ifdef DILLO_SSL
+void a_Https_ccc(int Op, int Branch, int Dir, ChainLink *Info,
+                 void *Data1, void *Data2);
+void a_Https_freeall(void);
+#endif
 
 
 #ifdef __cplusplus
diff -pruN dillo-0.8.6/src/IO/about.c dillo-0.8.6-i18n-misc-20060709/src/IO/about.c
--- dillo-0.8.6/src/IO/about.c	2006-04-27 01:17:48.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/about.c	2006-05-16 01:21:09.000000000 +0900
@@ -11,6 +11,7 @@
  */
 
 #include <config.h>
+#include "../intl.h"
 #include "IO.h"
 #include "Url.h"
 #include "../nav.h"
@@ -27,6 +28,9 @@ struct _SplashInfo {
 /*
  * HTML text for startup screen
  */
+static char *Blank=
+"Content-type: text/html\n"
+"\n";
 static char *Splash=
 "Content-type: text/html\n"
 "\n"
@@ -222,6 +226,24 @@ static char *Splash=
 "\n"
 "\n"
 "<!--   Main Part of the page   -->\n"
+"<table border='0' cellpadding='0' cellspacing='0' align='center' bgcolor='#000000' width='100%'><tr><td>\n"
+"<table border='0' cellpadding='5' cellspacing='1' width='100%'>\n"
+"<tr>\n"
+" <td bgcolor='#CCCCCC'>\n"
+"  <h4>This is Unofficial Version</h4>\n"
+"<tr>\n"
+" <td bgcolor='#FFFFFF'>\n"
+"  <table border='0' cellspacing='0' cellpadding='5'><tr><td>\n"
+"   This is Unofficial Version.<br>\n"
+"   <font color='RED'>Please do not ask the dillo team for help.</font><br>\n"
+"   Report problems to Kiyo&lt;webmaster@teki.jpn.ph&gt;.<br>\n"
+"   Latest version can be downloaded from \n"
+"   <a href=\"http://teki.jpn.ph/pc/software/index-e.shtml\">http://teki.jpn.ph/pc/software/index-e.shtml</a>\n"
+"  </table>\n"
+"</table>\n"
+"</table>\n"
+"\n"
+"<br>\n"
 "\n"
 "<table border='0' cellpadding='0' cellspacing='0' align='center' bgcolor='#000000' width='100%'><tr><td>\n"
 "<table border='0' cellpadding='5' cellspacing='1' width='100%'>\n"
@@ -393,7 +415,7 @@ static char *Splash=
 /*
  * Send the splash screen through the IO using a pipe.
  */
-static gint About_send_splash(ChainLink *Info, DilloUrl *Url)
+static gint About_send_page(ChainLink *Info, DilloUrl *Url, char *Data)
 {
    gint SplashPipe[2];
    IOData_t *io1;
@@ -409,7 +431,7 @@ static gint About_send_splash(ChainLink 
 
    /* send splash */
    io1 = a_IO_new(IOWrite, SpInfo->FD_Write);
-   a_IO_set_buf(io1, Splash, strlen(Splash));
+   a_IO_set_buf(io1, Data, strlen(Data));
    io1->Flags |= (IOFlag_ForceClose + IOFlag_SingleWrite);
    a_Chain_link_new(Info, a_About_ccc, BCK, a_IO_ccc, 1, 1);
    a_Chain_bcb(OpStart, Info, io1, NULL);
@@ -439,7 +461,11 @@ static gint About_get(ChainLink *Info, v
    tail = URL_PATH(Url);
 
    if (!strcmp(tail, "splash")) {
-      return About_send_splash(Info, Url);
+      return About_send_page(Info, Url, _(Splash));
+   }
+
+   if (!strcmp(tail, "blank")) {
+      return About_send_page(Info, Url, Blank);
    }
 
    if (!strcmp(tail, "jwz"))
@@ -458,7 +484,7 @@ static gint About_get(ChainLink *Info, v
       loc = "http://www.google.com/";
 
    LocUrl = a_Url_new(loc, NULL, 0, 0, 0);
-   a_Nav_push(web->bw, LocUrl);
+   a_Nav_push(web->dd, LocUrl);
    a_Url_free(LocUrl);
    return -1;
 }
diff -pruN dillo-0.8.6/src/IO/dpi.c dillo-0.8.6-i18n-misc-20060709/src/IO/dpi.c
--- dillo-0.8.6/src/IO/dpi.c	2006-03-16 00:50:04.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/dpi.c	2006-05-16 01:21:09.000000000 +0900
@@ -19,6 +19,7 @@
  */
 
 
+#include <config.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/types.h>
@@ -35,6 +36,7 @@
 #include <arpa/inet.h>
 #include <netdb.h>
 
+#include "../intl.h"
 #include "../msg.h"
 #include "IO.h"
 #include "Url.h"
@@ -171,9 +173,9 @@ static gint Dpi_get_token(conn_data_t *c
       /* search for start of tag */
 /*
 gchar *pbuf=NULL;
-MSG("conn->BufIdx = %d; conn->BufSize = %d\n", conn->BufIdx,conn->BufSize);
+MSG(_("conn->BufIdx = %d; conn->BufSize = %d\n"), conn->BufIdx,conn->BufSize);
 pbuf = g_strndup(buf, conn->BufSize - conn->BufIdx);
-MSG("buf: [%s]\n", pbuf);
+MSG(_("buf: [%s]\n"), pbuf);
 g_free(pbuf);
 */
       while (conn->BufIdx < conn->BufSize && buf[conn->BufIdx] != '<')
@@ -183,7 +185,7 @@ g_free(pbuf);
          conn->InTag = 1;
          conn->TokIdx = conn->BufIdx;
       } else {
-         MSG("ERROR: [Dpi_get_token] Can't find token start\n");
+         MSG(_("ERROR: [Dpi_get_token] Can't find token start\n"));
          conn->FreeBuf = 1;
          return Dpi_get_token(conn);
       }
@@ -216,7 +218,7 @@ g_free(pbuf);
          resp = 0;
       } else {
          /* srch end of data */
-         MSG("ERROR: [Dpi_get_token] *** NULL code here ***\n");
+         MSG(_("ERROR: [Dpi_get_token] *** NULL code here ***\n"));
          while (conn->BufIdx < conn->BufSize)
             ++conn->BufIdx;
          resp = -1;
@@ -243,7 +245,7 @@ static void Dpi_parse_token(conn_data_t 
    }
 
    tag = g_strndup(conn->Buf + conn->TokIdx, (guint)conn->TokSize);
-   MSG("Dpi_parse_token: {%s}\n", tag);
+   _MSG("Dpi_parse_token: {%s}\n", tag);
 
    cmd = a_Dpip_get_attr(conn->Buf + conn->TokIdx, conn->TokSize, "cmd");
    if (strcmp(cmd, "send_status_message") == 0) {
@@ -307,7 +309,7 @@ static void Dpi_process_io(int Op, void 
       }
 
    } else if (Op == IOClose) {
-      MSG("Dpi: [Dpi_process_io] IOClose\n");
+      DEBUG_MSG(3, _("Dpi: [Dpi_process_io] IOClose\n"));
    }
 }
 
@@ -333,7 +335,7 @@ static gint Dpi_start_dpid(void)
       if (execl(path1, "dpid", NULL) == -1) {
          g_free(path1);
          if (execlp("dpid", "dpid", NULL) == -1) {
-            DEBUG_MSG(4, "Dpi_start_dpid (child): %s\n", g_strerror(errno));
+            DEBUG_MSG(4, _("Dpi_start_dpid (child): %s\n"), g_strerror(errno));
             do
                n = write(st_pipe[1], "ERROR", 5);
             while (n == -1 && errno == EINTR);
@@ -343,7 +345,7 @@ static gint Dpi_start_dpid(void)
       }
    } else if (pid < 0) {
       /* The fork failed.  Report failure.  */
-      DEBUG_MSG(4, "Dpi_start_dpid: %s\n", g_strerror(errno));
+      DEBUG_MSG(4, _("Dpi_start_dpid: %s\n"), g_strerror(errno));
       /* close the unused pipe */
       Dpi_close_fd(st_pipe[0]);
       Dpi_close_fd(st_pipe[1]);
@@ -354,11 +356,11 @@ static gint Dpi_start_dpid(void)
       do
          n = read(st_pipe[0], buf, 16);
       while (n == -1 && errno == EINTR);
-      DEBUG_MSG(2, "Dpi_start_dpid: n = %d\n", n);
+      DEBUG_MSG(2, _("Dpi_start_dpid: n = %d\n"), n);
       if (n != 5)
          ret = 0;
       else
-         DEBUG_MSG(4, "Dpi_start_dpid: %s\n", g_strerror(errno));
+         DEBUG_MSG(4, _("Dpi_start_dpid: %s\n"), g_strerror(errno));
    }
 
    return ret;
@@ -381,7 +383,7 @@ static gint Dpi_check_uds(gchar *uds_nam
 
       if ((SockFD = socket(AF_LOCAL, SOCK_STREAM, 0)) == -1 ||
           connect(SockFD, (void*)&pun, D_SUN_LEN(&pun)) == -1) {
-         DEBUG_MSG(4, "Dpi_check_uds: %s %s\n", g_strerror(errno), uds_name);
+         DEBUG_MSG(4, _("Dpi_check_uds: %1$s %2$s\n"), g_strerror(errno), uds_name);
       } else {
          Dpi_close_fd(SockFD);
          ret = 0;
@@ -668,7 +670,7 @@ void a_Dpi_ccc(int Op, int Branch, int D
             else if (st == 1)
                a_Chain_fcb(OpSend, Info, NULL, (void*)"DpidEAGAIN");
             else {
-               DEBUG_MSG(4, "dpi.c: ERROR, can't start dpi daemon\n");
+               DEBUG_MSG(4, _("dpi.c: ERROR, can't start dpi daemon\n"));
                a_Dpi_ccc(OpAbort, 2, FWD, Info, "ERR_dpid", NULL);
             }
             break;
@@ -681,7 +683,7 @@ void a_Dpi_ccc(int Op, int Branch, int D
             g_free(Info);
             break;
          case OpAbort:
-            MSG("a_Dpi_ccc: OpAbort[2B], Not implemented\n");
+            MSG(_("a_Dpi_ccc: OpAbort[2B], Not implemented\n"));
             g_free(Info->LocalKey);
             g_free(Info);
             break;
@@ -715,7 +717,7 @@ void a_Dpi_ccc(int Op, int Branch, int D
             a_Chain_fcb(OpEnd, Info, NULL, NULL);
             break;
          case OpAbort:
-            MSG(" Not implemented\n");
+            MSG(_(" Not implemented\n"));
             break;
          }
       } else {  /* BCK */
@@ -755,7 +757,7 @@ void a_Dpi_ccc(int Op, int Branch, int D
             }
             break;
          case OpAbort:
-            MSG(" Not implemented\n");
+            MSG(_(" Not implemented\n"));
             break;
          }
       }
@@ -785,11 +787,11 @@ void a_Dpi_bye_dpid()
    sa.sun_family = AF_LOCAL;
 
    if ((new_socket = socket(AF_LOCAL, SOCK_STREAM, 0)) == -1) {
-      DEBUG_MSG(4, "a_Dpi_bye_dpid: %s\n", g_strerror(errno));
+      DEBUG_MSG(4, _("a_Dpi_bye_dpid: %s\n"), g_strerror(errno));
    }
    strncpy(sa.sun_path, srs_name, sizeof (sa.sun_path));
    if (connect(new_socket, (struct sockaddr *) &sa, addr_len) == -1) {
-      DEBUG_MSG(4, "a_Dpi_bye_dpid: %s\n", g_strerror(errno));
+      DEBUG_MSG(4, _("a_Dpi_bye_dpid: %s\n"), g_strerror(errno));
       fprintf(stderr, "%s\n", sa.sun_path);
    }
    DpiBye_cmd = a_Dpip_build_cmd("cmd=%s", "DpiBye");
diff -pruN dillo-0.8.6/src/IO/http.c dillo-0.8.6-i18n-misc-20060709/src/IO/http.c
--- dillo-0.8.6/src/IO/http.c	2005-10-28 01:20:22.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/http.c	2006-06-19 03:03:03.000000000 +0900
@@ -27,8 +27,10 @@
 #include <netinet/in.h>         /* for ntohl and stuff */
 #include <arpa/inet.h>          /* for inet_ntop */
 
+#include "../intl.h"
 #include "IO.h"
 #include "Url.h"
+#include "../i18n.h"
 #include "../klist.h"
 #include "../dns.h"
 #include "../cache.h"
@@ -36,13 +38,15 @@
 #include "../interface.h"
 #include "../cookies.h"
 #include "../prefs.h"
+#include "../auth.h"
+
 #include "../misc.h"
 
 /* Used to send a message to the bw's status bar */
 #define BW_MSG(web, root, fmt...)                                     \
 G_STMT_START {                                                        \
    if (a_Web_valid((web)) && (!(root) || (web)->flags & WEB_RootUrl)) \
-      a_Interface_msg((web)->bw, fmt);                                \
+      a_Interface_msg((web)->dd->bw, fmt);                                \
 } G_STMT_END
 
 #define DEBUG_LEVEL 5
@@ -72,6 +76,7 @@ static Klist_t *ValidSocks = NULL; /* Ac
                                     * SocketData_t structures. */
 
 static DilloUrl *HTTP_Proxy = NULL;
+
 static gchar *HTTP_Proxy_Auth_base64 = NULL;
 
 /*
@@ -153,8 +158,10 @@ gchar *a_Http_make_query_str(const Dillo
    gchar *str, *ptr, *cookies;
    GString *s_port     = g_string_new(""),
            *query      = g_string_new(""),
+           *referer    = g_string_new(""),
            *full_path  = g_string_new(""),
-           *proxy_auth = g_string_new("");
+           *proxy_auth = g_string_new(""),
+           *auth       = g_string_new("");
 
    /* Sending the default port in the query may cause a 302-answer.  --Jcid */
    if (URL_PORT(url) && URL_PORT(url) != DILLO_URL_HTTP_PORT)
@@ -177,6 +184,16 @@ gchar *a_Http_make_query_str(const Dillo
                         (URL_PATH_(url) || URL_QUERY_(url)) ? "" : "/");
    }
 
+   if (prefs.send_referer && url->referer) {
+      g_string_sprintfa(referer, "Referer: %s\r\n", url->referer);
+   }
+   DEBUG_MSG(4,_("Getting %1$s, referer %2$s\n"), URL_STR(url), referer->str);
+
+   if (a_Auth_byurl((DilloUrl *) url)) {
+      g_string_sprintfa(auth, "Authorization: %s\r\n",
+         a_Auth_byurl((DilloUrl *) url)->str);
+   }
+
    cookies = a_Cookies_get(url);
    if ( URL_FLAGS(url) & URL_Post ){
       g_string_sprintfa(
@@ -184,16 +201,22 @@ gchar *a_Http_make_query_str(const Dillo
          "POST %s HTTP/1.0\r\n"
          "Host: %s%s\r\n"
          "%s"
-         "User-Agent: Dillo/%s\r\n"
+         "User-Agent: %s\r\n"
          "Cookie2: $Version=\"1\"\r\n"
          "%s"
+         "%s"
          "Content-type: application/x-www-form-urlencoded\r\n"
          "Content-length: %ld\r\n"
+         "%s"
          "\r\n"
          "%s",
-         full_path->str, URL_HOST(url), s_port->str,
-         proxy_auth->str, VERSION, cookies,
+         full_path->str,
+         URL_HOST(url), s_port->str, proxy_auth->str,
+         (prefs.user_agent)? prefs.user_agent : "Dillo/" VERSION,
+         cookies,
+         auth->str,
          (glong)strlen(URL_DATA(url)),
+         referer->str,
          URL_DATA(url));
 
    } else {
@@ -203,26 +226,37 @@ gchar *a_Http_make_query_str(const Dillo
          "%s"
          "Host: %s%s\r\n"
          "%s"
-         "User-Agent: Dillo/%s\r\n"
+         "User-Agent: %s\r\n"
+		 "Accept-Language: %s\r\n"
+		 "Accept-Encoding:gzip\r\n"
+		 "Accept-Charset:utf-8,%s\r\n"
+         "%s"
          "Cookie2: $Version=\"1\"\r\n"
          "%s"
+         "%s"
          "\r\n",
          full_path->str,
          (URL_FLAGS(url) & URL_E2EReload) ?
             "Cache-Control: no-cache\r\nPragma: no-cache\r\n" : "",
          URL_HOST(url), s_port->str,
          proxy_auth->str,
-         VERSION,
-         cookies);
+         (prefs.user_agent)? prefs.user_agent : "Dillo/" VERSION,
+         prefs.accept_language,
+         DW_CHARSET,
+         referer->str,
+         cookies,
+         auth->str
+         );
    }
    g_free(cookies);
 
    str = query->str;
    g_string_free(query, FALSE);
    g_string_free(s_port, TRUE);
+   g_string_free(referer, TRUE);
    g_string_free(full_path, TRUE);
    g_string_free(proxy_auth, TRUE);
-   DEBUG_MSG(4, "Query:\n%s", str);
+   DEBUG_MSG(4, _("Query:\n%s"), str);
    return str;
 }
 
@@ -237,6 +271,7 @@ static gboolean
    ChainLink *Info;
    SocketData_t *S;
    gint SKey = GPOINTER_TO_INT(data);
+   gchar *msg_enc;
 
    DEBUG_MSG(3, "Http_use_socket: %s [errno %d] [GIOcond %d]\n",
              g_strerror(errno), errno, cond);
@@ -248,25 +283,30 @@ static gboolean
 
    Info = S->Info;
    if ( cond & G_IO_HUP ) {
-      DEBUG_MSG(3, "--Connection broken\n");
+      DEBUG_MSG(3, _("--Connection broken\n"));
       /* get rid of S->GioCh */
       g_io_channel_close(S->GioCh);
       g_io_channel_unref(S->GioCh);
       S->GioCh = NULL;
       S->addr_list_iter = S->addr_list_iter->next;
       if (!S->addr_list_iter || Http_connect_socket(Info) < 0) {
-         BW_MSG(S->web, 0, "ERROR: unable to connect to remote host");
+         msg_enc = a_I18n_locale_to_DILLO_CHARSET(
+                 _("ERROR: unable to connect to remote host"));
+         BW_MSG(S->web, 0, msg_enc);
+         g_free(msg_enc);
          Http_socket_free(SKey);
          a_Chain_fcb(OpAbort, Info, NULL, NULL);
       }
    } else if ( S->Err ) {
-      BW_MSG(S->web, 0, "ERROR: %s", g_strerror(S->Err));
+	  msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: %s"));
+      BW_MSG(S->web, 0, msg_enc, g_strerror(S->Err));
+	  g_free(msg_enc);
       DEBUG_MSG(3, "Http_use_socket ERROR: %s\n", g_strerror(S->Err));
       a_Chain_fcb(OpAbort, Info, NULL, NULL);
       g_io_channel_close(S->GioCh);
       Http_socket_free(SKey);
    } else if ( cond & G_IO_OUT ) {
-      DEBUG_MSG(3, "--Connection established\n");
+      DEBUG_MSG(3, _("--Connection established\n"));
       g_io_channel_unref(S->GioCh);
       S->GioCh = NULL;
       Http_send_query(Info, S);
@@ -291,6 +331,7 @@ static int Http_connect_socket(ChainLink
    SocketData_t *S;
    DilloHost *dh;
    socklen_t socket_len = 0;
+   gchar *msg_enc;
 
    S = a_Klist_get_data(ValidSocks, GPOINTER_TO_INT(Info->LocalKey));
 
@@ -298,7 +339,7 @@ static int Http_connect_socket(ChainLink
 
    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));
+      DEBUG_MSG(5, _("Http_connect_socket ERROR: %s\n"), g_strerror(errno));
       return -1;
    }
    /* set NONBLOCKING and close on exec. */
@@ -319,7 +360,7 @@ static int Http_connect_socket(ChainLink
       sin->sin_port = S->port ? htons(S->port) : htons(DILLO_URL_HTTP_PORT);
       memcpy(&sin->sin_addr, dh->data, (size_t)dh->alen);
       if (a_Web_valid(S->web) && (S->web->flags & WEB_RootUrl))
-         DEBUG_MSG(5, "Connecting to %s\n", inet_ntoa(sin->sin_addr));
+         DEBUG_MSG(4, _("Connecting to %s\n"), inet_ntoa(sin->sin_addr));
       break;
    }
 #ifdef ENABLE_IPV6
@@ -333,7 +374,7 @@ static int Http_connect_socket(ChainLink
       memcpy(&sin6->sin6_addr, dh->data, dh->alen);
       inet_ntop(dh->af, dh->data, buf, sizeof(buf));
       if (a_Web_valid(S->web) && (S->web->flags & WEB_RootUrl))
-         DEBUG_MSG(5, "Connecting to %s\n", buf);
+         DEBUG_MSG(5, _("Connecting to %s\n"), buf);
       break;
    }
 #endif
@@ -351,8 +392,10 @@ static int Http_connect_socket(ChainLink
       S->Err = errno;
       return -1;
    }
-
-   BW_MSG(S->web, 1, "Contacting host...");
+	
+   msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("Contacting host..."));
+   BW_MSG(S->web, 1, msg_enc);
+   g_free(msg_enc);
 
    return 0; /* Success */
 }
@@ -364,14 +407,16 @@ static int Http_connect_socket(ChainLink
 static void Http_send_query(ChainLink *Info, SocketData_t *S)
 {
    IOData_t *io;
-   gchar *query;
+   gchar *query, *msg_enc;
    void *link;
 
    /* Create the query */
    query = a_Http_make_query_str(S->Url, S->use_proxy);
 
    /* send query */
-   BW_MSG(S->web, 1, "Sending query to %s...", URL_HOST_(S->Url));
+   msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("Sending query to %s..."));
+   BW_MSG(S->web, 1, msg_enc, URL_HOST_(S->Url));
+   g_free(msg_enc);
    io = a_IO_new(IOWrite, S->SockFD);
    a_IO_set_buf(io, query, strlen(query));
    io->Flags |= IOFlag_FreeIOBuf;
@@ -414,7 +459,7 @@ static gint Http_get(ChainLink *Info, vo
    void *link;
    const DilloUrl *Url = Data1;
    SocketData_t *S;
-   gchar *hostname;
+   gchar *hostname, *msg_enc;
 
    S = a_Klist_get_data(ValidSocks, GPOINTER_TO_INT(Info->LocalKey));
 
@@ -438,7 +483,9 @@ static gint Http_get(ChainLink *Info, vo
    S->Url = Url;
 
    /* Let the user know what we'll do */
-   BW_MSG(S->web, 1, "DNS solving %s", URL_HOST_(S->Url));
+   msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("DNS solving %s"));
+   BW_MSG(S->web, 1, msg_enc, URL_HOST_(S->Url));
+   g_free(msg_enc);
 
    /* Let the DNS engine solve the hostname, and when done,
     * we'll try to connect the socket */
@@ -457,6 +504,7 @@ void a_Http_ccc(int Op, int Branch, int 
 {
    gint SKey = GPOINTER_TO_INT(Info->LocalKey);
    SocketData_t *S = a_Klist_get_data(ValidSocks, SKey);
+   gchar *msg_enc;
 
    a_Chain_debug_msg("a_Http_ccc", Op, Branch, Dir);
 
@@ -469,14 +517,16 @@ void a_Http_ccc(int Op, int Branch, int 
             Info->LocalKey = GINT_TO_POINTER(SKey);
             if (Http_get(Info, Data1, Data2) < 0) {
                S = a_Klist_get_data(ValidSocks, SKey);
-               BW_MSG(S->web, 1, "ERROR: %s", g_strerror(S->Err));
+			   msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: %s"));
+               BW_MSG(S->web, 1, msg_enc, g_strerror(S->Err));
+			   g_free(msg_enc);
                Http_socket_free(SKey);
                a_Chain_fcb(OpAbort, Info, NULL, NULL);
             }
             break;
          case OpAbort:
             /* something bad happened... */
-            DEBUG_MSG(2, "Http: OpAbort [1B]\n");
+            DEBUG_MSG(2, _("Http: OpAbort [1B]\n"));
             Http_socket_free(SKey);
             a_Chain_bcb(OpAbort, Info, NULL, NULL);
             g_free(Info);
@@ -498,7 +548,9 @@ void a_Http_ccc(int Op, int Branch, int 
                a_Chain_del_link(Info, BCK);
                /* start connecting the socket */
                if (Http_connect_socket(Info) < 0) {
-                  BW_MSG(S->web, 1, "ERROR: %s", g_strerror(S->Err));
+				  msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: %s"));
+                  BW_MSG(S->web, 1, msg_enc, g_strerror(S->Err));
+				  g_free(msg_enc);
                   Http_socket_free(SKey);
                   a_Chain_fcb(OpAbort, Info, NULL, NULL);
                }
@@ -509,8 +561,10 @@ void a_Http_ccc(int Op, int Branch, int 
             if (S) {
                /* Unlink DNS_Info */
                a_Chain_del_link(Info, BCK);
-               BW_MSG(S->web, 0, "ERROR: Dns can't solve %s",
+			   msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: Dns can't solve %s"));
+               BW_MSG(S->web, 0, msg_enc,
                   (S->use_proxy) ? URL_HOST_(HTTP_Proxy) : URL_HOST_(S->Url));
+			   g_free(msg_enc);
                Http_socket_free(SKey);
                /* send abort message to higher-level functions */
                a_Chain_fcb(OpAbort, Info, NULL, NULL);
@@ -534,7 +588,9 @@ void a_Http_ccc(int Op, int Branch, int 
             if (S) {
                a_Chain_del_link(Info, BCK);
                a_Chain_fcb(OpEnd, Info, &S->SockFD, (void *)S->Url);
-               BW_MSG(S->web, 1, "Query sent, waiting for reply...");
+			   msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("Query sent, waiting for reply..."));
+               BW_MSG(S->web, 1, msg_enc);
+			   g_free(msg_enc);
                Http_socket_free(SKey);
             }
             break;
@@ -560,6 +616,7 @@ void a_Http_ccc(int Op, int Branch, int 
  */
 void a_Http_freeall(void)
 {
+   a_Auth_freeall();
    a_Klist_free(&ValidSocks);
    a_Url_free(HTTP_Proxy);
    g_free(HTTP_Proxy_Auth_base64);
diff -pruN dillo-0.8.6/src/IO/https.c dillo-0.8.6-i18n-misc-20060709/src/IO/https.c
--- dillo-0.8.6/src/IO/https.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/https.c	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,466 @@
+/*
+ * File: https.c
+ *
+ * Copyright (C) 2000, 2001 Jorge Arellano Cid <jcid@inf.utfsm.cl>
+ * Copyright (C) 2002       Jonathan P Springer <jonathan.springer@verizon.net>
+ *
+ * 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.
+ *
+ * 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
+ *
+ * In addition, as a special exception, Jorge Arellano Cid and Jonathan
+ * Springer give permission to link the code of this program with the OpenSSL
+ * library (or modified versions of OpenSSL that use the same license as
+ * OpenSSL), and distribute linked combinations including the two.  You must
+ * obey the GNU General Public License in all respects for all of the code
+ * used other than OpenSSL.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
+ * If you do not wish to do so, delete this exception from your version.  
+ *
+ */
+
+/*
+ * This program exploits code originally published under the OpenSSL demos/bio
+ * directory.  I am uncertain as to the copyright status of this code, as no
+ * notice was included.  If you own the copyright on this code and object to
+ * its use in this GPL program, please contact me.  -- JPS
+ */
+
+/*
+ * HTTPS connect functions
+ */
+
+#include <config.h>
+
+#ifdef DILLO_SSL
+
+#include <unistd.h>
+#include <errno.h>              /* for errno */
+#include <string.h>             /* for strstr */
+#include <stdlib.h>
+#include <signal.h>
+#include <fcntl.h>
+#include <sys/wait.h>
+#include <sys/socket.h>         /* for lots of socket stuff */
+#include <netinet/in.h>         /* for ntohl and stuff */
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+
+#include <glib.h>
+
+#include "../intl.h"
+#include "../i18n.h"
+#include "Url.h"
+#include "DBIO.h"
+#include "../klist.h"
+#include "../dns.h"
+#include "../cache.h"
+#include "../web.h"
+#include "../interface.h"
+extern char *Http_query(const DilloUrl *url, gboolean use_proxy);
+
+
+/* Used to send a message to the bw's status bar */
+#define BW_MSG(web, root, fmt...) \
+   (a_Web_valid(web) && (!(root) || (web)->flags & WEB_RootUrl)) ? \
+   a_Interface_msg((web)->dd->bw, fmt) : (root)
+
+#define DEBUG_LEVEL 5
+#include "../debug.h"
+
+
+/* 'Url' and 'web' are just references (no need to deallocate them here). */
+typedef struct {
+  BIO* bio;
+  SSL* ssl;
+  const DilloUrl *Url;    /* reference to original URL */
+  DilloWeb *web;          /* reference to client's web structure */
+  guint32 ip_addr;        /* Holds the DNS answer */
+  gint Err;               /* Holds the errno of the connect() call */
+  ChainLink *Info;        /* Used for CCC asynchronous operations */
+} SSLData_t;
+
+
+/*
+ * Local data
+ */
+static Klist_t *ValidSSLs = NULL;  /* Active sockets list. It holds pointers to
+				    * SSLData_t structures. */
+
+static gboolean Https_init = FALSE;
+
+static SSL_CTX* ssl_ctx;
+
+/*
+ * Forward declarations
+ */
+static void Https_send_query(ChainLink *Info, SSLData_t *S);
+static void Https_expect_answer(SSLData_t *S);
+
+/*
+ *  If it hasn't been initialized already, initialize
+ *  the SSL-specific stuff.
+ */
+void Https_SSL_init(void)
+{
+  if (!Https_init) {
+    SSL_load_error_strings();
+    OpenSSL_add_ssl_algorithms();
+    ssl_ctx = SSL_CTX_new(SSLv23_client_method());
+    Https_init = TRUE;
+  }
+}
+    
+/*
+ * Create and init a new SSLData_t struct, insert into ValidSSLs,
+ * and return a primary key for it.
+ */
+gint Https_SSL_new(void)
+{
+  SSLData_t *S = g_new0(SSLData_t, 1);
+  return a_Klist_insert(&ValidSSLs, (gpointer)S);
+}
+
+/*
+ * Free SSLData_t struct
+ */
+void Https_SSL_free(gint SKey)
+{
+  SSLData_t *S;
+
+  if ((S = a_Klist_get_data(ValidSSLs, SKey))) {
+    a_Klist_remove(ValidSSLs, SKey);
+    if (S->bio) BIO_free_all(S->bio);
+    g_free(S);
+  }
+}
+
+/*
+ * This function is called after the socket has been successfuly connected,
+ * or upon an error condition on the connecting process.
+ * Task: use the socket to send the HTTP-query and expect its answer
+ */
+static gboolean Https_Callback_Use(gpointer data)
+{
+  ChainLink *Info;
+  SSLData_t *S;
+  gint SKey = (gint) data;
+  gchar *msg_enc;
+
+  DEBUG_MSG(3, "Https_Callback_Use\n");
+
+  /* This check is required because glib may asynchronously
+   * call this function with data that's no longer used  --Jcid   */
+  if ( !(S = a_Klist_get_data(ValidSSLs, SKey)) ) return FALSE;
+
+  Info = S->Info;
+  if ( S->Err ) {
+    DEBUG_MSG(3, _("--Error detected\n"));
+    DEBUG_MSG(3, "%d:%s:%s:%s\n", S->Err, 
+	      ERR_lib_error_string(S->Err), 
+	      ERR_func_error_string(S->Err),
+	      ERR_reason_error_string(S->Err));
+	msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: unable to connect to remote host"));
+    BW_MSG(S->web, 0, msg_enc);
+	g_free(msg_enc);
+    a_Chain_fcb(OpAbort, Info, NULL, NULL);
+    Https_SSL_free(SKey);
+  } else {
+    DEBUG_MSG(3, _("--Connection established\n"));
+    Https_send_query(Info, S);
+    Https_expect_answer(S);
+  }
+  return FALSE;
+}
+
+gboolean Https_Callback_Connect(gpointer data) {
+
+  gint SKey = (gint) data;
+  SSLData_t *S;
+  gchar *msg_enc;
+
+  /* This check is required because glib may asynchronously
+   * call this function with data that's no longer used  --Jcid   */
+  if ( !(S = a_Klist_get_data(ValidSSLs, SKey)) ) return FALSE;
+  
+  S->Err = 0;
+  if (BIO_do_connect(S->bio) != 1) {
+    if (BIO_should_retry(S->bio)) return TRUE;
+    S->Err = ERR_get_error();
+    DEBUG_MSG(3, "%d:%s:%s:%s\n", S->Err, 
+	      ERR_lib_error_string(S->Err), 
+	      ERR_func_error_string(S->Err),
+	      ERR_reason_error_string(S->Err));
+	msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: unable to connect to remote host"));
+    BW_MSG(S->web, 0, msg_enc);
+	g_free(msg_enc);
+    return FALSE;
+  }
+  g_idle_add(Https_Callback_Use, data);
+  return FALSE;
+}
+
+/*
+ * This function gets called after the DNS succeeds solving a hostname.
+ * Task: Finish socket setup and start connecting the socket.
+ * Return value: 0 on success;  -1 on error.
+*/
+static int Https_connect_SSL(ChainLink *Info)
+{
+  SSLData_t *S = a_Klist_get_data(ValidSSLs, (gint)Info->LocalKey);
+
+  BIO *ssl_bio;
+  union {
+    guint32 i;
+    guchar c[4];
+  } U;
+  gchar *tmp_str;
+  int port = DILLO_URL_HTTPS_PORT;
+
+  /* TODO - Better error checking */
+
+  /* Initialize some SSL stuff if this is our first connection */
+  Https_SSL_init();
+
+  /* Create an SSL structure */
+  S->ssl = SSL_new(ssl_ctx);
+  SSL_set_connect_state(S->ssl);
+
+  /* Create a BIO structure */
+  ssl_bio = BIO_new(BIO_f_ssl());
+  BIO_set_ssl(ssl_bio, S->ssl, BIO_CLOSE);
+
+  /* Create and configure the connection BIO */
+  S->bio = BIO_new(BIO_s_connect());
+
+#if 0
+  U.i = htonl(S->ip_addr);
+#else
+  U.i = S->ip_addr; /* should already be in the right order */
+#endif
+  tmp_str = g_strdup_printf("%u.%u.%u.%u", U.c[0], U.c[1], U.c[2], U.c[3]);
+  BIO_set_conn_hostname(S->bio, tmp_str);
+  g_free(tmp_str);
+  BIO_set_conn_int_port(S->bio, &port);
+
+  BIO_set_nbio(S->bio, 1); /* non-blocking ON */
+
+  /* Chain the socket & SSL BIOs together */
+  S->bio = BIO_push(ssl_bio, S->bio); /* chain this with the SSL BIO */
+
+  /* And set up a looping idle event to connect it... */
+  g_idle_add(Https_Callback_Connect, (gpointer) Info->LocalKey);
+
+  return 0; /* Success */
+}
+
+/*
+ * Create and submit the HTTP query to the IO engine
+ */
+static void Https_send_query(ChainLink *Info, SSLData_t *S)
+{
+  IOData_t *io;
+  gchar *query, *msg_enc;
+  void *link;
+
+  /* Create the query */
+  query = a_Http_make_query_str(S->Url, FALSE);
+
+  /* send query */
+  msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("Sending query to %s..."));
+  BW_MSG(S->web, 1, msg_enc, URL_HOST(S->Url));
+  g_free(msg_enc);
+  io = a_DBIO_new(S->bio);
+  io->Op = IOWrite;
+  a_IO_set_buf(io, query, strlen(query));
+  io->Flags |= IOFlag_FreeIOBuf;
+  io->ExtData = NULL;
+  link = a_Chain_link_new(Info, a_Https_ccc, BCK, a_DBIO_ccc,2,2);
+  a_DBIO_ccc(OpStart, 1,0, link, io, NULL);
+}
+
+/*
+ * Expect the HTTP query's answer
+ */
+static void Https_expect_answer(SSLData_t *S)
+{
+  IOData_t *io2;
+
+  /* receive answer */
+  io2 = a_DBIO_new(S->bio);
+  io2->Op = IORead;
+  a_IO_set_buf(io2,g_malloc(IOBufLen_Http),IOBufLen_Http);
+  io2->Flags |= IOFlag_FreeIOBuf;
+  io2->ExtData = (void *) S->Url;
+  a_DBIO_ccc(OpStart, 2, 0,a_Chain_new(), io2, NULL);
+}
+
+/*
+ * Asynchronously create a new http connection for 'Url'
+ * We'll set some socket parameters; the rest will be set later
+ * when the IP is known.
+ * ( Data = Requested Url; ExtraData = Web structure )
+ * Return value: 0 on success, -1 otherwise
+ */
+gint Https_get(ChainLink *Info, void *Data1, void *Data2)
+{
+  void *link;
+  const DilloUrl *Url = Data1;
+  SSLData_t *S = a_Klist_get_data(ValidSSLs, (gint)Info->LocalKey);
+  gchar hostname[256], *Host = hostname, *msg_enc;
+
+  /* Reference Info data */
+  S->Info = Info;
+  /* Reference Web data */
+  S->web = Data2;
+
+  Host = (gchar *)URL_HOST(Url);
+  
+  /* Set more socket parameters */
+  S->Url = Url;
+
+  /* Let the user know what we'll do */
+  msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("DNS solving %s"));
+  BW_MSG(S->web, 1, msg_enc, URL_HOST(S->Url));
+  g_free(msg_enc);
+
+  /* Let the DNS engine solve the hostname, and when done,
+   * we'll try to connect the socket */
+  link = a_Chain_link_new(Info, a_Https_ccc, BCK, a_Dns_ccc, 1, 1);
+  a_Chain_bcb(OpStart,Info, Host,NULL);
+  
+  return 0;
+}
+
+/*
+ * CCC function for the HTTP module
+ */
+void
+a_Https_ccc(int Op, int Branch, int Dir, ChainLink *Info,
+            void *Data1, void *Data2)
+{
+  gint SKey = (gint)Info->LocalKey;
+  SSLData_t *S = a_Klist_get_data(ValidSSLs, SKey);
+  gchar *msg_enc;
+
+  if ( Branch == 1 ) {
+    /* DNS query branch */
+      switch (Op) {  
+      case OpStart:
+	SKey = Https_SSL_new();
+	Info->LocalKey = (void *) SKey;
+	if (Https_get(Info, Data1, Data2) < 0) {
+	  DEBUG_MSG(2, _(" HTTPS: new abort handler! #2\n"));
+	  S = a_Klist_get_data(ValidSSLs, SKey);
+	  msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: %s"));
+	  BW_MSG(S->web, 1, msg_enc, g_strerror(S->Err));
+	  g_free(msg_enc);
+	  Https_SSL_free(SKey);
+	  a_Chain_fcb(OpAbort, Info, NULL, NULL);
+	}
+      break;
+      case OpSend:
+	/* Successful DNS answer; save the IP */
+	if (S)
+	  {
+	    DilloHost *dh=(DilloHost *)(((GSList *)Data1)->data);
+	    S->ip_addr = *(int *)dh->data;
+	  }
+	break;
+      case OpEnd:
+      if (S) {
+	/* Unlink DNS_Info */
+	a_Chain_del_link(Info, BCK);
+	/* start connecting the socket */
+	if (Https_connect_SSL(Info) < 0) {
+	  DEBUG_MSG(2, _(" HTTP: new abort handler! #1\n"));
+	  msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: %s"));
+	  BW_MSG(S->web, 1, msg_enc, g_strerror(S->Err));
+	  g_free(msg_enc);
+	  Https_SSL_free(SKey);
+	  a_Chain_fcb(OpAbort, Info, NULL, NULL);
+	}
+      }
+      break;
+    case OpAbort:
+      /* DNS wasn't able to resolve the hostname */
+      if (S) {
+	/* Unlink DNS_Info */
+	a_Chain_del_link(Info, BCK);
+	msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: Dns can't solve %s"));
+	BW_MSG(S->web, 0, msg_enc, URL_HOST(S->Url));
+	g_free(msg_enc);
+	BIO_free_all(S->bio);
+	Https_SSL_free(SKey);
+	/* send abort message to higher-level functions */
+	a_Chain_fcb(OpAbort, Info, NULL, NULL);
+      }
+      break;
+      
+      }
+  
+  } else if ( Branch == 2 ) {
+    /* IO send-query branch */
+    switch (Op) {
+    case OpStart:
+      /* LocalKey was set by branch 1 */
+      break;
+    case OpEnd:
+      /* finished sending the HTTP query */
+      if (S) {
+		  msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("Query sent, waiting for reply..."));
+	BW_MSG(S->web, 1, msg_enc);
+	g_free(msg_enc);
+	a_Chain_del_link(Info, BCK);
+	a_Chain_fcb(OpEnd, Info, NULL, NULL);
+      }
+      break;
+    case OpAbort:
+      /* something bad happened... */
+      /* unlink IO_Info */
+      if (S) {
+	a_Chain_del_link(Info, BCK);
+	a_Chain_fcb(OpAbort, Info, NULL, NULL);
+	Https_SSL_free(SKey);
+      }
+      break;
+    }
+
+  } else if ( Branch == -1 ) {
+    /* Backwards abort */
+    switch (Op) {
+    case OpAbort:
+      /* something bad happened... */
+      DEBUG_MSG(2, "Http: OpAbort [-1]\n");
+      Https_SSL_free(SKey);
+      a_Chain_bcb(OpAbort, Info, NULL, NULL);
+      g_free(Info);
+      break;
+    }
+  }
+}
+
+
+
+/*
+ * Deallocate memory used by http module
+ * (Call this one at exit time)
+ */
+void a_Https_freeall(void)
+{
+  if (ssl_ctx) SSL_CTX_free(ssl_ctx);
+  a_Klist_free(&ValidSSLs);
+}
+
+#endif
+
diff -pruN dillo-0.8.6/src/IO/mime.c dillo-0.8.6-i18n-misc-20060709/src/IO/mime.c
--- dillo-0.8.6/src/IO/mime.c	2006-03-30 03:30:01.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/IO/mime.c	2006-05-16 01:21:09.000000000 +0900
@@ -9,6 +9,8 @@
  * (at your option) any later version.
  */
 
+#include <config.h>
+#include "../intl.h"
 #include "mime.h"
 #include "../msg.h"
 #include "../list.h"
diff -pruN dillo-0.8.6/src/Makefile.am dillo-0.8.6-i18n-misc-20060709/src/Makefile.am
--- dillo-0.8.6/src/Makefile.am	2005-05-08 05:19:59.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/Makefile.am	2006-05-16 01:21:08.000000000 +0900
@@ -1,4 +1,4 @@
-AM_CPPFLAGS=-DDILLORC_SYS='"$(sysconfdir)/dillorc"' @LIBJPEG_CPPFLAGS@
+AM_CPPFLAGS=-DDILLORC_SYS='"$(sysconfdir)/dillorc"' @LIBJPEG_CPPFLAGS@ -DLOCALEDIR='"$(localedir)"' -D__NO_STRING_INLINES
 AM_CFLAGS = @GTK_CFLAGS@ @LIBPNG_CFLAGS@
 
 SUBDIRS = IO
@@ -11,17 +11,38 @@ dillo_LDFLAGS = @LIBJPEG_LDFLAGS@ @LIBPT
 dillo_SOURCES = \
 	msg.h \
 	acconfig.h \
-	chain.h \
-	chain.c \
-	commands.c \
-	commands.h \
+	adblock.c \
+	adblock.h \
+	auth.c \
+	auth.h \
+	bitvec.c \
+	bitvec.h \
+	bookmark.c \
+	bookmark.h \
+	browser.h \
 	cache.c	\
 	cache.h	\
 	capi.c \
 	capi.h \
+	chain.c \
+	chain.h \
+	colors.c \
+	colors.h \
+	commands.c \
+	commands.h \
+	cookies.c \
+	cookies.h \
 	debug.h \
-	dw.h \
+	dicache.c \
+	dicache.h \
+	dillo.c \
+	dillo.h \
+	dns.c \
+	dns.h \
+	doc.c \
+	doc.h \
 	dw.c \
+	dw.h \
 	dw_aligned_page.c \
 	dw_aligned_page.h \
 	dw_bullet.c \
@@ -32,8 +53,8 @@ dillo_SOURCES = \
 	dw_container.h \
 	dw_embed_gtk.c	\
 	dw_embed_gtk.h	\
-	dw_ext_iterator.h \
 	dw_ext_iterator.c \
+	dw_ext_iterator.h \
 	dw_gtk_scrolled_frame.c \
 	dw_gtk_scrolled_frame.h \
 	dw_gtk_scrolled_window.c \
@@ -70,15 +91,6 @@ dillo_SOURCES = \
 	web.h	\
 	progressbar.c \
 	progressbar.h \
-	dillo.c \
-	dillo.h \
-	bookmark.c \
-	bookmark.h \
-	browser.h \
-	dicache.c \
-	dicache.h \
-	dns.c \
-	dns.h \
 	gtk_ext_button.c \
 	gtk_ext_button.h \
 	gtk_ext_menu.c \
@@ -107,22 +119,25 @@ dillo_SOURCES = \
 	menu.h \
 	prefs.c \
 	prefs.h \
-	colors.c \
-	colors.h \
-	bitvec.c \
-	bitvec.h \
 	klist.c \
 	klist.h \
 	strbuf.c \
 	strbuf.h \
 	url.c \
 	url.h \
-	cookies.c \
-	cookies.h \
 	list.h \
 	binaryconst.h \
 	pixmaps.h \
 	dpiapi.c \
-	dpiapi.h
+	dpiapi.h \
+	i18n.c \
+	i18n.h \
+	i18n_gtk.c \
+	i18n_gtk.h \
+	gtkframeset.c \
+	gtkframeset.h \
+	intl.h \
+	tab.c \
+	tab.h
 
 EXTRA_DIST = chg srch
diff -pruN dillo-0.8.6/src/Makefile.in dillo-0.8.6-i18n-misc-20060709/src/Makefile.in
--- dillo-0.8.6/src/Makefile.in	2006-04-27 01:07:25.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/Makefile.in	2006-05-16 01:21:08.000000000 +0900
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
@@ -14,8 +14,6 @@
 
 @SET_MAKE@
 
-SOURCES = $(dillo_SOURCES)
-
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -23,6 +21,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 top_builddir = ..
+
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
@@ -39,61 +38,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-bin_PROGRAMS = dillo$(EXEEXT)
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS)
-am_dillo_OBJECTS = chain.$(OBJEXT) commands.$(OBJEXT) cache.$(OBJEXT) \
-	capi.$(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_statuslabel.$(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_table_cell.$(OBJEXT) dw_tooltip.$(OBJEXT) \
-	dw_widget.$(OBJEXT) findtext.$(OBJEXT) selection.$(OBJEXT) \
-	web.$(OBJEXT) progressbar.$(OBJEXT) dillo.$(OBJEXT) \
-	bookmark.$(OBJEXT) dicache.$(OBJEXT) dns.$(OBJEXT) \
-	gtk_ext_button.$(OBJEXT) gtk_ext_menu.$(OBJEXT) \
-	gtk_ext_menu_item.$(OBJEXT) gtk_menu_title.$(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) strbuf.$(OBJEXT) url.$(OBJEXT) \
-	cookies.$(OBJEXT) dpiapi.$(OBJEXT)
-dillo_OBJECTS = $(am_dillo_OBJECTS)
-dillo_DEPENDENCIES = ../dpip/libDpip.a IO/libDio.a
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(dillo_SOURCES)
-DIST_SOURCES = $(dillo_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-exec-recursive install-info-recursive \
-	install-recursive installcheck-recursive installdirs-recursive \
-	pdf-recursive ps-recursive uninstall-info-recursive \
-	uninstall-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
@@ -123,6 +67,7 @@ EXEEXT = @EXEEXT@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_CONFIG = @GLIB_CONFIG@
 GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_CONFIG = @GTK_CONFIG@
 GTK_LIBS = @GTK_LIBS@
@@ -130,9 +75,12 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
 LDFLAGS = @LDFLAGS@
 LIBFLTK_CXXFLAGS = @LIBFLTK_CXXFLAGS@
 LIBFLTK_LIBS = @LIBFLTK_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
 LIBJPEG_CPPFLAGS = @LIBJPEG_CPPFLAGS@
 LIBJPEG_LDFLAGS = @LIBJPEG_LDFLAGS@
 LIBJPEG_LIBS = @LIBJPEG_LIBS@
@@ -144,8 +92,13 @@ LIBPTHREAD_LIBS = @LIBPTHREAD_LIBS@
 LIBS = @LIBS@
 LIBSSL_LIBS = @LIBSSL_LIBS@
 LIBZ_LIBS = @LIBZ_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -154,11 +107,16 @@ PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+XFT_CONFIG = @XFT_CONFIG@
+XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_RANLIB = @ac_ct_RANLIB@
@@ -170,8 +128,6 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TR
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -190,9 +146,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
-mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
@@ -204,25 +160,51 @@ target_alias = @target_alias@
 target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
-AM_CPPFLAGS = -DDILLORC_SYS='"$(sysconfdir)/dillorc"' @LIBJPEG_CPPFLAGS@
+AM_CPPFLAGS = -DDILLORC_SYS='"$(sysconfdir)/dillorc"' @LIBJPEG_CPPFLAGS@ -DLOCALEDIR='"$(localedir)"' -D__NO_STRING_INLINES
 AM_CFLAGS = @GTK_CFLAGS@ @LIBPNG_CFLAGS@
+
 SUBDIRS = IO
+
+bin_PROGRAMS = dillo
+
 dillo_LDADD = ../dpip/libDpip.a IO/libDio.a @LIBJPEG_LIBS@ @LIBPNG_LIBS@ @GTK_LIBS@ @LIBZ_LIBS@ @LIBPTHREAD_LIBS@
 dillo_LDFLAGS = @LIBJPEG_LDFLAGS@ @LIBPTHREAD_LDFLAGS@
+
 dillo_SOURCES = \
 	msg.h \
 	acconfig.h \
-	chain.h \
-	chain.c \
-	commands.c \
-	commands.h \
+	adblock.c \
+	adblock.h \
+	auth.c \
+	auth.h \
+	bitvec.c \
+	bitvec.h \
+	bookmark.c \
+	bookmark.h \
+	browser.h \
 	cache.c	\
 	cache.h	\
 	capi.c \
 	capi.h \
+	chain.c \
+	chain.h \
+	colors.c \
+	colors.h \
+	commands.c \
+	commands.h \
+	cookies.c \
+	cookies.h \
 	debug.h \
-	dw.h \
+	dicache.c \
+	dicache.h \
+	dillo.c \
+	dillo.h \
+	dns.c \
+	dns.h \
+	doc.c \
+	doc.h \
 	dw.c \
+	dw.h \
 	dw_aligned_page.c \
 	dw_aligned_page.h \
 	dw_bullet.c \
@@ -233,8 +215,8 @@ dillo_SOURCES = \
 	dw_container.h \
 	dw_embed_gtk.c	\
 	dw_embed_gtk.h	\
-	dw_ext_iterator.h \
 	dw_ext_iterator.c \
+	dw_ext_iterator.h \
 	dw_gtk_scrolled_frame.c \
 	dw_gtk_scrolled_frame.h \
 	dw_gtk_scrolled_window.c \
@@ -271,15 +253,6 @@ dillo_SOURCES = \
 	web.h	\
 	progressbar.c \
 	progressbar.h \
-	dillo.c \
-	dillo.h \
-	bookmark.c \
-	bookmark.h \
-	browser.h \
-	dicache.c \
-	dicache.h \
-	dns.c \
-	dns.h \
 	gtk_ext_button.c \
 	gtk_ext_button.h \
 	gtk_ext_menu.c \
@@ -308,68 +281,140 @@ dillo_SOURCES = \
 	menu.h \
 	prefs.c \
 	prefs.h \
-	colors.c \
-	colors.h \
-	bitvec.c \
-	bitvec.h \
 	klist.c \
 	klist.h \
 	strbuf.c \
 	strbuf.h \
 	url.c \
 	url.h \
-	cookies.c \
-	cookies.h \
 	list.h \
 	binaryconst.h \
 	pixmaps.h \
 	dpiapi.c \
-	dpiapi.h
+	dpiapi.h \
+	i18n.c \
+	i18n.h \
+	i18n_gtk.c \
+	i18n_gtk.h \
+	gtkframeset.c \
+	gtkframeset.h \
+	intl.h \
+	tab.c \
+	tab.h
+
 
 EXTRA_DIST = chg srch
+subdir = src
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = dillo$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_dillo_OBJECTS = adblock.$(OBJEXT) auth.$(OBJEXT) bitvec.$(OBJEXT) \
+	bookmark.$(OBJEXT) cache.$(OBJEXT) capi.$(OBJEXT) \
+	chain.$(OBJEXT) colors.$(OBJEXT) commands.$(OBJEXT) \
+	cookies.$(OBJEXT) dicache.$(OBJEXT) dillo.$(OBJEXT) \
+	dns.$(OBJEXT) doc.$(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_statuslabel.$(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_table_cell.$(OBJEXT) dw_tooltip.$(OBJEXT) \
+	dw_widget.$(OBJEXT) findtext.$(OBJEXT) selection.$(OBJEXT) \
+	web.$(OBJEXT) progressbar.$(OBJEXT) gtk_ext_button.$(OBJEXT) \
+	gtk_ext_menu.$(OBJEXT) gtk_ext_menu_item.$(OBJEXT) \
+	gtk_menu_title.$(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) klist.$(OBJEXT) \
+	strbuf.$(OBJEXT) url.$(OBJEXT) dpiapi.$(OBJEXT) i18n.$(OBJEXT) \
+	i18n_gtk.$(OBJEXT) gtkframeset.$(OBJEXT) tab.$(OBJEXT)
+dillo_OBJECTS = $(am_dillo_OBJECTS)
+dillo_DEPENDENCIES = ../dpip/libDpip.a IO/libDio.a
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/adblock.Po ./$(DEPDIR)/auth.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/bitvec.Po ./$(DEPDIR)/bookmark.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/cache.Po ./$(DEPDIR)/capi.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/chain.Po ./$(DEPDIR)/colors.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/commands.Po ./$(DEPDIR)/cookies.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dicache.Po ./$(DEPDIR)/dillo.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dns.Po ./$(DEPDIR)/doc.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dpiapi.Po ./$(DEPDIR)/dw.Po \
+@AMDEP_TRUE@	./$(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_statuslabel.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_table_cell.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/dw_tooltip.Po ./$(DEPDIR)/dw_widget.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/findtext.Po ./$(DEPDIR)/gif.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/gtk_ext_button.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/gtk_ext_menu.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/gtk_ext_menu_item.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/gtk_menu_title.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/gtkframeset.Po ./$(DEPDIR)/history.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/html.Po ./$(DEPDIR)/i18n.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/i18n_gtk.Po ./$(DEPDIR)/image.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/interface.Po ./$(DEPDIR)/jpeg.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/klist.Po ./$(DEPDIR)/menu.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/misc.Po ./$(DEPDIR)/nav.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/plain.Po ./$(DEPDIR)/png.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/prefs.Po ./$(DEPDIR)/progressbar.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/selection.Po ./$(DEPDIR)/strbuf.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/tab.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) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(dillo_SOURCES)
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+	ps-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 = $(srcdir)/Makefile.in Makefile.am
+DIST_SUBDIRS = $(SUBDIRS)
+SOURCES = $(dillo_SOURCES)
+
 all: all-recursive
 
 .SUFFIXES:
 .SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/Makefile'; \
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 	cd $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu  src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+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)
-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	$(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" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
 	  else :; fi; \
 	done
 
@@ -377,8 +422,8 @@ 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"; \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f $(DESTDIR)$(bindir)/$$f; \
 	done
 
 clean-binPROGRAMS:
@@ -388,11 +433,13 @@ dillo$(EXEEXT): $(dillo_OBJECTS) $(dillo
 	$(LINK) $(dillo_LDFLAGS) $(dillo_OBJECTS) $(dillo_LDADD) $(LIBS)
 
 mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adblock.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth.Po@am__quote@
 @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@
@@ -404,6 +451,7 @@ distclean-compile:
 @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)/doc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dpiapi.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@
@@ -432,8 +480,11 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_ext_menu.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_ext_menu_item.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_menu_title.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkframeset.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)/i18n.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i18n_gtk.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@
@@ -447,22 +498,31 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progressbar.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/selection.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strbuf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tab.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@
 
 .c.o:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
 
 .c.obj:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@	  -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@	fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
 uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
@@ -472,13 +532,7 @@ uninstall-info-am:
 #     (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):
-	@failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -490,7 +544,7 @@ $(RECURSIVE_TARGETS):
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
+	   || 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; \
@@ -498,13 +552,7 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-	@failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
 	case "$@" in \
 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -525,7 +573,7 @@ maintainer-clean-recursive:
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -536,6 +584,14 @@ ctags-recursive:
 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -544,22 +600,19 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
-tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	if (etags --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
-	  empty_fix=.; \
 	else \
 	  include_option=--include; \
-	  empty_fix=; \
 	fi; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
+	    test -f $$subdir/TAGS && \
 	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
@@ -569,11 +622,10 @@ TAGS: tags-recursive $(HEADERS) $(SOURCE
 	  done | \
 	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
@@ -596,6 +648,10 @@ GTAGS:
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -609,7 +665,7 @@ distdir: $(DISTFILES)
 	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
 	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
 	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
 	  else \
 	    dir=''; \
 	  fi; \
@@ -624,17 +680,15 @@ distdir: $(DISTFILES)
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
 	    (cd $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$(top_distdir)" \
+	        distdir=../$(distdir)/$$subdir \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -644,9 +698,8 @@ check: check-recursive
 all-am: Makefile $(PROGRAMS)
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
+
 install: install-recursive
 install-exec: install-exec-recursive
 install-data: install-data-recursive
@@ -666,7 +719,7 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-rm -f $(CONFIG_CLEAN_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -685,8 +738,6 @@ dvi: dvi-recursive
 
 dvi-am:
 
-html: html-recursive
-
 info: info-recursive
 
 info-am:
@@ -722,19 +773,22 @@ uninstall-am: uninstall-binPROGRAMS unin
 
 uninstall-info: uninstall-info-recursive
 
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
-	clean clean-binPROGRAMS clean-generic clean-recursive ctags \
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-recursive ctags \
 	ctags-recursive distclean distclean-compile distclean-generic \
-	distclean-recursive distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-binPROGRAMS \
-	install-data install-data-am install-exec install-exec-am \
-	install-info install-info-am install-man install-strip \
-	installcheck installcheck-am installdirs installdirs-am \
-	maintainer-clean maintainer-clean-generic \
-	maintainer-clean-recursive mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am \
-	uninstall-binPROGRAMS uninstall-info-am
+	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 \
+	pdf pdf-am pdf-recursive ps ps-am ps-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 -pruN dillo-0.8.6/src/adblock.c dillo-0.8.6-i18n-misc-20060709/src/adblock.c
--- dillo-0.8.6/src/adblock.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/adblock.c	2006-05-16 01:21:08.000000000 +0900
@@ -0,0 +1,143 @@
+/*
+ * File: adblock.c
+ *
+ * Copyright 2005 Rudolf Polzer   <atfield-dt@durchnull.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.
+ */
+
+/* Adblock implementation.
+ * This implementation uses a simple file ~/.dillo/adblock.txt which contains a
+ * list of wildcard expressions to be matched. To be compatible with Firefox,
+ * lines starting with [ will be ignored.
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <fnmatch.h>
+
+#include <glib.h>
+
+#include "debug.h"
+#include "misc.h"
+#include "url.h"
+
+#include "adblock.h"
+
+#define DEBUG_LEVEL 1
+
+#define LINE_MAXLEN 4096
+static gboolean disabled;
+static GPtrArray *blocked;
+
+static FILE *Adblock_fopen(const char *file, gchar *init_str);
+
+/*
+ * Return a file pointer. If the file doesn't exist, try to create it,
+ * with the optional 'init_str' as its content.
+ */
+static FILE *Adblock_fopen(const char *filename, gchar *init_str)
+{
+   FILE *F_in;
+   int fd;
+
+   if ((F_in = fopen(filename, "r+")) == NULL) {
+      /* Create the file */
+      fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
+      if (fd != -1) {
+         if (init_str)
+            write(fd, init_str, strlen(init_str));
+         close(fd);
+
+         DEBUG_MSG(10, "Adblock: Created file: %s\n", filename);
+         F_in = Adblock_fopen(filename, NULL);
+      } else {
+         DEBUG_MSG(10, "Adblock: Could not create file: %s!\n", filename);
+      }
+   }
+
+   /* set close on exec */
+   fcntl(fileno(F_in), F_SETFD, FD_CLOEXEC | fcntl(fileno(F_in), F_GETFD));
+
+   return F_in;
+}
+
+void a_Adblock_init()
+{
+   char *filename;
+   char line[LINE_MAXLEN];
+   FILE *file_stream;
+   guint urls;
+
+   disabled = TRUE;
+   
+   filename = a_Misc_prepend_user_home(".dillo/adblock.txt");
+   file_stream = Adblock_fopen(filename, "[Adblock]\n");
+   g_free(filename);
+
+   if (!file_stream) {
+      DEBUG_MSG(10, "ERROR: Can't open ~/.dillo/adblock.txt, disabling adblock\n");
+      return;
+   }
+
+   blocked = g_ptr_array_new();
+
+   urls = 0;
+   DEBUG_MSG(10, "Loading Adblock list...\n");
+   while (!feof(file_stream)) {
+      line[0] = '\0';
+      fgets(line, LINE_MAXLEN, file_stream);
+      g_strstrip(line);
+      if(line[0] == '\0')
+         continue;
+      if(line[0] == '[')
+         continue;
+      g_ptr_array_add(blocked, g_strdup(line));
+      ++urls;
+   }
+   DEBUG_MSG(10, "loaded %u adblock entries.\n", urls);
+
+   disabled = FALSE;
+}
+
+void a_Adblock_freeall( void )
+{
+   guint i;
+   if(disabled)
+      return;
+   for(i = 0; i != blocked->len; ++i)
+      g_free(g_ptr_array_index(blocked, i));
+   g_ptr_array_free(blocked, TRUE);
+}
+
+gboolean a_Adblock_isblocked(const DilloUrl *request_url)
+{
+   guint i;
+   DEBUG_MSG(10, "running adblock on %s\n", URL_STR(request_url));
+// g_print("running adblock on %s\n", URL_STR(request_url));
+   if(disabled)
+      return FALSE;
+   if(request_url == NULL)
+      return FALSE;
+   else
+   {
+      const char *url = URL_STR(request_url);
+      for(i = 0; i != blocked->len; ++i)
+      {
+         const char *pattern = (const char *) g_ptr_array_index(blocked, i);
+         if(!fnmatch(pattern, url, 0))
+            return TRUE;
+      }
+      return FALSE;
+   }
+}
+
+// vim: sw=3 et ts=3
diff -pruN dillo-0.8.6/src/adblock.h dillo-0.8.6-i18n-misc-20060709/src/adblock.h
--- dillo-0.8.6/src/adblock.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/adblock.h	2006-05-16 01:21:08.000000000 +0900
@@ -0,0 +1,10 @@
+#ifndef __ADBLOCK_H__
+#define __ADBLOCK_H__
+
+#include "url.h"
+
+void  a_Adblock_init( void );
+gboolean a_Adblock_isblocked(const DilloUrl *request_url);
+void  a_Adblock_freeall( void );
+
+#endif
diff -pruN dillo-0.8.6/src/auth.c dillo-0.8.6-i18n-misc-20060709/src/auth.c
--- dillo-0.8.6/src/auth.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/auth.c	2006-05-16 01:21:08.000000000 +0900
@@ -0,0 +1,134 @@
+#include <config.h>
+#include "auth.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "msg.h"
+#include "intl.h"
+#include "klist.h"
+#include "list.h"
+#include "cache.h"
+#include "web.h"
+#include "interface.h"
+#include "nav.h"
+#include "history.h"
+#include "misc.h"
+
+void Auth_confirmed(DilloDoc *dd);
+void Auth_refused(DilloDoc *dd);
+void Auth_load_authenticated(DilloDoc *dd, DilloUrl *url);
+
+typedef struct _Realm Realm;
+
+struct _Realm {
+   DilloUrl *base_url;
+   GString *auth;
+};
+
+static Realm *realms = NULL;
+static gint num_realms;
+static gint realms_max = 16;
+
+void a_Auth_byrealm(GString *auth_realm, DilloUrl *NewUrl, DilloDoc *dd)
+{
+   /* we already have a password dialogue open */
+   if (dd->auth_await_url)
+      return;
+
+   dd->auth_await_url = a_Url_dup(NewUrl);
+   auth_realm = g_string_append(auth_realm, "\n");
+   a_Interface_passwd_dialog(dd->bw, auth_realm->str,
+                             Auth_confirmed, dd,
+                             Auth_refused, dd);
+}
+
+GString *a_Auth_byurl(DilloUrl *n)
+{
+   gchar *offset;
+   int i, longest = -1, len = 0, longlen = 0;
+   gchar *ptr;
+
+   if (!n)
+      return NULL;
+
+   for (i = 0; i < num_realms; i++) {
+      ptr = URL_STR(realms[i].base_url);
+      offset = strrchr(ptr, '/');
+      if (!offset)
+         offset = ptr + strlen(ptr);
+      if (strncmp(URL_STR(n), ptr, (char*) offset - (char*) ptr) == 0) {
+         len = (gchar *) offset - (gchar *) ptr;
+         if (longlen <= len) {
+            longlen=len;
+            longest=i;
+         }
+      }
+   }
+   return longest == -1 ? NULL : realms[longest].auth;
+}
+
+void Auth_confirmed(DilloDoc *dd)
+{
+   DilloUrl *NewUrl;
+   GString *new_auth;
+   GtkEntry *uentry,*pentry;
+   GString *up = g_string_new("");
+   gchar *encoded;
+
+   if (!dd->auth_await_url)
+      return;
+
+   NewUrl = dd->auth_await_url;
+
+   /* are we still trying to browse the url that wants authentication? */
+
+   if (a_Nav_stack_size(dd) != 0
+         && a_Url_cmp(a_History_get_url(NAV_TOP(dd)), NewUrl) != 0) {
+      MSG(_("Browser Url has changed\n"));
+      /* free the url here, maybe ? */
+      a_Url_free(NewUrl);
+      dd->auth_await_url = NULL;
+      return;
+   }
+
+   /* fetch and encode authorization */
+   uentry = GTK_ENTRY(dd->bw->passwd_dialog_uentry);
+   pentry = GTK_ENTRY(dd->bw->passwd_dialog_pentry);
+   /* ... */
+   g_string_sprintfa(up, "%s:%s", gtk_entry_get_text(uentry),
+                     gtk_entry_get_text(pentry));
+   new_auth = g_string_new("");
+   encoded = a_Misc_encode_base64(up->str);
+   g_string_sprintfa(new_auth, "Basic %s", encoded);
+   g_free(encoded);
+   a_List_add(realms, num_realms, realms_max);
+   realms[num_realms].base_url = a_Url_dup(NewUrl);
+   realms[num_realms].auth = new_auth;
+   num_realms++;
+   Auth_load_authenticated(dd, NewUrl);
+   dd->auth_await_url = NULL;
+}
+
+void Auth_refused(DilloDoc *dd)
+{
+   DilloUrl *NewUrl;
+
+   if (!dd->auth_await_url)
+      return;
+   NewUrl = dd->auth_await_url;
+   g_return_if_fail(NewUrl);
+   a_Url_free(NewUrl);
+   dd->auth_await_url = NULL;
+}
+
+void Auth_load_authenticated(DilloDoc *dd, DilloUrl *NewUrl)
+{
+   a_Url_set_flags(NewUrl, URL_FLAGS(NewUrl) | URL_E2EReload | URL_RealmAccess);
+   a_Nav_push(dd, NewUrl);
+   a_Url_free(NewUrl);
+}
+  
+void a_Auth_freeall(void)
+{
+}
+
diff -pruN dillo-0.8.6/src/auth.h dillo-0.8.6-i18n-misc-20060709/src/auth.h
--- dillo-0.8.6/src/auth.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/auth.h	2006-05-16 01:21:08.000000000 +0900
@@ -0,0 +1,14 @@
+#ifndef __AUTH_H__
+#define __AUTH_H__
+
+#include <glib.h>
+#include <gtk/gtk.h>
+#include "url.h"
+#include "doc.h"
+
+void a_Auth_byrealm(GString *auth_realm,DilloUrl *NewUrl, DilloDoc *dd);
+GString *a_Auth_byurl(DilloUrl *url);
+void a_Auth_freeall(void);
+
+#endif /* AUTH_H */
+
diff -pruN dillo-0.8.6/src/bookmark.c dillo-0.8.6-i18n-misc-20060709/src/bookmark.c
--- dillo-0.8.6/src/bookmark.c	2005-10-28 01:20:06.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/bookmark.c	2006-07-08 21:00:09.000000000 +0900
@@ -14,6 +14,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "i18n.h"
 #include "msg.h"
 #include "browser.h"
 #include "history.h"
@@ -39,10 +40,10 @@ void a_Bookmarks_init(void)
  * and finally ask it to add a new bookmark.
  * (this is an example of dpi chat)
  */
-void a_Bookmarks_chat_add(BrowserWindow *Bw, char *Cmd, char *answer)
+void a_Bookmarks_chat_add(DilloDoc *Dd, char *Cmd, char *answer)
 {
    static char *cmd1 = NULL, *cmd2 = NULL, *cmd3 = NULL, *cmd4 = NULL;
-   static BrowserWindow *bw = NULL;
+   static DilloDoc *dd = NULL;
 
    if (!cmd1) {
       cmd1 = a_Dpip_build_cmd("cmd=%s msg=%s", "chat", "Hi server");
@@ -53,26 +54,26 @@ void a_Bookmarks_chat_add(BrowserWindow 
 
    _MSG("a_Bookmarks_chat_add\n answer=%s\n", answer ? answer : "(null)");
 
-   if (Bw)
-      bw = Bw;
+   if (Dd)
+      dd = Dd;
    if (!cmd4 && Cmd)
       cmd4 = g_strdup(Cmd);
 
    if (!answer) {
-      a_Capi_dpi_send_cmd(NULL, bw, cmd1, "bookmarks", 1);
+      a_Capi_dpi_send_cmd(NULL, dd, cmd1, "bookmarks", 1);
 
    } else {
       /* we have an answer */
       if (answer) {
          if (*answer == 'H') {
             /* "Hi browser" */
-            a_Capi_dpi_send_cmd(NULL, bw, cmd2, "bookmarks", 0);
+            a_Capi_dpi_send_cmd(NULL, dd, cmd2, "bookmarks", 0);
          } else if (*answer == 'I') {
             /* "Is it worth?" */
-            a_Capi_dpi_send_cmd(NULL, bw, cmd3, "bookmarks", 0);
+            a_Capi_dpi_send_cmd(NULL, dd, cmd3, "bookmarks", 0);
          } else if (*answer == 'O') {
             /* "OK, send it!" */
-            a_Capi_dpi_send_cmd(NULL, bw, cmd4, "bookmarks", 0);
+            a_Capi_dpi_send_cmd(NULL, dd, cmd4, "bookmarks", 0);
             g_free(cmd4);
             cmd4 = NULL;
          }
@@ -83,34 +84,31 @@ void a_Bookmarks_chat_add(BrowserWindow 
 /*
  * Add the new bookmark through the bookmarks server
  */
-void a_Bookmarks_add(GtkWidget *widget, gpointer client_data)
+void a_Bookmarks_add(DilloDoc *dd, DilloUrl *url)
 {
-   BrowserWindow *bw = (BrowserWindow *)client_data;
-   DilloUrl *url;
    const gchar *title;
    gchar *cmd;
 
-   url = a_Menu_popup_get_url(bw);
-   g_return_if_fail(url != NULL);
+   g_return_if_fail(url != NULL && dd != NULL);
 
    /* if the page has no title, we'll use the url string */
    title = a_History_get_title_by_url(url, 1);
 
    cmd = a_Dpip_build_cmd("cmd=%s url=%s title=%s",
                           "add_bookmark", URL_STR(url), title);
-   a_Bookmarks_chat_add(bw, cmd, NULL);
+   a_Bookmarks_chat_add(dd, cmd, NULL);
    g_free(cmd);
 }
 
 /*
  * Request the server to show the bookmarks
  */
-void a_Bookmarks_show(BrowserWindow *bw)
+void a_Bookmarks_show(DilloDoc *dd)
 {
    DilloUrl *url;
 
    url = a_Url_new("dpi:/bm/", NULL, 0, 0, 0);
-   a_Nav_push(bw, url);
+   a_Nav_push(dd, url);
    a_Url_free(url);
 }
 
diff -pruN dillo-0.8.6/src/bookmark.h dillo-0.8.6-i18n-misc-20060709/src/bookmark.h
--- dillo-0.8.6/src/bookmark.h	2005-10-28 01:20:06.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/bookmark.h	2006-05-16 01:21:08.000000000 +0900
@@ -5,10 +5,11 @@
 
 
 void a_Bookmarks_init(void);
-void a_Bookmarks_add(GtkWidget *widget, gpointer client_data);
-void a_Bookmarks_show(BrowserWindow *bw);
+//void a_Bookmarks_add(GtkWidget *widget, gpointer client_data);
+void a_Bookmarks_add(DilloDoc *dd, DilloUrl *url);
+void a_Bookmarks_show(DilloDoc *dd);
 
 /* todo: this is for testing purposes */
-void a_Bookmarks_chat_add(BrowserWindow *Bw, char *Cmd, char *answer);
+void a_Bookmarks_chat_add(DilloDoc *Dd, char *Cmd, char *answer);
 
 #endif /* __BOOKMARK_H__ */
diff -pruN dillo-0.8.6/src/browser.h dillo-0.8.6-i18n-misc-20060709/src/browser.h
--- dillo-0.8.6/src/browser.h	2005-10-28 01:20:06.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/browser.h	2006-05-16 01:21:08.000000000 +0900
@@ -4,17 +4,17 @@
 #include <sys/types.h>
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
-
-#include "url.h"     /* for DilloUrl */
-
+#include "url.h"       /* for DilloUrl */
+#include "dw_style.h"  /* for DwStyle */
 
 typedef struct _BrowserWindow BrowserWindow;
 typedef struct _DilloMenuPopup DilloMenuPopup;
+typedef struct _DilloDoc DilloDoc;
 
 typedef struct {
     DilloUrl *Url;   /* URL-key for this cache connection */
     gint Flags;      /* {WEB_RootUrl, WEB_Image, WEB_Download} */
-} BwUrls;
+} DdUrls;
 
 /* The popup menus so that we can call them. */
 struct _DilloMenuPopup
@@ -25,12 +25,16 @@ struct _DilloMenuPopup
    GtkWidget *over_back;
    GtkWidget *over_forw;
    GtkWidget *over_bug;
+   GtkWidget *over_frame;
+#ifndef DISABLE_TABS
+   GtkWidget *over_tab;
+#endif /* !DISABLE_TABS */
    DilloUrl *url;
    DilloUrl *url2;
    GtkWidget *ol_oi_submenu;
 };
 
-/* browser_window contains all widgets to create a single window */
+/* browser_window contains everything related to a window */
 struct _BrowserWindow
 {
    /* Control-Panel handleboxes --used for hiding */
@@ -38,6 +42,9 @@ struct _BrowserWindow
    /* Flag: TRUE when control-panel is hidden */
    gboolean fullwindow;
 
+   /* The tag for the idle function that sets button sensitivity. */
+   guint sens_idle_tag;
+
    /* widgets for the main window */
    GtkWidget *main_window;
    GtkWidget *back_button;
@@ -59,23 +66,111 @@ struct _BrowserWindow
    GtkWidget *imgprogress;
    GtkWidget *progress;
 
+   /* popup menu navigation widgets */
+   GtkWidget *back_op_menu_button;
+   GtkWidget *forw_op_menu_button;
+   GtkWidget *stop_op_menu_button;
+
    /* the keyboard accelerator table */
    GtkAccelGroup *accel_group;
 
+   /* the tooltips group */
+   GtkTooltips *tooltips;
+
    /* Popup menu for this BrowserWindow */
    DilloMenuPopup menu_popup;
 
-   /* The "Headings" and "Anchors" menus */
+   /* The Pagemark menu_item (points to individual document's pagemark menus */
    GtkWidget *pagemarks_menuitem;
-   GtkWidget *pagemarks_menu;
-   GtkWidget *pagemarks_last;
 
    /* "View page Bugs" menuitem so we can set its sensitivity */
    GtkWidget *viewbugs_menuitem;
 
+   /* The Frame menu_item (points to individual frame menus */
+   GtkWidget *frame_menuitem;
+
+   /* The Frameset menu_item (points to nested frameset menus */
+   GtkWidget *frameset_menuitem;
+
+   /* widgets for dialog boxes off main window */
+   GtkWidget *open_dialog_window;
+   GtkWidget *open_dialog_entry;
+   GtkWidget *openfile_dialog_window;
+   GtkWidget *quit_dialog_window;
+   GtkWidget *save_dialog_window;
+   GtkWidget *save_link_dialog_window;
+   GtkWidget *findtext_dialog;
+   GtkWidget *findtext_dialog_check;
+   GtkWidget *findtext_dialog_entry;
+   GtkWidget *search_dialog_window;
+   GtkWidget *search_dialog_entry;
+   GtkWidget *proxy_passwd_dialog_window;
+   GtkWidget *proxy_passwd_dialog_entry;
+   GtkWidget *question_dialog_window;
+   gpointer  question_dialog_data;
+   gpointer  question_dialog_answer;
+   GtkWidget *passwd_dialog_window;
+   GtkWidget *passwd_dialog_uentry;
+   GtkWidget *passwd_dialog_pentry;
+   GtkWidget *viewsource_window;
+   GtkWidget *pagebugs_window;
+   GtkWidget *full_screen_off_button;
+
+   /* the container widget, this contains either the tabbrowser
+    * or the docwin
+    */
+   GtkContainer *container;
+
+   /* tab width adjustment magic. Yes, it is magic. In essence,
+    * this contains the average width of a character in a string
+    * in the current display context and with the current language.
+    * This is used to calculate the expected width of tab labels
+    *
+    * the value is calculated when the tabbrowser is loaded
+    */
+   gfloat tab_label_average_character_width;
+
+   /* the currently displayed document */
+   DilloDoc *dd;
+
+   /* the findtext state (TRUE if search string has been found
+    * in the document or any of its children
+    */
+   gboolean found;
+
+   /* the list of documents to search through in findtext */
+   GList *dd_list;
+   /* the current index for dd_list */
+   guint dd_list_index;
+   /* The id for the idle function that sets button sensitivity. */
+   guint sens_idle_id;
+};
+
+/* dillo_doc contains all data pertaining to a single document */
+struct _DilloDoc
+{
+   /* the BrowserWindow this document is currently part of */
+   BrowserWindow *bw;
+
    /* This is the main document widget. (HTML rendering or whatever) */
    GtkWidget *docwin;
 
+   /* The initial style for the widget */
+   DwStyle *style;
+
+   /* for nested documents, points to parent document */
+   DilloDoc *parent;
+
+   /* This is the frameset widget. */
+   GtkWidget *frameset;
+
+   /* document name (as used in 'target=window_or_frame_name' attribute */
+   gchar *name;
+
+   /* The "Headings" and "Anchors" menus */
+   GtkWidget *pagemarks_menu;
+   GtkWidget *pagemarks_last;
+
    /* Current cursor type */
    GdkCursorType CursorType;
 
@@ -92,33 +187,16 @@ struct _BrowserWindow
    gint NumImages;
    /* Number of different images already loaded */
    gint NumImagesGot;
+   /* the current document progress */
+   gfloat progress;
+   /* 'ready' is true when the root document has finished loading */
+   gboolean ready;
 
    /* List of all Urls requested by this page (and its types) */
-   BwUrls *PageUrls;
+   DdUrls *PageUrls;
    gint NumPageUrls;
    gint MaxPageUrls;
 
-   /* widgets for dialog boxes off main window */
-   GtkWidget *open_dialog_window;
-   GtkWidget *open_dialog_entry;
-   GtkWidget *openfile_dialog_window;
-   GtkWidget *quit_dialog_window;
-   GtkWidget *save_dialog_window;
-   GtkWidget *save_link_dialog_window;
-   GtkWidget *findtext_dialog_window;
-   GtkWidget *findtext_dialog_check;
-   GtkWidget *findtext_dialog_entry;
-   GtkWidget *search_dialog_window;
-   GtkWidget *search_dialog_entry;
-   GtkWidget *proxy_passwd_dialog_window;
-   GtkWidget *proxy_passwd_dialog_entry;
-   GtkWidget *question_dialog_window;
-   gpointer  question_dialog_data;
-   gpointer  question_dialog_answer;
-   GtkWidget *viewsource_window;
-   GtkWidget *pagebugs_window;
-   GtkWidget *full_screen_off_button;
-
    /* Dillo navigation stack (holds indexes to history list) */
    gint *nav_stack;
    gint nav_stack_size;       /* [1 based] */
@@ -137,11 +215,8 @@ struct _BrowserWindow
     * redirection loops (accounts for WEB_RootUrl only) */
    gint redirect_level;
 
-   /* The id for the idle function that sets button sensitivity. */
-   guint sens_idle_id;
+   DilloUrl *auth_await_url;
 };
 
-
-
 #endif /* __BROWSER_H__ */
 
diff -pruN dillo-0.8.6/src/cache.c dillo-0.8.6-i18n-misc-20060709/src/cache.c
--- dillo-0.8.6/src/cache.c	2006-04-08 21:15:11.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/cache.c	2006-05-16 01:21:08.000000000 +0900
@@ -13,25 +13,34 @@
  * Dillo's cache module
  */
 
+#include <config.h>
 #include <ctype.h>              /* for tolower */
 #include <sys/types.h>
 
 #include <sys/stat.h>
+#include <time.h>
 #include <stdlib.h>
 #include <string.h>
 #include <fcntl.h>
 #include <unistd.h>
 
+#include "intl.h"
 #include "msg.h"
 #include "list.h"
 #include "IO/Url.h"
 #include "IO/IO.h"
+#include <zlib.h>
+
+#include "i18n.h"
 #include "web.h"
+#include "doc.h" 
 #include "dicache.h"
 #include "interface.h"
 #include "nav.h"
+#include "auth.h"
 #include "cookies.h"
 #include "misc.h"
+#include "prefs.h"
 
 #define NULLKey 0
 
@@ -46,7 +55,9 @@ typedef struct {
    const DilloUrl *Url;      /* Cached Url. Url is used as a primary Key */
    char *TypeDet;            /* MIME type string (detected from data) */
    char *TypeHdr;            /* MIME type string as from the HTTP Header */
+   const char *Encoding;     /* Data encoding */
    GString *Header;          /* HTTP header */
+   GString *AuthRealm;        /* Authentication realm */
    const DilloUrl *Location; /* New URI for redirects */
    void *Data;               /* Pointer to raw data */
    size_t ValidSize,         /* Actually size of valid range */
@@ -56,6 +67,7 @@ typedef struct {
    IOData_t *io;             /* Pointer to IO data */
    ChainLink *CCCQuery;      /* CCC link for querying branch */
    ChainLink *CCCAnswer;     /* CCC link for answering branch */
+   time_t Expires;           /* when this data should be reloaded */
 } CacheData_t;
 
 
@@ -206,16 +218,19 @@ static void Cache_entry_init(CacheData_t
    NewEntry->Url = a_Url_dup(Url);
    NewEntry->TypeDet = NULL;
    NewEntry->TypeHdr = NULL;
+   NewEntry->Encoding = NULL;
    NewEntry->Header = g_string_new("");
    NewEntry->Location = NULL;
    NewEntry->Data = NULL;
    NewEntry->ValidSize = 0;
    NewEntry->TotalSize = 0;
    NewEntry->BuffSize = 4096;
-   NewEntry->Flags = 0;
+   NewEntry->Flags = URL_FLAGS_(Url) & URL_Post ? CA_Expires : 0;
    NewEntry->io = NULL;
    NewEntry->CCCQuery = a_Chain_new();
    NewEntry->CCCAnswer = NULL;
+   NewEntry->AuthRealm = NULL;
+   NewEntry->Expires = 0;
 }
 
 /*
@@ -235,7 +250,7 @@ static CacheData_t *Cache_entry_add(cons
    CacheData_t *new_entry = g_new(CacheData_t, 1);
 
    if (Cache_entry_search(Url))
-      DEBUG_MSG(5, "WARNING: Cache_entry_add, leaking an entry.\n");
+      DEBUG_MSG(5, _("WARNING: Cache_entry_add, leaking an entry.\n"));
 
    Cache_entry_init(new_entry, Url);  /* Set safe values */
    g_hash_table_insert(CacheHash, (gpointer)new_entry->Url, new_entry);
@@ -251,6 +266,7 @@ static void Cache_entry_free(CacheData_t
    g_free(entry->TypeDet);
    g_free(entry->TypeHdr);
    g_string_free(entry->Header, TRUE);
+   g_free((gchar *)entry->Encoding);
    a_Url_free((DilloUrl *)entry->Location);
    g_free(entry->Data);
    g_free(entry);
@@ -297,13 +313,13 @@ static void Cache_entry_remove(CacheData
    InfoAnswer = entry->CCCAnswer;
 
    if (InfoQuery) {
-      DEBUG_MSG(2, "## Aborting CCCQuery\n");
+      DEBUG_MSG(2, _("## Aborting CCCQuery\n"));
       a_Cache_ccc(OpAbort, 1, BCK, InfoQuery, NULL, NULL);
    } else if (InfoAnswer) {
-      DEBUG_MSG(2, "## Aborting CCCAnswer\n");
+      DEBUG_MSG(2, _("## Aborting CCCAnswer\n"));
       a_Cache_ccc(OpAbort, 2, BCK, InfoAnswer, NULL, NULL);
    } else {
-      DEBUG_MSG(2, "## Aborting raw2\n");
+      DEBUG_MSG(2, _("## Aborting raw2\n"));
       Cache_entry_remove_raw(entry, NULL);
    }
 }
@@ -346,11 +362,11 @@ static gint Cache_prepare_reload(DilloUr
 
    if (!g_slist_find_custom(ClientQueue, url, Cache_client_url_cmp)) {
       /* There're no clients for this entry */
-      DEBUG_MSG(2, "## No more clients for this entry\n");
+      DEBUG_MSG(2, _("## No more clients for this entry\n"));
       Cache_entry_remove(NULL, url);
       return 1;
    } else {
-      MSG("Cache_prepare_reload: ERROR, entry still has clients\n");
+      MSG(_("Cache_prepare_reload: ERROR, entry still has clients\n"));
    }
 
    return 0;
@@ -364,18 +380,28 @@ static gint Cache_prepare_reload(DilloUr
 static gint Cache_open_url(DilloWeb *Web, CA_Callback_t Call, void *CbData)
 {
    void *link;
-   gint ClientKey;
+   gint ClientKey, imgOnOtherHost;
    ChainFunction_t cccFunct;
    DilloUrl *Url = Web->url;
    CacheData_t *entry = Cache_entry_search(Url);
 
    _MSG("Cache_open_url: %s %sFOUND\n", URL_STR(Url), entry ? "" : "NOT ");
 
+   imgOnOtherHost = ((URL_FLAGS(Url) & (URL_IsImage | URL_OnOtherHost))
+           != (URL_IsImage | URL_OnOtherHost));
+   if (entry && (entry->Flags & CA_Expires) &&
+           (!entry->Expires || entry->Expires <= time(NULL)) &&
+           !(URL_FLAGS(Url) & URL_MustCache) && imgOnOtherHost &&
+           !g_slist_find_custom(ClientQueue, Url, Cache_client_url_cmp)) {
+       Cache_entry_remove(entry, Url);
+       entry = NULL;
+       MSG_HTTP(_("Reloading >%s< because it shouldn't be cached\n"),
+               URL_STR(Url));
+   }
    if ( entry ) {
       /* URL is cached: feed our client with cached data */
       ClientKey = Cache_client_enqueue(entry->Url, Web, Call, CbData);
       Cache_delayed_process_queue(entry);
-
    } else {
       /* URL not cached: create an entry, send our client to the queue,
        * and open a new connection */
@@ -388,7 +414,10 @@ static gint Cache_open_url(DilloWeb *Web
                                  a_Cache_ccc, BCK, cccFunct, 1, 1);
          a_Chain_bcb(OpStart, entry->CCCQuery, (void *)entry->Url, Web);
       } else {
-         a_Interface_msg(Web->bw, "ERROR: unsupported protocol");
+		 gchar *msg_enc = a_I18n_locale_to_DILLO_CHARSET(
+				             _("ERROR: unsupported protocol"));
+         a_Interface_msg(Web->dd->bw, msg_enc);
+		 g_free(msg_enc);
          a_Cache_ccc(OpAbort, 1, FWD, entry->CCCQuery, NULL, NULL);
          ClientKey = 0; /* aborted */
       }
@@ -456,11 +485,12 @@ gint a_Cache_get_buf(const DilloUrl *Url
 
       /* Test for a redirection loop */
       if (entry->Flags & CA_RedirectLoop) {
-         g_warning ("Redirect loop for URL: >%s<\n", URL_STR_(Url));
+         g_warning (_("Redirect loop for URL: >%s<\n"), URL_STR_(Url));
          break;
       }
       /* Test for a working redirection */
-      if (entry && entry->Flags & CA_Redirect && entry->Location) {
+      if (entry && entry->Flags & CA_Redirect && entry->Location
+          && !entry->AuthRealm) {
          Url = entry->Location;
       } else
          break;
@@ -542,6 +572,32 @@ static GList *Cache_parse_multiple_field
 }
 #endif /* !DISABLE_COOKIES */
 
+static void Cache_force_min_expire(CacheData_t *entry, int min, guint stdExp) {
+   time_t t;
+
+   if (!(entry->Flags & CA_Expires) || (URL_FLAGS_(entry->Url) & URL_Post))
+      return;
+   if (min < 0) {
+      entry->Flags &= ~CA_Expires;
+      entry->Expires = 0;
+      return;
+   }
+   t = time(0);
+   if (entry->Expires && t > entry->Expires + 1000) {
+      if (!stdExp)
+         entry->Flags &= ~CA_Expires;
+      entry->Expires = 0;
+      MSG_HTTP(_("Bad clocks, ignore expire on >%s<\n"), URL_STR(entry->Url));
+      return;
+   }
+   if (min && (t += min) > entry->Expires) {
+      _MSG_HTTP(_("Forcing min expire %d on >%s< instead %ld\n"), min,
+                     URL_STR(entry->Url), entry->Expires ?
+                     entry->Expires - (t - min) : 0);
+      entry->Expires = t;
+   }
+}
+
 /*
  * Scan, allocate, and set things according to header info.
  * (This function needs the whole header to work)
@@ -549,10 +605,13 @@ static GList *Cache_parse_multiple_field
 static void Cache_parse_header(CacheData_t *entry, IOData_t *io, gint HdrLen)
 {
    gchar *header = entry->Header->str;
-   gchar *Length, *Type, *location_str;
+   gchar *Length, *Type, *CacheControl, *Date, *CC_ptr, *location_str;
+   guint expFlag;
+   gchar *Encoding;
 #ifndef DISABLE_COOKIES
    GList *Cookies;
 #endif
+   gchar *auth_type_realm;
 
    if ( HdrLen < 12 ) {
       /* Not enough info. */
@@ -564,15 +623,29 @@ static void Cache_parse_header(CacheData
          entry->Flags |= CA_ForceRedirect;  /* 301 Moved Permanently */
       else if ( header[11] == '2' )
          entry->Flags |= CA_TempRedirect;   /* 302 Temporal Redirect */
-
+      else if ( header[11] == '3' )
+         entry->Flags |= CA_Expires;        /* 303 See Other */
+      else if ( header[11] == '7' )
+         entry->Flags |= CA_Expires;        /* 307 Moved Temporarely */
+      /* TODO: should be here a_Url_free(entry->Location) ? */
+     
       location_str = Cache_parse_field(header, "Location");
       entry->Location = a_Url_new(location_str, URL_STR_(entry->Url), 0, 0, 0);
       g_free(location_str);
 
    } else if ( strncmp(header + 9, "404", 3) == 0 ) {
       entry->Flags |= CA_NotFound;
+   } else if ( strncmp(header + 9, "401", 3) == 0 ) {
+      auth_type_realm = Cache_parse_field(header,"WWW-Authenticate");
+      entry->Flags |= CA_Redirect;
+      if (entry->Location)
+         a_Url_free((DilloUrl*) entry->Location);
+      entry->Location = a_Url_dup(entry->Url);
+      entry->AuthRealm = g_string_new(auth_type_realm);
    }
 
+   expFlag = entry->Flags & CA_Expires;
+   
    entry->ValidSize = io->Status - HdrLen;
    if ( (Length = Cache_parse_field(header, "Content-Length")) != NULL ) {
       entry->Flags |= CA_GotLength;
@@ -582,6 +655,41 @@ static void Cache_parse_header(CacheData
          entry->TotalSize = 0;
    }
 
+   if ( (CacheControl = Cache_parse_field(header, "Expires")) != NULL ) {
+      entry->Flags |= CA_Expires;
+      entry->Expires = a_Cookies_create_timestamp(CacheControl);
+      g_free(CacheControl);
+   }
+
+   if ( (CacheControl = Cache_parse_field(header, "Cache-Control")) != NULL ) {
+      CC_ptr = CacheControl;
+      do {
+         while (*CC_ptr == ' ')
+            ++CC_ptr;
+         if ( !g_strncasecmp(CacheControl, "no-cache", 8) ) {
+            entry->Flags |= CA_Expires;
+            entry->Expires = 0;
+            break;
+         } else if ( !g_strncasecmp(CacheControl, "max-age=", 8) ) {
+            char *e;
+            long n;
+
+            if ( !(Date = Cache_parse_field(header, "Date")) ) {
+               MSG_HTTP(_("'Cache-Control: max-age=' without 'Date: ' header"));
+               break;
+            }
+           n = strtoul(CacheControl + 8, &e, 10);
+           if (e > CacheControl + 8 && n >= 0) {
+               entry->Flags |= CA_Expires;
+               entry->Expires = n + a_Cookies_create_timestamp(Date);
+            }
+            g_free(Date);
+            break;
+         }
+      } while ( (CC_ptr = strchr(CC_ptr, ',')) && *++CC_ptr );
+      g_free(CacheControl);
+   }
+
 #ifndef DISABLE_COOKIES
    /* BUG: If a server feels like mixing Set-Cookie2 and Set-Cookie
     * responses which aren't identical, then we have a problem. I don't
@@ -611,13 +719,32 @@ static void Cache_parse_header(CacheData
 
    /* Get Content-Type */
    if ( (Type = Cache_parse_field(header, "Content-Type")) == NULL ) {
-     MSG_HTTP("Server didn't send Content-Type in header.\n");
+     MSG_HTTP(_("Server didn't send Content-Type in header.\n"));
    } else {
       entry->TypeHdr = Type;
       /* This Content-Type is not trusted. It's checked against real data
        * in Cache_process_queue(); only then CA_GotContentType becomes true.
        */
    }
+   /* Get Content-Encoding */
+   if ( (Encoding = Cache_parse_field(header, "Content-Encoding")) == NULL ) {
+     //MSG_HTTP(_("Server didn't send Content-Encoding in header.\n"));
+     Encoding = NULL;
+   }
+   entry->Encoding = Encoding;
+
+   if (URL_FLAGS(entry->Url) & URL_IsImage || (Type && !strncmp(Type, "image/", 5))) {
+      Cache_force_min_expire(entry, prefs.min_image_expire_time, expFlag);
+   } else if (!(entry->Flags & CA_Expires) &&
+              (entry->Location ? entry->Location->query : entry->Url->query) &&
+              prefs.query_expire_time >= 0 && (Type && !strncmp(Type, "text/", 5))) {
+      entry->Flags |= CA_Expires;
+      entry->Expires = time(NULL) + prefs.query_expire_time;
+      MSG(_("Forcing default expire to query url >%s<\n"),
+         URL_STR(entry->Url));
+   } else {
+      Cache_force_min_expire(entry, prefs.min_page_expire_time, expFlag);
+   }
 }
 
 /*
@@ -650,6 +777,134 @@ static gint Cache_get_header(IOData_t *i
 }
 
 /*
+ * CONTENT-ENCODING: Process any encoded data
+ *
+ * Unfortunately we need to provide a private uncompress function as 
+ * the one in zlib assumes that a zlib header will appear in the compressed
+ * block -- gzip doesn't provide one so inflateInit2 must be called with
+ * negative MAX_WBITS to get the library to cope.
+ */
+
+static int 
+dillo_uncompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
+{
+    z_stream stream;
+    int err;
+
+    stream.next_in = (Bytef*)source;
+    stream.avail_in = (uInt)sourceLen;
+    /* Check for source > 64K on 16-bit machine: */
+    if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
+
+    stream.next_out = dest;
+    stream.avail_out = (uInt)*destLen;
+    if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
+
+    stream.zalloc = (alloc_func)0;
+    stream.zfree = (free_func)0;
+
+    err = inflateInit2(&stream, -MAX_WBITS);
+    if (err != Z_OK) return err;
+
+    err = inflate(&stream, Z_FINISH);
+    if (err != Z_STREAM_END) {
+        inflateEnd(&stream);
+        return err == Z_OK ? Z_BUF_ERROR : err;
+    }
+    *destLen = stream.total_out;
+
+    err = inflateEnd(&stream);
+    return err;
+}
+
+ 
+static void Cache_decode_data(CacheData_t *entry)
+{
+   void                        *new_Data = NULL;
+   int                         rc;
+   unsigned char       *p;
+   int                         method;
+   int                         flags;
+   int                         expand = 2;
+   uLongf                      destLen;
+
+   DEBUG_MSG(4, _("Cache_decode_data: got all data -- decodinging %s\n"), entry->Encoding);
+   if( strcmp(entry->Encoding, "x-gzip") == 0
+			|| strcmp(entry->Encoding, "gzip") == 0) {   
+      
+      /* entry->Data holds the data to expand */
+      /* entry->TotalSize is length of data */
+      
+      p = entry->Data;
+      if ( (*p++ != 0x1f) || (*p++ != 0x8b) ) {
+        DEBUG_MSG(5, _("Cache_decode_data: not gzip data!\n"));
+        goto exit;
+      }
+      method = *p++;
+      flags  = *p++;
+      if ( (method != Z_DEFLATED) || (flags & 0xE0) ) {
+        DEBUG_MSG(5, _("Cache_decode_data: invalid gzip data!\n"));
+        goto exit;
+      }
+
+      /* skip some headers */
+      p += 6;
+      if( (flags & 0x04) != 0 ) {
+         /* skip extra field */
+         int i = (*p++);
+         i += ((*p++)<<8);
+         p += i;
+      }
+      if( (flags & 0x08) != 0 ) {
+         /* skip name */
+         while( *p != 0 ) 
+               p++;
+         p++;
+      }
+      if( (flags & 0x10) != 0 ) {
+         /* skip comment */
+         while( *p != 0 )
+               p++;
+         p++;
+      }
+      if( (flags & 0x02) != 0 ) {
+         /* skip CRC */
+         p += 2;
+      }
+      
+      /* finished with header, rest is compressed data without zlib header */
+      rc = Z_BUF_ERROR; /* just to get started */
+      while( rc == Z_BUF_ERROR ) {
+           /* FIXME -- should limit times round loop? */
+           expand++;   /* start with 300% expansion */
+       destLen = expand * entry->TotalSize;
+       new_Data = g_realloc(new_Data, destLen);
+       rc = dillo_uncompress((Bytef *)new_Data, &destLen, (Bytef *)p, (uLong)entry->TotalSize);
+      }
+      if( rc == Z_OK ) {
+			DEBUG_MSG(4, "Cache_decode_data: %.2fKB -> %.2f KB (%ld%%)\n",
+					(float)entry->TotalSize/1024, (float)destLen/1024, destLen * 100 /entry->TotalSize);
+         g_free(entry->Data);
+         entry->Data = g_realloc(new_Data, destLen);
+         entry->TotalSize = destLen;
+         entry->ValidSize = destLen;
+         entry->BuffSize = destLen;
+         }
+      else {
+         g_free(new_Data);
+      }
+
+   }else{
+		MSG(_("not x-gzip\n"));
+	}
+       
+exit:;       
+   g_free((void *)entry->Encoding);
+   entry->Encoding = NULL;
+}
+
+
+/*
  * Receive new data, update the reception buffer (for next read), update the
  * cache, and service the client queue.
  *
@@ -673,20 +928,26 @@ static void Cache_process_io(int Op, voi
 
    if ( Op == IOClose ) {
       if (entry->Flags & CA_GotLength && entry->TotalSize != entry->ValidSize){
-         MSG_HTTP("Content-Length does NOT match message body,\n"
-                  " at: %s\n", URL_STR_(entry->Url));
+         MSG_HTTP(_("Content-Length does NOT match message body,\n"
+                  " at: %s\n"), URL_STR_(entry->Url));
       }
       entry->Flags |= CA_GotData;
       entry->Flags &= ~CA_Stopped;          /* it may catch up! */
       entry->TotalSize = entry->ValidSize;
       entry->io = NULL;
       entry->CCCAnswer = NULL;
+      /* CONTENT-ENCODING -- 
+			if encoded then translate and clear client block */
+      if ( entry->Encoding != NULL ) {
+         Cache_decode_data(entry);
+      }
+
       Cache_process_queue(entry);
       return;
    } else if ( Op == IOAbort ) {
       /* todo: implement Abort
        * (eliminate cache entry and anything related) */
-      DEBUG_MSG(5, "Cache_process_io Op = IOAbort; not implemented yet\n");
+      DEBUG_MSG(5, _("Cache_process_io Op = IOAbort; not implemented yet\n"));
       entry->io = NULL;
       entry->CCCAnswer = NULL;
       return;
@@ -729,19 +990,21 @@ static void Cache_process_io(int Op, voi
  * Process redirections (HTTP 30x answers)
  * (This is a work in progress --not finished yet)
  */
-static gint Cache_redirect(CacheData_t *entry, gint Flags, BrowserWindow *bw)
+static gint Cache_redirect(CacheData_t *entry, gint Flags, DilloDoc *dd)
 {
    DilloUrl *NewUrl;
 
    _MSG(" Cache_redirect: redirect_level = %d\n", bw->redirect_level);
 
    /* if there's a redirect loop, stop now */
-   if (bw->redirect_level >= 5)
+   if (dd->redirect_level >= 5)
       entry->Flags |= CA_RedirectLoop;
 
    if (entry->Flags & CA_RedirectLoop) {
-     a_Interface_msg(bw, "ERROR: redirect loop for: %s", URL_STR_(entry->Url));
-     bw->redirect_level = 0;
+	 gchar *msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("ERROR: redirect loop for: %s"));
+     a_Interface_msg(dd->bw, msg_enc, URL_STR_(entry->Url));
+	 g_free(msg_enc);
+     dd->redirect_level = 0;
      return 0;
    }
 
@@ -749,7 +1012,7 @@ static gint Cache_redirect(CacheData_t *
        (entry->Flags & CA_ForceRedirect || entry->Flags & CA_TempRedirect ||
         !entry->ValidSize || entry->ValidSize < 1024 )) {
 
-      _MSG(">>>Redirect from: %s\n to %s\n",
+      _MSG(_(">>>Redirect from: %s\n to %s\n"),
            URL_STR_(entry->Url), URL_STR_(entry->Location));
       _MSG("%s", entry->Header->str);
 
@@ -759,14 +1022,19 @@ static gint Cache_redirect(CacheData_t *
                             0, 0, 0);
          if (entry->Flags & CA_TempRedirect)
             a_Url_set_flags(NewUrl, URL_FLAGS(NewUrl) | URL_E2EReload);
-         a_Nav_push(bw, NewUrl);
+         if (entry->AuthRealm) {
+            a_Auth_byrealm(entry->AuthRealm, NewUrl, dd);
+            return 0;
+         } 
+         a_Nav_remove_top_url(dd);
+         a_Nav_push(dd, NewUrl);
          a_Url_free(NewUrl);
       } else {
          /* Sub entity redirection (most probably an image) */
          if ( !entry->ValidSize ) {
-            DEBUG_MSG(3,">>>Image redirection without entity-content<<<\n");
+            DEBUG_MSG(3, _(">>>Image redirection without entity-content<<<\n"));
          } else {
-            DEBUG_MSG(3, ">>>Image redirection with entity-content<<<\n");
+            DEBUG_MSG(3, _(">>>Image redirection with entity-content<<<\n"));
          }
       }
    }
@@ -799,7 +1067,7 @@ void a_Cache_null_client(int Op, CacheCl
    if (Op == CA_Close) {
       if (Web->flags & WEB_RootUrl) {
          /* Remove this client from our active list */
-         a_Interface_close_client(Web->bw, Client->Key);
+         a_Doc_close_client(Web->dd, Client->Key);
       }
    }
 
@@ -825,14 +1093,14 @@ static void Cache_process_queue(CacheDat
    const gchar *Type;
    CacheClient_t *Client;
    DilloWeb *ClientWeb;
-   BrowserWindow *Client_bw = NULL;
+   DilloDoc *Client_dd = NULL;
    static gboolean Busy = FALSE;
    gboolean AbortEntry = FALSE;
    gboolean OfferDownload = FALSE;
    gboolean TypeMismatch = FALSE;
 
    if ( Busy )
-      DEBUG_MSG(5, "FATAL!:*** >>>> Cache_process_queue Caught busy!!!\n");
+      DEBUG_MSG(5, _("FATAL!:*** >>>> Cache_process_queue Caught busy!!!\n"));
    if (!(entry->Flags & CA_GotHeader))
       return;
    if (!(entry->Flags & CA_GotContentType)) {
@@ -840,7 +1108,7 @@ static void Cache_process_queue(CacheDat
               entry->Data, entry->ValidSize, &Type);
       if (st == 0 || entry->Flags & CA_GotData) {
          if (a_Misc_content_type_check(entry->TypeHdr, Type) < 0) {
-            MSG_HTTP("Content-Type '%s' doesn't match the real data.\n",
+            MSG_HTTP(_("Content-Type '%s' doesn't match the real data.\n"),
                      entry->TypeHdr);
             TypeMismatch = TRUE;
          }
@@ -849,29 +1117,35 @@ static void Cache_process_queue(CacheDat
       } else
          return;  /* i.e., wait for more data */
    }
+   
+   /* CONTENT-ENCODING -- don't let clients process data yet */
+   if ( entry->Encoding != NULL ) {
+      Busy = FALSE;
+      return;
+   }
 
    Busy = TRUE;
    for ( i = 0; (Client = g_slist_nth_data(ClientQueue, i)); ++i ) {
       if ( Client->Url == entry->Url ) {
          ClientWeb = Client->Web;    /* It was a (void*) */
-         Client_bw = ClientWeb->bw;  /* 'bw' in a local var */
+         Client_dd = ClientWeb->dd;  /* 'd' in a local var */
 
          if (ClientWeb->flags & WEB_RootUrl) {
             if (!(entry->Flags & CA_MsgErased)) {
                /* clear the "expecting for reply..." message */
-               a_Interface_msg(Client_bw, "");
+               a_Interface_msg(Client_dd->bw, "");
                entry->Flags |= CA_MsgErased;
             }
             if (TypeMismatch)
-               a_Interface_msg(Client_bw,"HTTP warning: Content-Type '%s' "
-                               "doesn't match the real data.", entry->TypeHdr);
-            if (entry->Flags & CA_Redirect) {
+               a_Interface_msg(Client_dd->bw,_("HTTP warning: Content-Type '%s' "
+                               "doesn't match the real data."), entry->TypeHdr);
+            if (entry->Flags & CA_Redirect && !entry->AuthRealm) {
                if (!Client->Callback) {
                   Client->Callback = a_Cache_null_client;
-                  Client_bw->redirect_level++;
+                  Client_dd->redirect_level++;
                }
             } else {
-               Client_bw->redirect_level = 0;
+               Client_dd->redirect_level = 0;
             }
          } else {
             /* For non root URLs, ignore redirections and 404 answers */
@@ -900,13 +1174,13 @@ static void Cache_process_queue(CacheDat
                       * Not aborted to avoid multiple connections on the same
                       * resource. A better idea is to abort the connection and
                       * to keep a failed-resource flag in the cache entry. */
-                     MSG_HTTP("Unhandled MIME type: <%s>\n",
+                     MSG_HTTP(_("Unhandled MIME type: <%s>\n"),
                               entry->TypeHdr ? entry->TypeHdr:entry->TypeDet);
                   }
                }
             }
             if (AbortEntry) {
-               a_Interface_remove_client(Client_bw, Client->Key);
+               a_Doc_remove_client(Client_dd, Client->Key);
                Cache_client_dequeue(Client, NULLKey);
                --i; /* Keep the index value in the next iteration */
                continue;
@@ -925,7 +1199,7 @@ static void Cache_process_queue(CacheDat
             gint flags = ClientWeb->flags;
             /* We finished sending data, let the client know */
             if (!Client->Callback)
-               DEBUG_MSG(3, "Client Callback is NULL");
+               DEBUG_MSG(3, _("Client Callback is NULL"));
             else
                (Client->Callback)(CA_Close, Client);
             Cache_client_dequeue(Client, NULLKey);
@@ -933,10 +1207,10 @@ static void Cache_process_queue(CacheDat
 
             /* call Cache_redirect() from this 'if' to assert one call only. */
             if ( entry->Flags & CA_Redirect )
-               Cache_redirect(entry, flags, Client_bw);
+               Cache_redirect(entry, flags, Client_dd);
 
             _MSG("Cache_process_queue: NumRootClients=%d sens_idle_id = %d\n",
-                 Client_bw->NumRootClients, Client_bw->sens_idle_id);
+                 Client_dd->bw->NumRootClients, Client_dd->bw->sens_idle_id);
          }
       }
    } /* for */
@@ -945,7 +1219,7 @@ static void Cache_process_queue(CacheDat
       /* Abort the entry, remove it from cache, and maybe offer download.
        * (the dialog is made before 'entry' is freed) */
       if (OfferDownload && Cache_download_enabled(entry->Url))
-         a_Interface_offer_link_download(Client_bw, entry->Url);
+         a_Interface_offer_link_download(Client_dd->bw, entry->Url);
       Cache_entry_remove(entry, NULL);
    }
 
@@ -1008,7 +1282,7 @@ static void Cache_remove_interface_clien
    for ( i = 0; (Client = g_slist_nth_data(ClientQueue, i)); ++i ) {
       if ( Client->Url == Url ) {
          Web = Client->Web;
-         a_Interface_remove_client(Web->bw, Client->Key);
+         a_Doc_remove_client(Web->dd, Client->Key);
       }
    }
 }
@@ -1026,7 +1300,7 @@ static void Cache_stop_client(gint Key, 
 
    if (!(List = g_slist_find_custom(ClientQueue, GINT_TO_POINTER(Key),
                                     Cache_client_key_cmp))){
-      _MSG("WARNING: Cache_stop_client, inexistent client\n");
+      _MSG(_("WARNING: Cache_stop_client, inexistent client\n"));
       return;
    }
 
@@ -1168,7 +1442,7 @@ void a_Cache_ccc(int Op, int Branch, int
             break;
             }
          case OpStop:
-            MSG(" Not implemented\n");
+            MSG(_(" Not implemented\n"));
             break;
          case OpAbort:
             Cache_entry_remove_raw(NULL, Info->LocalKey);
diff -pruN dillo-0.8.6/src/cache.h dillo-0.8.6-i18n-misc-20060709/src/cache.h
--- dillo-0.8.6/src/cache.h	2005-10-28 01:20:06.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/cache.h	2006-05-16 01:21:08.000000000 +0900
@@ -27,6 +27,7 @@
 #define CA_Stopped       (512)  /* True if the entry has been stopped */
 #define CA_MsgErased    (1024)  /* Used to erase the bw's status bar */
 #define CA_RedirectLoop (2048)  /* Redirect loop */
+#define CA_Expires      (4096)  /* Should be reloaded, when expired */
 
 /*
  * Callback type for cache clients
diff -pruN dillo-0.8.6/src/capi.c dillo-0.8.6-i18n-misc-20060709/src/capi.c
--- dillo-0.8.6/src/capi.c	2006-01-04 04:39:31.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/capi.c	2006-07-08 21:49:11.000000000 +0900
@@ -15,12 +15,16 @@
  * to get the requests served. Kind of a broker.
  */
 
+#include <config.h>
 #include <string.h>
 #include <unistd.h>   /* for pipe */
 
+#include "i18n.h"
+#include "intl.h"
 #include "msg.h"
 #include "capi.h"
 #include "IO/Url.h"
+#include "web.h"
 #include "chain.h"
 #include "list.h"
 #include "interface.h"
@@ -39,7 +43,7 @@
 typedef struct {
    DilloWeb *web;
    DilloUrl *url; /* local copy of web->url. Used when the latter is freed */
-   void *bw;
+   DilloDoc *dd;
    gchar *server;
    gchar *datastr;
    gint SockFD;
@@ -83,14 +87,15 @@ void a_Capi_ccc(int Op, int Branch, int 
  * Create a new connection data structure
  */
 static dpi_conn_t *
- Capi_dpi_conn_new(DilloWeb *web, void *bw, char *server, gchar *datastr)
+Capi_dpi_conn_new(DilloWeb *web, DilloDoc *dd, char *server, gchar *datastr)
 {
    dpi_conn_t *conn;
 
    conn = g_new(dpi_conn_t, 1);
    conn->web = web;
    conn->url = (web) ? a_Url_dup(web->url) : NULL;
-   conn->bw = bw;
+   conn->dd = dd;
+   conn->server = server;
    conn->server = g_strdup(server);
    conn->datastr = g_strdup(datastr);
    conn->SockFD = -1;
@@ -211,8 +216,8 @@ static gint Capi_verify_dpi_url_request(
    /* test POST and GET */
    if (strchr(URL_STR(web->url), '?') || URL_DATA_(web->url)) {
       /* safety measure: only allow dpi requests from dpi-generated urls */
-      if (a_Nav_stack_size(web->bw)) {
-         referer = a_History_get_url(NAV_TOP(web->bw));
+      if (a_Nav_stack_size(web->dd)) {
+         referer = a_History_get_url(NAV_TOP(web->dd));
          if (g_strncasecmp(URL_STR(referer), "dpi:/", 5) == 0)
             allow = TRUE;
       }
@@ -221,7 +226,7 @@ static gint Capi_verify_dpi_url_request(
    }
 
    if (!allow) {
-      MSG("Capi_verify_dpi_url_request: Permission Denied!\n");
+      MSG(_("Capi_verify_dpi_url_request: Permission Denied!\n"));
       MSG("  URL_STR : %s\n", URL_STR(web->url));
       if (URL_DATA_(web->url))
          MSG("  URL_DATA: %s\n", URL_DATA(web->url));
@@ -250,9 +255,10 @@ gint a_Capi_url_uses_dpi(gchar *url_str,
 
    } else if (g_strncasecmp(url_str, "ftp:/", 5) == 0) {
       server = g_strdup("ftp");
-
+#ifndef DILLO_SSL
    } else if (g_strncasecmp(url_str, "https:/", 7) == 0) {
       server = g_strdup("https");
+#endif
    } else if (g_strncasecmp(url_str, "file:", 5) == 0) {
       server = g_strdup("file");
    } else if (g_strncasecmp(url_str, "data:", 5) == 0) {
@@ -315,13 +321,13 @@ gint a_Capi_open_url(DilloWeb *web, CA_C
          safe = 1;
       }
 
-      _MSG("  reload=%d URL_E2EReload=%d\n", reload,
+      _MSG(_("  reload=%d URL_E2EReload=%d\n"), reload,
            (URL_FLAGS(web->url) & URL_E2EReload));
 
       if (safe && reload) {
          /* Send dpip command */
          cmd = Capi_dpi_build_cmd(web->url, server);
-         a_Capi_dpi_send_cmd(web, web->bw, cmd, server, 1);
+         a_Capi_dpi_send_cmd(web, web->dd, cmd, server, 1);
          g_free(cmd);
 
          /* test the new dpi-cache connection! */
@@ -357,7 +363,7 @@ gint a_Capi_get_buf(const DilloUrl *Url,
  * Send a dpi cmd.
  * (For instance: add_bookmark, open_url, send_preferences, ...)
  */
-gint a_Capi_dpi_send_cmd(DilloWeb *web, void *bw, char *cmd, char *server,
+gint a_Capi_dpi_send_cmd(DilloWeb *web, void *dd, char *cmd, char *server,
                          gint flags)
 {
    dpi_conn_t *conn;
@@ -367,7 +373,7 @@ gint a_Capi_dpi_send_cmd(DilloWeb *web, 
       /* open a new connection to server */
 
       /* Create a new connection data struct and add it to the list */
-      conn = Capi_dpi_conn_new(web, bw, server, cmd);
+      conn = Capi_dpi_conn_new(web, dd, server, cmd);
       /* start the CCC operations */
       a_Capi_ccc(OpStart, 1, BCK, conn->InfoSend, conn, server);
 
@@ -380,7 +386,7 @@ gint a_Capi_dpi_send_cmd(DilloWeb *web, 
          a_Capi_ccc(OpSend, 1, BCK, conn->InfoSend, dbuf, NULL);
          g_free(dbuf);
       } else {
-         MSG(" ERROR: [a_Capi_dpi_send_cmd] No open connection found\n");
+         MSG(_(" ERROR: [a_Capi_dpi_send_cmd] No open connection found\n"));
       }
    }
 
@@ -419,7 +425,7 @@ void a_Capi_ccc(int Op, int Branch, int 
             break;
          case OpStop:
          case OpAbort:
-            MSG(" Not implemented\n");
+            MSG(_(" Not implemented\n"));
             break;
          }
       } else {  /* FWD */
@@ -448,7 +454,7 @@ void a_Capi_ccc(int Op, int Branch, int 
          case OpAbort:
             conn = Info->LocalKey;
             if (Data1 && !strcmp(Data1, "ERR_dpid"))
-               a_Interface_msg(conn->bw, "ERROR: can't start dpid daemon!");
+               a_Interface_msg(conn->dd->bw, _("ERROR: can't start dpid daemon!"));
             Capi_dpi_conn_unref(conn);
             g_free(Info);
             break;
@@ -472,7 +478,7 @@ void a_Capi_ccc(int Op, int Branch, int 
          case OpStop:
          case OpAbort:
             Capi_dpi_conn_unref(Info->LocalKey);
-            MSG(" Not implemented\n");
+            MSG(_(" Not implemented\n"));
             break;
          }
       } else {  /* FWD */
@@ -483,7 +489,7 @@ void a_Capi_ccc(int Op, int Branch, int 
             if (conn->Flags & ABORTED ||
                 (conn->web && !a_Web_valid(conn->web))) {
                /* there's no client for this transfer!*/
-               _MSG("  ** Capi 2F catched an invalid 'web' structure\n");
+               _MSG(_("  ** Capi 2F catched an invalid 'web' structure\n"));
                /* this flag is used just in case the same memory address
                 * is reused for a new 'web' and the test passes */
                conn->Flags &= ABORTED;
@@ -491,12 +497,12 @@ void a_Capi_ccc(int Op, int Branch, int 
                a_Chain_bcb(OpStop, Info, conn->url, NULL);
 
             } else if (strcmp(Data2, "send_status_message") == 0) {
-               a_Interface_msg(conn->bw, "%s", Data1);
+               a_Interface_msg(conn->dd->bw, "%s", Data1);
             } else if (strcmp(Data2, "chat") == 0) {
-               a_Interface_msg(conn->bw, "%s", Data1);
+               a_Interface_msg(conn->dd->bw, "%s", Data1);
                a_Bookmarks_chat_add(NULL, NULL, Data1);
             } else if (strcmp(Data2, "dialog") == 0) {
-               a_Dpiapi_dialog(conn->bw, conn->server, Data1);
+               a_Dpiapi_dialog(conn->dd, conn->server, Data1);
             } else if (strcmp(Data2, "start_send_page") == 0) {
                /* start the pipe-writing chain */
                a_Capi_ccc(OpStart, 3, BCK, a_Chain_new(), Info->LocalKey,NULL);
@@ -505,7 +511,7 @@ void a_Capi_ccc(int Op, int Branch, int 
             } else if (strcmp(Data2, "send_page_2eof") == 0) {
                a_Capi_ccc(OpSend, 3, BCK, conn->InfoPipe, Data1, NULL);
             } else if (strcmp(Data2, "reload_request") == 0) {
-               a_Nav_reload(conn->bw);
+               a_Nav_reload(conn->dd);
             }
             break;
          case OpEnd:
@@ -527,7 +533,7 @@ void a_Capi_ccc(int Op, int Branch, int 
             }
          case OpStop:
          case OpAbort:
-            MSG(" Not implemented\n");
+            MSG(_(" Not implemented\n"));
             break;
          }
       }
@@ -543,7 +549,7 @@ void a_Capi_ccc(int Op, int Branch, int 
             Capi_dpi_conn_ref(conn);
             conn->InfoPipe = Info;
             if (pipe(conn->DpiPipe)) {
-               MSG(" Error with pipe\n");
+               MSG(_(" Error with pipe\n"));
                return;
             }
             a_Chain_link_new(Info, a_Capi_ccc, BCK, a_IO_ccc, 3, 3);
@@ -561,7 +567,7 @@ void a_Capi_ccc(int Op, int Branch, int 
          case OpStop:
          case OpAbort:
             Capi_dpi_conn_unref(Info->LocalKey);
-            MSG(" Not implemented\n");
+            MSG(_(" Not implemented\n"));
             break;
          }
       } else {  /* FWD */
diff -pruN dillo-0.8.6/src/capi.h dillo-0.8.6-i18n-misc-20060709/src/capi.h
--- dillo-0.8.6/src/capi.h	2005-10-28 01:20:06.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/capi.h	2006-05-16 01:21:08.000000000 +0900
@@ -10,7 +10,7 @@
  */
 gint a_Capi_open_url(DilloWeb *web, CA_Callback_t Call, void *CbData);
 gint a_Capi_get_buf(const DilloUrl *Url, gchar **PBuf, gint *BufSize);
-gint a_Capi_dpi_send_cmd(DilloWeb *web, void *bw, char *cmd, char *server,
+gint a_Capi_dpi_send_cmd(DilloWeb *web, void *dd, char *cmd, char *server,
                          gint flags);
 gint a_Capi_url_uses_dpi(gchar *url_str, gchar **server_ptr);
 
diff -pruN dillo-0.8.6/src/colors.c dillo-0.8.6-i18n-misc-20060709/src/colors.c
--- dillo-0.8.6/src/colors.c	2005-10-28 01:20:07.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/colors.c	2006-05-16 01:21:08.000000000 +0900
@@ -308,7 +308,7 @@ static int Color_distance3(long c1, long
 
 /*
  * Return a suitable "visited link" color
- * Return value:
+ * Return value: 
  *   if candidate has good contrast with C_txt, C_lnk and C_bg  -> candidate
  *   else another color (from the internal list)
  */
diff -pruN dillo-0.8.6/src/commands.c dillo-0.8.6-i18n-misc-20060709/src/commands.c
--- dillo-0.8.6/src/commands.c	2005-10-28 01:20:07.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/commands.c	2006-05-16 01:21:08.000000000 +0900
@@ -10,17 +10,23 @@
  * (at your option) any later version.
  */
 
+#include <config.h>
 #include <gtk/gtk.h>
 #include <stdio.h>              /* for sprintf */
 #include <sys/time.h>           /* for gettimeofday (testing gorp only) */
 #include <unistd.h>
 #include <string.h>             /* for strcat() */
 
+#include "intl.h"
 #include "msg.h"
 #include "bookmark.h"
 #include "interface.h"
+#ifndef DISABLE_TABS
+#include "tab.h"
+#endif /* !DISABLE_TABS */
 #include "history.h"
 #include "nav.h"
+#include "doc.h"
 #include "misc.h"
 #include "commands.h"
 #include "prefs.h"
@@ -28,6 +34,9 @@
 #include "capi.h"
 #include "selection.h"
 
+#include <gdk/gdkkeysyms.h>
+#include "i18n.h"
+
 /* FILE MENU */
 
 /*
@@ -43,6 +52,17 @@ void a_Commands_new_callback(GtkWidget *
    gtk_widget_grab_focus(nbw->location);
 }
 
+#ifndef DISABLE_TABS
+/*
+ * Create a new browser tab
+ */
+void a_Commands_new_tab_callback(GtkWidget *widget, gpointer client_data)
+{
+  BrowserWindow *bw = (BrowserWindow *) client_data;
+  a_Tab_new(bw);
+}
+
+#endif
 /*
  * Create and show the "Open file" dialog
  */
@@ -55,18 +75,26 @@ void a_Commands_openfile_callback(GtkWid
 
 /*
  * Create and show the "Open Url" dialog window
+ *  OR (when prefs.popup_dialogs = FALSE)
+ * focus location bar and select contents
  */
 void a_Commands_openurl_callback(GtkWidget *widget, gpointer client_data)
 {
    BrowserWindow *bw = (BrowserWindow *) client_data;
-   a_Interface_open_dialog(widget, bw);
+   if (prefs.popup_dialogs)
+      a_Interface_open_dialog(widget, bw);
+   else
+      gtk_widget_grab_focus(bw->location);
 }
 
 /*
- * ?
+ * Show Configurarion Script
  */
 void a_Commands_prefs_callback(GtkWidget *widget, gpointer client_data)
 {
+    gchar *cmd = g_strdup_printf("dillocfg&\n");
+    system(cmd);
+    g_free(cmd);
 }
 
 /*
@@ -75,9 +103,34 @@ void a_Commands_prefs_callback(GtkWidget
 void a_Commands_close_callback(GtkWidget *widget, gpointer client_data)
 {
    BrowserWindow *bw = (BrowserWindow *)client_data;
+   a_Interface_findtext_dialog_close();
    gtk_widget_destroy(bw->main_window);
 }
 
+#ifndef DISABLE_TABS
+/*
+ * Close current browser tab, and exit dillo if it's the last one.
+ */
+void a_Commands_close_current_tab_callback(GtkWidget *widget, gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *)client_data;
+   a_Tab_close(bw->dd);
+}
+
+/*
+ * Close a browser tab, and exit dillo if it's the last one.
+ *
+ * The difference with a_Commands_close_current_tab_callback is that this
+ * callback is called with a specific dd as parameter, while the former is
+ * called with only a bw
+ */
+void a_Commands_close_tab_callback(GtkWidget *widget, gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *)client_data;
+   a_Tab_close(dd);
+}
+
+#endif /* DISABLE_TABS */
 /*
  * Free memory and quit dillo
  */
@@ -90,21 +143,32 @@ void a_Commands_exit_callback(GtkWidget 
 /* PAGE MENU */
 
 /*
- * Show current page's source code.
+ * Show current root document's source
  */
-void a_Commands_viewsource_callback (GtkWidget *widget, gpointer client_data)
+void a_Commands_viewsource_callback(GtkWidget *widget, gpointer client_data)
 {
-   BrowserWindow *bw = (BrowserWindow *)client_data;
-   gchar *buf;
-   gint buf_size;
+   BrowserWindow *bw = (BrowserWindow *) client_data;
+   a_Commands_viewsource_doc_callback(widget, (gpointer) bw->dd);
+}
 
+/*
+ * Show document's source code.
+ */
+void a_Commands_viewsource_doc_callback (GtkWidget *widget, gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *)client_data;
+   gchar *title, *buf;
+   gint buf_size;
+  
    /* Get page source data */
-   a_Capi_get_buf(a_History_get_url(NAV_TOP(bw)), &buf, &buf_size);
+   a_Capi_get_buf(a_History_get_url(NAV_TOP(dd)), &buf, &buf_size);
    /* Show it */
-   a_Interface_text_window (&bw->viewsource_window,
-                            "View Source", "view_source",
+   title = a_I18n_locale_to_DILLO_CHARSET(_("View Source"));
+   a_Interface_text_window (&dd->bw->viewsource_window,
+                            title, "view_source",
                             buf, buf_size,
                             530, 500);
+   g_free(title);
 }
 
 /*
@@ -114,12 +178,15 @@ void a_Commands_view_page_bugs_callback 
                                          gpointer client_data)
 {
    DilloHtmlLB *html_lb = client_data;
+   gchar *title;
 
-   a_Interface_text_window (&html_lb->bw->pagebugs_window,
-                            "Detected HTML errors", "page_bugs",
+   title = a_I18n_locale_to_DILLO_CHARSET(_("Detected HTML errors"));
+   a_Interface_text_window (&html_lb->dd->bw->pagebugs_window,
+                            title, "page_bugs",
                             html_lb->page_bugs->str,
                             html_lb->page_bugs->len,
                             530, 500);
+   g_free(title);
 }
 
 /*
@@ -130,7 +197,7 @@ void a_Commands_selectall_callback(GtkWi
 }
 
 /*
- * Create and show the "Find Text" dialog window
+ * Create and show the "Find Text" dialog window for this page
  */
 void a_Commands_findtext_callback(GtkWidget *widget, gpointer client_data)
 {
@@ -148,20 +215,56 @@ void a_Commands_print_callback(GtkWidget
 {
 }
 
+/* DOCUMENT (FRAME/IFRAME) MENU */
+/*
+ * Create and show the "Find Text" dialog window for this document
+ */
+void a_Commands_findtext_doc_callback(GtkWidget *widget, gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *) client_data;
 
-/* TOOLBAR MENU */
+   /* set search list to this document's visible children */
+   dd->bw->dd_list = a_Doc_get_visible_children(dd);
+   a_Interface_findtext_dialog( dd->bw );
+}
 
 /*
+ * Bring up the save doc dialog
+ */
+void a_Commands_save_doc_callback(GtkWidget *widget, gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *) client_data;
+
+   a_Menu_popup_set_url(dd->bw, a_History_get_url(NAV_TOP(dd)));
+   a_Interface_save_link_dialog(widget, dd->bw);
+}
+
+/*
+ * Show only this doc in the page
+ */
+void a_Commands_showonly_doc_callback(GtkWidget *widget, gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *) client_data;
+
+   a_Nav_push(dd->bw->dd, a_History_get_url(NAV_TOP(dd)));
+}
+
+/* TOOLBAR MENU */
+/*
  * Abort all active connections for this page
  * (Downloads MUST keep flowing)
  */
 void a_Commands_stop_callback(GtkWidget *widget, gpointer client_data)
 {
    BrowserWindow *bw = client_data;
-   a_Nav_cancel_expect(bw);
-   a_Interface_stop(bw);
+   gchar *msg_enc;
+   
+   a_Nav_cancel_expect(bw->dd);
+   a_Doc_stop(bw->dd);
    a_Interface_set_button_sens(bw);
-   a_Interface_msg(bw, "Stopped");
+   msg_enc= a_I18n_locale_to_DILLO_CHARSET(_("Stopped"));
+   a_Interface_msg(bw, msg_enc);
+   g_free(msg_enc);
 }
 
 /*
@@ -171,7 +274,7 @@ void a_Commands_back_callback(GtkWidget 
 {
    BrowserWindow *bw = (BrowserWindow *) client_data;
 
-   a_Nav_back(bw);
+   a_Nav_back(bw->dd);
 }
 
 /*
@@ -211,7 +314,7 @@ void a_Commands_history_callback_same_bw
 {
    BrowserWindow *bw = client_data;
 
-   a_Nav_jump_callback(widget, bw, 0);
+   a_Nav_jump_callback(widget, bw->dd, 0);
 }
 
 /*
@@ -223,7 +326,19 @@ void a_Commands_history_callback_new_bw(
 {
    BrowserWindow *bw = client_data;
 
-   a_Nav_jump_callback(widget, bw, 1);
+   a_Nav_jump_callback(widget, bw->dd, 1);
+}
+
+/*
+ * Handler for menu entries in the history menus. This one is called, when
+ * the link should be opened in a new tab.
+ */
+void a_Commands_history_callback_new_tab(GtkWidget *widget,
+                                        gpointer client_data)
+{
+   BrowserWindow *bw = client_data;
+
+   a_Nav_jump_callback(widget, bw->dd, 2);
 }
 
 /*
@@ -233,17 +348,28 @@ void a_Commands_forw_callback(GtkWidget 
 {
    BrowserWindow *bw = (BrowserWindow *) client_data;
 
-   a_Nav_forw(bw);
+   a_Nav_forw(bw->dd);
 }
 
 /*
- * Start the reload process
+ * Start the reload process for a document
+ */
+void a_Commands_reload_doc_callback(GtkWidget *widget, gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *)client_data;
+
+   a_Nav_reload(dd);
+}
+
+/*
+ * Start the reload process for the page
  */
 void a_Commands_reload_callback(GtkWidget *widget, gpointer client_data)
 {
    BrowserWindow *bw = (BrowserWindow *) client_data;
 
-   a_Nav_reload(bw);
+   a_Interface_findtext_dialog_close();
+   a_Nav_reload(bw->dd);
 }
 
 /*
@@ -253,7 +379,36 @@ void a_Commands_home_callback(GtkWidget 
 {
    BrowserWindow *bw = (BrowserWindow *) client_data;
 
-   a_Nav_home(bw);
+   a_Nav_home(bw->dd);
+}
+
+/*
+ * Open home with new window/tab
+ */
+void a_Commands_home_nw_callback(GtkWidget *widget, gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *) client_data;
+   DilloDoc *newdd;
+
+#ifndef DISABLE_TABS
+   if (prefs.tab_instead_of_window) {
+      newdd = a_Doc_new();
+      a_Tab_add(bw, newdd);
+      a_Tab_switch(newdd);
+      a_Nav_home(newdd);
+      return;
+   }
+#endif
+   {
+      gint width, height;
+      BrowserWindow *newbw;
+
+      gdk_window_get_size (bw->main_window->window,
+               &width, &height);
+      newbw = a_Interface_browser_window_new(width, height, 0);
+      newdd = newbw->dd;
+      a_Nav_home(newdd);
+   }
 }
 
 /*
@@ -261,11 +416,12 @@ void a_Commands_home_callback(GtkWidget 
  */
 void a_Commands_save_callback(GtkWidget *widget, gpointer client_data)
 {
-   BrowserWindow *bw = (BrowserWindow *) client_data;
+   BrowserWindow *bw = (BrowserWindow *) client_data;  
 
    a_Interface_save_dialog(widget, bw);
 }
 
+
 /*
  * Bring up the save link dialog
  */
@@ -276,15 +432,47 @@ void a_Commands_save_link_callback(GtkWi
    a_Interface_save_link_dialog(widget, bw);
 }
 
+#ifndef DISABLE_TABS
+/* VIEW MENU */
+void a_Commands_tab_prev_callback(GtkWidget *widget, gpointer client_data)
+{
+  BrowserWindow *bw = (BrowserWindow *) client_data;
+  gtk_notebook_prev_page(GTK_NOTEBOOK(bw->container));
+}
 
-/* BOOKMARKS MENU */
+void a_Commands_tab_next_callback(GtkWidget *widget, gpointer client_data)
+{
+  BrowserWindow *bw = (BrowserWindow *) client_data;
+  gtk_notebook_next_page(GTK_NOTEBOOK(bw->container));
+}
 
+#endif
+/* BOOKMARKS MENU */
 /*
- * Add a bookmark to the current bookmark widget.
+ * Add a bookmark for the current doc to the current bookmark widget.
  */
 void a_Commands_addbm_callback(GtkWidget *widget, gpointer client_data)
 {
-   a_Bookmarks_add(widget, client_data);
+   BrowserWindow *bw = (BrowserWindow *) client_data;
+
+   a_Bookmarks_add(bw->dd, a_History_get_url(NAV_TOP(bw->dd)));
+}
+
+void a_Commands_addbm_doc_callback(GtkWidget *widget, gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *) client_data;
+
+   a_Bookmarks_add(dd, a_History_get_url(NAV_TOP(dd)));
+}
+
+/*
+ * add a bookmark for the current link
+ */
+void a_Commands_addbm_link_callback(GtkWidget *widget, gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *) client_data;
+
+   a_Bookmarks_add(bw->dd, a_Menu_popup_get_url(bw));
 }
 
 /*
@@ -294,7 +482,36 @@ void a_Commands_viewbm_callback(GtkWidge
 {
    BrowserWindow *bw = (BrowserWindow *) client_data;
 
-   a_Bookmarks_show(bw);
+   a_Bookmarks_show(bw->dd);
+}
+
+/*
+ * Open bookmarks with new window/tab
+ */
+void a_Commands_viewbm_nw_callback(GtkWidget *widget, gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *) client_data;
+   DilloDoc *newdd;
+
+#ifndef DISABLE_TABS
+   if (prefs.tab_instead_of_window) {
+      newdd = a_Doc_new();
+      a_Tab_add(bw, newdd);
+      a_Tab_switch(newdd);
+      a_Bookmarks_show(newdd);
+      return;
+   }
+#endif
+   {
+      gint width, height;
+      BrowserWindow *newbw;
+
+      gdk_window_get_size (bw->main_window->window,
+               &width, &height);
+      newbw = a_Interface_browser_window_new(width, height, 0);
+      newdd = newbw->dd;
+      a_Bookmarks_show(newdd);
+   }
 }
 
 
@@ -309,7 +526,7 @@ void a_Commands_helphome_callback(GtkWid
    BrowserWindow *bw = (BrowserWindow *) client_data;
    DilloUrl *url = a_Url_new(DILLO_HOME, NULL, 0, 0, 0);
 
-   a_Nav_push(bw, url);
+   a_Nav_push(bw->dd, url);
    a_Url_free(url);
 }
 
@@ -323,7 +540,7 @@ void a_Commands_open_link_callback(GtkWi
 {
    BrowserWindow *bw = (BrowserWindow *)client_data;
 
-   a_Nav_push(bw, a_Menu_popup_get_url(bw));
+   a_Nav_push(bw->dd, a_Menu_popup_get_url(bw));
 }
 
 /*
@@ -337,10 +554,59 @@ void a_Commands_open_link_nw_callback(Gt
 
    gdk_window_get_size (bw->main_window->window, &width, &height);
    newbw = a_Interface_browser_window_new(width, height, 0);
-   a_Nav_push(newbw, a_Menu_popup_get_url(bw));
+   a_Nav_push(newbw->dd, a_Menu_popup_get_url(bw));
 }
 
 /*
+ * Duplicate current page in a new window
+ */
+void a_Commands_duplicate_callback(GtkWidget *widget, gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *)client_data;
+   if(bw->dd->nav_stack == NULL) {
+       a_Commands_new_callback(widget, client_data);
+       return;
+   }
+
+   a_Menu_popup_set_url(bw, a_History_get_url(NAV_TOP(bw->dd)));
+   a_Commands_open_link_nw_callback(widget, client_data);
+}
+
+#ifndef DISABLE_TABS
+/*
+ * Open link in another tab
+ */
+void a_Commands_open_link_nw_tab_callback(GtkWidget *widget, gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *)client_data;
+   DilloDoc *newdd;
+
+   newdd = a_Doc_new();
+   a_Tab_add(bw, newdd);
+
+   if (!prefs.tab_load_in_background)
+      a_Tab_switch(newdd);
+
+   a_Nav_push(newdd, a_Menu_popup_get_url(bw));
+}
+
+/*
+ * Duplicate current page in a new tab
+ */
+void a_Commands_duplicate_tab_callback(GtkWidget *widget, gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *)client_data;
+   if(bw->dd->nav_stack == NULL) {
+       a_Commands_new_tab_callback(widget, client_data);
+       return;
+   }
+
+   a_Menu_popup_set_url(bw, a_History_get_url(NAV_TOP(bw->dd)));
+   a_Commands_open_link_nw_tab_callback(widget, client_data);
+}
+#endif
+
+/*
  * Called when the user wants the popup's URL for pasting.
  */
 void a_Commands_select_popup_url_callback(GtkWidget *widget, gpointer data)
@@ -349,7 +615,6 @@ void a_Commands_select_popup_url_callbac
    a_Selection_set_selection(widget, URL_STR(a_Menu_popup_get_url(bw)));
 }
 
-
 /* BUG METER POP-UP MENU */
 
 /*
@@ -362,7 +627,7 @@ static void Commands_ob_validate_page(Br
    DilloUrl *url;
 
    /* prepare the validation request URI */
-   o_url = URL_STR(a_History_get_url(NAV_TOP(bw)));
+   o_url = URL_STR(a_History_get_url(NAV_TOP(bw->dd)));
    e_url = a_Misc_escape_chars(o_url, ":/?");
    n_url = e_url ? e_url : o_url;
    g_string_sprintf(gstr, fmt, n_url);
@@ -371,7 +636,7 @@ static void Commands_ob_validate_page(Br
    url = a_Url_new(gstr->str, NULL, 0, 0, 0);
    g_string_free(gstr, TRUE);
 
-   a_Nav_push(bw, url);
+   a_Nav_push(bw->dd, url);
    a_Url_free(url);
 }
 
@@ -407,7 +672,58 @@ void a_Commands_ob_info_callback(GtkWidg
    const gchar *info_str = "http://www.dillo.org/help/bug_meter.html";
    DilloUrl *url = a_Url_new(info_str, NULL, 0, 0, 0);
 
-   a_Nav_push(bw, url);
+   /* here we should un-highlight the selected text */
+   a_Nav_push(bw->dd, url);
    a_Url_free(url);
 }
 
+/* MAIN WINDOW */
+
+/*
+ * callback for full screen toggle
+ */
+void a_Commands_full_screen_callback (gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *) client_data;
+   a_Interface_toggle_panel(bw, TRUE);
+}
+
+/*
+ * Handler for double-mouse-clicks that don't belong to the viewport.
+ */
+gint a_Commands_click_callback(gpointer client_data, GdkEventButton *event)
+{
+   BrowserWindow *bw = (BrowserWindow *) client_data;
+   if (event->type == GDK_2BUTTON_PRESS && event->button == 1)
+      a_Interface_toggle_panel(bw, TRUE);
+   return TRUE;
+}
+
+/*
+ * Handler for key presses that don't belong to the viewport.
+ * (Used to customize the interface a bit)
+ */
+void a_Commands_key_press_handler(GtkWidget *widget,
+                                  GdkEventKey *event,
+                                  gpointer client_data)
+{
+   BrowserWindow *bw = client_data;
+   switch (event->keyval) {
+   case GDK_BackSpace:
+     /* This key is handled here because GTK accel group ignores it */
+     if (event->state & GDK_SHIFT_MASK)
+       a_Commands_forw_callback(NULL, bw);
+     else
+       a_Commands_back_callback(NULL, bw);
+     break;
+   case GDK_slash:
+     /* This key is handled here because GTK accel group ignores it */
+     a_Commands_findtext_callback(NULL, bw);
+     break;
+   case GDK_Escape:
+     a_Interface_findtext_dialog_close();
+   default:
+     /* g_print(">> Key pressed!\n"); */
+     break;
+   }
+}
diff -pruN dillo-0.8.6/src/commands.h dillo-0.8.6-i18n-misc-20060709/src/commands.h
--- dillo-0.8.6/src/commands.h	2005-10-28 01:20:07.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/commands.h	2006-05-16 01:21:08.000000000 +0900
@@ -11,10 +11,13 @@ void a_Commands_close_callback(GtkWidget
 void a_Commands_exit_callback (GtkWidget *widget, gpointer client_data);
 
 void a_Commands_viewsource_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_viewsource_doc_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_view_page_bugs_callback (GtkWidget *button,
                                          gpointer client_data);
 void a_Commands_selectall_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_findtext_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_findtext_doc_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_showonly_doc_callback(GtkWidget *widget, gpointer client_data);
 void a_Commands_print_callback (GtkWidget *widget, gpointer client_data);
 
 GtkMenu *a_Commands_forw_button_menu_creator_callback(GtkExtButton *button,
@@ -29,22 +32,42 @@ void a_Commands_history_callback_new_bw(
 void a_Commands_back_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_forw_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_reload_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_reload_doc_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_stop_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_home_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_home_nw_callback(GtkWidget *widget, gpointer client_data);
 void a_Commands_save_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_save_doc_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_save_link_callback (GtkWidget *widget, gpointer client_data);
-
 void a_Commands_addbm_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_addbm_doc_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_addbm_link_callback (GtkWidget *widget, gpointer client_data);
 void a_Commands_viewbm_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_viewbm_nw_callback(GtkWidget *widget, gpointer client_data);
 
 void a_Commands_helphome_callback (GtkWidget *widget, gpointer client_data);
 
 void a_Commands_open_link_callback(GtkWidget *widget, gpointer client_data);
 void a_Commands_open_link_nw_callback(GtkWidget *widget, gpointer client_data);
 void a_Commands_select_popup_url_callback(GtkWidget *widget, gpointer data);
+void a_Commands_duplicate_callback(GtkWidget *widget, gpointer client_data);
 
 void a_Commands_ob_w3c_callback(GtkWidget *widget, gpointer client_data);
 void a_Commands_ob_wdg_callback(GtkWidget *widget, gpointer client_data);
 void a_Commands_ob_info_callback(GtkWidget *widget, gpointer client_data);
 
+void a_Commands_full_screen_callback(gpointer client_data);
+gint a_Commands_click_callback(gpointer client_data, GdkEventButton *event);
+void a_Commands_key_press_handler(GtkWidget *widget,
+        GdkEventKey *event, gpointer client_data);
+
+#ifndef DISABLE_TABS
+void a_Commands_new_tab_callback(GtkWidget *widget, gpointer client_data);
+void a_Commands_close_current_tab_callback(GtkWidget *widget, gpointer client_data);
+void a_Commands_close_tab_callback(GtkWidget *widget, gpointer client_data);
+void a_Commands_tab_prev_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_tab_next_callback (GtkWidget *widget, gpointer client_data);
+void a_Commands_open_link_nw_tab_callback(GtkWidget *widget, gpointer client_data);
+void a_Commands_duplicate_tab_callback(GtkWidget *widget, gpointer client_data);
+#endif
 #endif /* __COMMANDS_H__ */
diff -pruN dillo-0.8.6/src/cookies.c dillo-0.8.6-i18n-misc-20060709/src/cookies.c
--- dillo-0.8.6/src/cookies.c	2006-03-30 03:48:13.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/cookies.c	2006-05-16 01:21:08.000000000 +0900
@@ -15,7 +15,7 @@
  * http://www.cis.ohio-state.edu/cs/Services/rfc/rfc-text/rfc2965.txt
  */
 
-#define DEBUG_LEVEL 10
+#define DEBUG_LEVEL 0
 #include "debug.h"
 
 
@@ -78,6 +78,109 @@ static CookieControlAction Cookies_contr
 static CookieControlAction Cookies_control_check_domain(const char *domain);
 static int Cookie_control_init(void);
 
+static char *months[] =
+{ "",
+  "Jan", "Feb", "Mar",
+  "Apr", "May", "Jun",
+  "Jul", "Aug", "Sep",
+  "Oct", "Nov", "Dec"
+};
+
+/*
+ * Take a months name and return a number between 1-12.
+ * E.g. 'April' -> 4
+ */
+static int Cookies_get_month(const char *month_name)
+{
+   int i;
+
+   for (i = 1; i <= 12; i++) {
+      if (!g_strncasecmp(months[i], month_name, 3))
+         return i;
+   }
+   return 0;
+}
+
+/*
+ * Return a local timestamp from a GMT date string
+ * Accept: RFC-1123 | RFC-850 | ANSI asctime | Old Netscape format.
+ *
+ *   Wdy, DD-Mon-YY HH:MM:SS GMT
+ *   Wdy, DD-Mon-YYYY HH:MM:SS GMT
+ *   Weekday, DD-Mon-YY HH:MM:SS GMT
+ *   Weekday, DD-Mon-YYYY HH:MM:SS GMT
+ *   Tue May 21 13:46:22 1991\n
+ *   Tue May 21 13:46:22 1991
+ *
+ * (return 0 on malformed date string syntax)
+ */
+time_t a_Cookies_create_timestamp(const char *expires)
+{
+   time_t ret;
+   int day, month, year, hour, minutes, seconds;
+   gchar *cp;
+   gchar *E_msg =
+      "Expire date is malformed!\n"
+      " (should be RFC-1123 | RFC-850 | ANSI asctime)\n"
+      " Ignoring cookie: ";
+
+   cp = strchr(expires, ',');
+   if (!cp && (strlen(expires) == 24 || strlen(expires) == 25)) {
+      /* Looks like ANSI asctime format... */
+      cp = (gchar *)expires;
+      day = strtol(cp + 8, NULL, 10);       /* day */
+      month = Cookies_get_month(cp + 4);    /* month */
+      year = strtol(cp + 20, NULL, 10);     /* year */
+      hour = strtol(cp + 11, NULL, 10);     /* hour */
+      minutes = strtol(cp + 14, NULL, 10);  /* minutes */
+      seconds = strtol(cp + 17, NULL, 10);  /* seconds */
+
+   } else if (cp && (cp - expires == 3 || cp - expires > 5) &&
+                    (strlen(cp) == 24 || strlen(cp) == 26)) {
+      /* RFC-1123 | RFC-850 format | Old Netscape format */
+      day = strtol(cp + 2, NULL, 10);
+      month = Cookies_get_month(cp + 5);
+      year = strtol(cp + 9, &cp, 10);
+      /* todo: tricky, because two digits for year IS ambiguous! */
+      year += (year < 70) ? 2000 : ((year < 100) ? 1900 : 0);
+      hour = strtol(cp + 1, NULL, 10);
+      minutes = strtol(cp + 4, NULL, 10);
+      seconds = strtol(cp + 7, NULL, 10);
+
+   } else {
+      MSG("%s%s\n", E_msg, expires);
+      return (time_t) 0;
+   }
+
+   /* Error checks  --this may be overkill */
+   if (!(day > 0 && day < 32 && month > 0 && month < 13 && year > 1970 &&
+         hour >= 0 && hour < 24 && minutes >= 0 && minutes < 60 &&
+         seconds >= 0 && seconds < 60)) {
+      MSG("%s%s\n", E_msg, expires);
+      return (time_t) 0;
+   }
+
+   /* Calculate local timestamp.
+    * [stolen from Lynx... (http://lynx.browser.org)] */
+   month -= 3;
+   if (month < 0) {
+      month += 12;
+      year--;
+   }
+
+   day += (year - 1968) * 1461 / 4;
+   day += ((((month * 153) + 2) / 5) - 672);
+   ret = (time_t)((day * 60 * 60 * 24) +
+                  (hour * 60 * 60) +
+                  (minutes * 60) +
+                  seconds);
+
+   MSG("Expires in %ld seconds, at %s",
+       (long)ret - time(NULL), ctime(&ret));
+
+   return ret;
+}
+
 /*
  * Return a file pointer. If the file doesn't exist, try to create it,
  * with the optional 'init_str' as its content.
@@ -230,7 +333,7 @@ static int Cookie_control_init(void)
 
    /* Get a file pointer */
    filename = a_Misc_prepend_user_home(".dillo/cookiesrc");
-   stream = Cookies_fopen(filename, "DEFAULT DENY\n");
+   stream = Cookies_fopen(filename, "DEFAULT ACCEPT\n");
    g_free(filename);
 
    if (!stream)
diff -pruN dillo-0.8.6/src/cookies.h dillo-0.8.6-i18n-misc-20060709/src/cookies.h
--- dillo-0.8.6/src/cookies.h	2005-10-28 01:20:07.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/cookies.h	2006-05-16 01:21:08.000000000 +0900
@@ -4,12 +4,13 @@
 #ifdef DISABLE_COOKIES
 # define a_Cookies_get(url)  g_strdup("")
 # define a_Cookies_freeall() ;
-  void  a_Cookies_init( void );
 #else
   char *a_Cookies_get(const DilloUrl *request_url);
   void  a_Cookies_set(GList *cookie_string, const DilloUrl *set_url);
   void  a_Cookies_init( void );
   void  a_Cookies_freeall( void );
+  void  a_Cookies_init( void );
+  time_t a_Cookies_create_timestamp(const char *expires);
 #endif
 
 #endif /* !__COOKIES_H__ */
diff -pruN dillo-0.8.6/src/dicache.c dillo-0.8.6-i18n-misc-20060709/src/dicache.c
--- dillo-0.8.6/src/dicache.c	2005-10-28 01:20:07.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dicache.c	2006-05-16 01:21:08.000000000 +0900
@@ -18,6 +18,7 @@
 
 #include "image.h"
 #include "web.h"
+#include "doc.h"
 #include "dicache.h"
 #include "cache.h"
 #include "interface.h"
@@ -261,7 +262,7 @@ void a_Dicache_callback(int Op, CacheCli
       }
    } else if ( Op == CA_Close || Op == CA_Abort ) {
       a_Image_close(Web->Image);
-      a_Interface_close_client(Web->bw, Client->Key);
+      a_Doc_close_client(Web->dd, Client->Key);
    }
 }
 
@@ -366,7 +367,7 @@ void a_Dicache_close(DilloUrl *url, gint
       DicEntry->cmap = NULL;
    }
    a_Image_close(Web->Image);
-   a_Interface_close_client(Web->bw, Client->Key);
+   a_Doc_close_client(Web->dd, Client->Key);
 }
 
 /* ------------------------------------------------------------------------- */
diff -pruN dillo-0.8.6/src/dillo.c dillo-0.8.6-i18n-misc-20060709/src/dillo.c
--- dillo-0.8.6/src/dillo.c	2006-01-03 03:20:08.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dillo.c	2006-05-16 01:21:08.000000000 +0900
@@ -19,6 +19,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+#include <config.h>
+
 #include <stdio.h>
 #include <gtk/gtk.h>
 
@@ -35,10 +37,13 @@
 #include <locale.h>
 
 #include <config.h>
+#include "intl.h"
+#include "i18n.h"
 #include "msg.h"
 #include "dillo.h"
 #include "misc.h"
 #include "nav.h"
+#include "doc.h"
 #include "history.h"
 #include "bookmark.h"
 #include "dicache.h"
@@ -47,8 +52,12 @@
 #include "IO/Url.h"
 #include "prefs.h"
 #include "interface.h"
+#ifndef DISABLE_TABS
+#include "tab.h"
+#endif /* !DISABLE_TABS */
 #include "dw.h"
 #include "cookies.h"
+#include "adblock.h"
 
 
 /*
@@ -70,6 +79,7 @@ enum {
    DILLO_CLI_LOCAL         = 1 << 5,
    DILLO_CLI_GEOMETRY      = 1 << 6,
    DILLO_CLI_DBG_RENDERING = 1 << 7,
+   DILLO_CLI_RCFILE        = 1 << 8,
    DILLO_CLI_ERROR         = 1 << 15
 };
 
@@ -96,27 +106,31 @@ static void Dillo_print_version(void);
  */
 static CLI_options Options[] = {
    {"-x", "--xid",        1, DILLO_CLI_XID,
-    "  -x, --xid XID          Open first Dillo window in an existing\n"
-    "                         GtkSocket which window ID is XID (decimal)."},
+    N_("  -x, --xid XID          Open first Dillo window in an existing\n"
+    "                         GtkSocket which window ID is XID (decimal).")},
    {"-v", "--version",    0, DILLO_CLI_VERSION,
-    "  -v, --version          Display version info and exit."},
+    N_("  -v, --version          Display version info and exit.")},
    {"-h", "--help",       0, DILLO_CLI_HELP,
-    "  -h, --help             Display this help text and exit."},
+    N_("  -h, --help             Display this help text and exit.")},
    {"-f", "--fullwindow", 0, DILLO_CLI_FULLWINDOW,
-    "  -f, --fullwindow       Start in full window mode: hide address bar,\n"
-    "                         navigation buttons, menu, and status bar."},
+    N_("  -f, --fullwindow       Start in full window mode: hide address bar,\n"
+    "                         navigation buttons, menu, and status bar.")},
    {"-l", "--local",      0, DILLO_CLI_LOCAL,
-    "  -l, --local            Don't follow links for this URL(s)."},
+    N_("  -l, --local            Don't follow links for this URL(s).")},
    {"-g", "-geometry",    1, DILLO_CLI_GEOMETRY,
-    "  -g, -geometry GEO      Set initial window position where GEO is\n"
-    "                         <width>x<height>{+-}<x>{+-}<y>"},
+    N_("  -g, -geometry GEO      Set initial window position where GEO is\n"
+    "                         <width>x<height>{+-}<x>{+-}<y>")},
    {"-D", "--debug-rendering",
                           0, DILLO_CLI_DBG_RENDERING,
-    "  -D, --debug-rendering  Draw additionaly several lines in a web page,\n"
-    "                         representing its structure. For debugging. "},
+    N_("  -D, --debug-rendering  Draw additionaly several lines in a web page,\n"
+    "                         representing its structure. For debugging. ")},
+   {"-R", "--rcfile",
+                          1, DILLO_CLI_RCFILE,
+    N_("  -R, --rcfile FILE  Use alternative rcfile.")},
    {NULL, NULL, 0, 0, NULL}
 };
 
+
 /*
  * Return the maximum number of option arguments
  */
@@ -187,7 +201,7 @@ static void Dillo_sigchld_handler(int si
   while (1) {
      pid = waitpid (-1, &status, WNOHANG);
      if (pid < 0) {
-        perror ("waitpid");
+        //perror ("waitpid");
         break;
      }
      if (pid == 0)
@@ -206,6 +220,7 @@ gint main(int argc, char *argv[])
    gchar *dir, *curr_locale;
    DilloUrl *start_url;
    BrowserWindow *bw;
+   DilloDoc *dd;
    guint32 xid = 0;
    guint options_got = 0;
    gint idx = 0;
@@ -214,10 +229,18 @@ gint main(int argc, char *argv[])
    char **opt_argv = NULL;
    gint xpos = D_GEOMETRY_DEFAULT_XPOS, ypos = D_GEOMETRY_DEFAULT_YPOS;
    gint width = D_GEOMETRY_DEFAULT_WIDTH, height = D_GEOMETRY_DEFAULT_HEIGHT;
+   char *rcfile = NULL;
 
    /* set locale */
    curr_locale = g_strdup(setlocale(LC_ALL, NULL));
    gtk_set_locale();
+#ifdef ENABLE_NLS
+   /* Initialize Gettext */
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+#endif
+   /* get locale */
+   a_I18n_detect_DW_locale();
    /* Initialize GUI and parse GTK related args */
    gtk_init(&argc, &argv);
    gdk_rgb_init();
@@ -240,8 +263,8 @@ gint main(int argc, char *argv[])
         if (opt_argv[0][0] >= '0' && opt_argv[0][0] <= '9') {
            xid = strtol(opt_argv[0], NULL, 10);
         } else {
-           g_printerr("Error: the XID must be an unsigned decimal numerical "
-                      "value.\nThe offending value was: %s\n", opt_argv[0]);
+           g_printerr(_("Error: the XID must be an unsigned decimal numerical "
+                   "value.\nThe offending value was: %s\n"), opt_argv[0]);
            return -1;
         }
         break;
@@ -254,15 +277,18 @@ gint main(int argc, char *argv[])
      case DILLO_CLI_GEOMETRY:
        if (a_Misc_parse_geometry(opt_argv[0], &xpos, &ypos, &width, &height))
           break;
+     case DILLO_CLI_RCFILE:
+        rcfile = opt_argv[0];
+        break;  
      default:
-        g_printerr("Error in command line options.\n");
+        g_printerr(_("Error in command line options.\n"));
         return -1;
         break;
      }
    }
 
    /* Send a delayed locale-related message */
-   MSG("Setting locale to %s...\n", curr_locale);
+   MSG(_("Setting gtk charset to %s...\n"), DW_CHARSET);
    g_free(curr_locale);
 
    /* This lets threads in the file module end peacefully when aborted
@@ -278,7 +304,7 @@ gint main(int argc, char *argv[])
    Dillo_check_home_dir(dir);
    g_free(dir);
 
-   a_Prefs_init();
+   a_Prefs_init(rcfile);
    a_Dns_init();
    a_Http_init();
    a_Mime_init();
@@ -287,6 +313,8 @@ gint main(int argc, char *argv[])
    a_Interface_init();
    a_Dw_init();
    a_Cookies_init();
+   a_Adblock_init();
+   a_Doc_init();
 
    /* -f overrides dillorc */
    if (options_got & DILLO_CLI_FULLWINDOW)
@@ -308,18 +336,32 @@ gint main(int argc, char *argv[])
 
    a_Bookmarks_init();
 
+   dd = bw->dd;
    /* Send dillo's startup screen */
-   a_Nav_push(bw, prefs.start_page);
+   if (idx >= argc) a_Nav_push(dd, prefs.start_page);
 
    for (i = idx; i < argc; i++) {
-      /* If more than one URL/FILE, open in new window */
-      if (i > idx)
-         bw = a_Interface_browser_window_new(prefs.width, prefs.height, 0);
+      /* If more than one URL/FILE, open in new window/tab */
+      if (i > idx) {
+#ifndef DISABLE_TABS
+         if (prefs.tab_instead_of_window) {
+             dd = a_Doc_new();
+             a_Tab_add(bw, dd);
+             if (!prefs.tab_load_in_background)
+                a_Tab_switch(dd);
+         } else {
+#endif /* !DISABLE_TABS */
+            bw = a_Interface_browser_window_new(prefs.width, prefs.height, 0);
+            dd = bw->dd;
+#ifndef DISABLE_TABS
+         }
+#endif /* !DISABLE_TABS */
+      }
 
       start_url = Dillo_make_start_url(argv[i]);
       if (options_got & DILLO_CLI_LOCAL)
          a_Url_set_flags(start_url, URL_FLAGS(start_url) | URL_SpamSafe);
-      a_Nav_push(bw, start_url);
+      a_Nav_push(dd, start_url);
       a_Url_free(start_url);
    }
 
@@ -334,17 +376,23 @@ gint main(int argc, char *argv[])
     * (This can be left to the OS, but we'll do it, with a view to test
     *  and fix our memory management)
     */
+   a_Adblock_freeall();
    a_Cookies_freeall();
    a_Cache_freeall();
    a_Dicache_freeall();
    a_Http_freeall();
+#ifdef DILLO_SSL
+   a_Https_freeall();
+#endif
    a_Dns_freeall();
    a_Prefs_freeall();
    a_Dw_freeall();
    a_History_free();
-
+#ifdef DEBUG
+   g_mem_profile();
+#endif
    /* a_Dpi_bye_dpid(); */
-   MSG("Dillo: normal exit!\n");
+   _MSG(_("Dillo: normal exit!\n"));
    return 0;
 }
 
@@ -358,10 +406,10 @@ static void Dillo_check_home_dir(char *d
 
    if ( stat(dir, &st) == -1 ) {
       if ( errno == ENOENT && mkdir(dir, 0700) < 0 ) {
-         MSG("Dillo: error creating directory %s: %s\n",
-             dir, g_strerror(errno));
+         MSG(_("Dillo: error creating directory %s: %s\n"),
+                 dir, strerror(errno));
       } else
-         MSG("Dillo: error reading %s: %s\n", dir, g_strerror(errno));
+         MSG(_("Dillo: error reading %s: %s\n"), dir, strerror(errno));
    }
 }
 
@@ -410,8 +458,8 @@ Dillo_get_opt(CLI_options *options, int 
 
          /* Optional arguments have opt_argc < 0 */
          if (i < n_arg) {
-            g_printerr("Option %s requires %d argument(s)\n",
-                       argv[idx - i - 1], n_arg);
+            g_printerr(_("Option %s requires %d argument(s)\n"),
+                    argv[idx - i - 1], n_arg);
             state = O_ERROR;
          } else
             state = O_OK;
@@ -445,18 +493,18 @@ Dillo_get_opt(CLI_options *options, int 
  */
 static void Dillo_print_help(CLI_options *options)
 {
-   g_print("\nUsage: dillo [OPTIONS] [URL|FILE]...\n"
-              "Options:\n");
+   g_print(_("\nUsage: dillo [OPTIONS] [URL|FILE]...\n"
+              "Options:\n"));
 
    for (; options && options->sh_opt; options++) {
       if (options->help)
-         g_print("%s\n", options->help);
+         g_print("%s\n", _(options->help));
       else
-         g_print("  %s, %s   *Undocumented*\n", options->sh_opt,
+         g_print(_("  %s, %s   *Undocumented*\n"), options->sh_opt,
                  options->lg_opt);
    }
-   g_print("  URL                    URL to browse.\n"
-           "  FILE                   Local FILE to view.\n");
+   g_print(_("  URL                    URL to browse.\n"
+           "  FILE                   Local FILE to view.\n"));
    g_print("\n");
 }
 
diff -pruN dillo-0.8.6/src/dns.c dillo-0.8.6-i18n-misc-20060709/src/dns.c
--- dillo-0.8.6/src/dns.c	2006-03-16 02:01:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dns.c	2006-05-16 01:21:08.000000000 +0900
@@ -31,7 +31,8 @@
 #include "dns.h"
 #include "list.h"
 
-#define DEBUG_LEVEL 5
+#define DEBUG_LEVEL 0
+//#define DEBUG_LEVEL 5
 #include "debug.h"
 
 
diff -pruN dillo-0.8.6/src/doc.c dillo-0.8.6-i18n-misc-20060709/src/doc.c
--- dillo-0.8.6/src/doc.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/doc.c	2006-05-16 01:21:08.000000000 +0900
@@ -0,0 +1,656 @@
+/*
+ *
+ * Copyright (C) 2003 Frank de Lange
+ *
+ * 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.
+ */
+
+#include "dw_widget.h"
+#include "dw_gtk_scrolled_window.h"
+#include "dw_gtk_viewport.h"
+#include "dw_container.h"
+#include "doc.h"
+#include "list.h"
+#include "debug.h"
+#include "cache.h"
+#include "nav.h"
+#include "menu.h"
+#include "interface.h"
+#include "commands.h"
+#include <math.h> /* for rint() */
+#ifndef DISABLE_TABS
+/* for a_Tab_title_set */
+#include "tab.h"
+#endif /* !DISABLE_TABS */
+#include "progressbar.h"
+#include "prefs.h"
+
+#define DEBUG_EVENT  0
+#define DEBUG_SIZE  10
+#define DEBUG_ALLOC 10
+
+/* #define DEBUG_LEVEL  0 */
+#include "debug.h"
+
+/*
+ * Local Data
+ */
+
+/* DilloDoc holds everything pertaining to a single document */
+static DilloDoc **dillo_doc;
+static gint num_dd, num_dd_max;
+
+/*
+ * Initialize global data
+ */
+void a_Doc_init(void)
+{
+   num_dd = 0;
+   num_dd_max = 16;
+   dillo_doc = NULL;
+}
+
+/* callbacks */
+
+/*
+ * callback for docwin delete
+ *
+ * this will call a_Doc_destroy for the associated DilloDoc
+ */
+void
+Doc_docwin_destroy_callback(GtkWidget *widget,
+                           gpointer user_data)
+{
+   DilloDoc *dd = (DilloDoc *) user_data;
+   /* aargh... get GTK to be quit about the non-existing gadget... */
+   if (GTK_DW_SCROLLED_WINDOW(widget)->gadget)
+     GTK_DW_SCROLLED_WINDOW(widget)->gadget = NULL;
+
+   a_Doc_destroy(dd);
+}
+
+/* public functions */
+
+/*
+ * Stop all active connections for the document (except downloads)
+ */
+void a_Doc_stop(DilloDoc *dd)
+{
+   g_return_if_fail ( dd != NULL );
+   DEBUG_MSG(3, "a_Doc_stop: hi!\n");
+
+   /* Remove root clients */
+   while ( dd->NumRootClients ) {
+      a_Cache_stop_client(dd->RootClients[0]);
+      a_List_remove(dd->RootClients, 0, dd->NumRootClients);
+   }
+   /* Remove image clients */
+   while ( dd->NumImageClients ) {
+      a_Cache_stop_client(dd->ImageClients[0]);
+      a_List_remove(dd->ImageClients, 0, dd->NumImageClients);
+   }
+}
+
+/*
+ * Empty RootClients, ImageClients and PageUrls lists and
+ * reset progress bar data.
+ */
+void a_Doc_clean(DilloDoc *dd)
+{
+   g_return_if_fail ( dd != NULL );
+
+   while ( dd->NumRootClients )
+      a_List_remove(dd->RootClients, 0, dd->NumRootClients);
+
+   while ( dd->NumImageClients )
+      a_List_remove(dd->ImageClients, 0, dd->NumImageClients);
+
+   while ( dd->NumPageUrls ) {
+      a_Url_free(dd->PageUrls[0].Url);
+      a_List_remove(dd->PageUrls, 0, dd->NumPageUrls);
+   }
+
+   /* Zero image-progressbar data */
+   dd->NumImages = 0;
+   dd->NumImagesGot = 0;
+
+   /* Zero progressbar data and ready state */
+   dd->progress = 0.0;
+   dd->ready = TRUE;
+}
+
+/*
+ * Remove the cache-client from the dd list
+ * (client can be a image or a html page)
+ */
+void a_Doc_remove_client(DilloDoc *dd, gint ClientKey)
+{
+   gint i;
+   gboolean Found = FALSE;
+
+   g_return_if_fail ( dd != NULL );
+
+   for ( i = 0; !Found && i < dd->NumRootClients; ++i)
+      if ( dd->RootClients[i] == ClientKey ) {
+         a_List_remove(dd->RootClients, i, dd->NumRootClients);
+         Found = TRUE;
+      }
+
+   for ( i = 0; !Found && i < dd->NumImageClients; ++i)
+      if ( dd->ImageClients[i] == ClientKey ) {
+         a_List_remove(dd->ImageClients, i, dd->NumImageClients);
+         dd->NumImagesGot++;
+         Found = TRUE;
+      }
+
+   a_Interface_set_button_sens(dd->bw);
+}
+
+
+/*
+ * Remove the cache-client from the dd list
+ * (client can be a image or a html page)
+ */
+void a_Doc_close_client(DilloDoc *dd, gint ClientKey)
+{
+   g_return_if_fail ( dd != NULL );
+
+   a_Doc_remove_client(dd, ClientKey);
+   a_Doc_progress_update(dd);
+}
+
+/*
+ * update progress bar, set button sensitivity
+ */
+void
+a_Doc_progress_update(DilloDoc *dd)
+{
+   gchar progress[PBAR_L];
+
+   g_return_if_fail ( dd != NULL );
+   
+   if(dd->bw->dd == dd) {
+     a_Interface_set_button_sens(dd->bw);
+     g_snprintf(progress, PBAR_L, "%s%d of %d",
+		PBAR_ISTR(prefs.panel_size == 1),
+		dd->NumImagesGot, dd->NumImages);
+     a_Progressbar_update(dd->bw->imgprogress, progress,
+			  (dd->NumImagesGot == dd->NumImages) ? 0 : 1 );
+     g_snprintf(progress, PBAR_L, "%s%.1f Kb",
+		PBAR_PSTR(prefs.panel_size == 1),
+		(float)dd->progress);
+     a_Progressbar_update(dd->bw->progress, progress, (dd->ready) ? 0 : 1 );
+   }
+}
+
+
+/*
+ * Add a reference to the cache-client in the document's list.
+ * This helps us keep track of which are active in the document so that it's
+ * possible to abort them.
+ * (Root: Flag, whether a Root URL or not)
+ */
+void a_Doc_add_client(DilloDoc *dd, gint Key, gint Root)
+{
+   gint nc;
+
+   g_return_if_fail ( dd != NULL );
+
+   if ( Root ) {
+      nc = dd->NumRootClients;
+      a_List_add(dd->RootClients, nc, dd->MaxRootClients);
+      dd->RootClients[nc] = Key;
+      dd->NumRootClients++;
+   } else {
+      nc = dd->NumImageClients;
+      a_List_add(dd->ImageClients, nc, dd->MaxImageClients);
+      dd->ImageClients[nc] = Key;
+      dd->NumImageClients++;
+      dd->NumImages++;
+   }
+   a_Doc_progress_update(dd);
+}
+
+/*
+ * Add an URL to the document's list.
+ * This helps us keep track of page requested URLs so that it's
+ * possible to stop, abort and reload them.)
+ *   Flags: Chosen from {DD_Root, DD_Image, DD_Download}
+ */
+void a_Doc_add_url(DilloDoc *dd, const DilloUrl *Url, gint Flags)
+{
+   gint nu, i;
+   gboolean found = FALSE;
+
+   g_return_if_fail ( dd != NULL && Url != NULL );
+
+   nu = dd->NumPageUrls;
+   for ( i = 0; i < nu; i++ ) {
+      if ( !a_Url_cmp(Url, dd->PageUrls[i].Url) ) {
+         found = TRUE;
+         break;
+      }
+   }
+   if ( !found ) {
+      a_List_add(dd->PageUrls, nu, dd->MaxPageUrls);
+      dd->PageUrls[nu].Url = a_Url_dup(Url);
+      dd->PageUrls[nu].Flags = Flags;
+      dd->NumPageUrls++;
+   }
+}
+
+/*
+ * set document title
+ *
+ * this will propagate to the current interface element
+ *
+ * currently just forwards to a_Tab_title_set (when tabs
+ * are compiled in) or a_Interface_set_page_title (when
+ * compiled without tab support)
+ */
+void
+a_Doc_title_set(DilloDoc *dd, gchar *title)
+{
+   g_return_if_fail ( dd != NULL && title != NULL );
+
+   /* only set title for top level document */
+   if(dd->parent == NULL)
+#ifndef DISABLE_TABS
+   a_Tab_title_set(dd, title);
+#else
+   a_Interface_set_page_title(dd->bw, title);
+#endif
+}
+
+/*
+ * set document location
+ *
+ * this will propagate to the current interface element
+ *
+ * currently just forwards to a_Interface_set_location_text
+ */
+void
+a_Doc_location_set(DilloDoc *dd, gchar *location)
+{
+   g_return_if_fail ( dd != NULL && location != NULL );
+
+   /* only set location text if this is the current tab */
+   if((dd->parent == NULL) && dd->bw->dd == dd) {
+     a_Interface_set_location_text(dd->bw, location);
+   }
+}
+
+/*
+ * destroy a document
+ */
+void a_Doc_destroy(DilloDoc *dd)
+{
+   gint i;
+ 
+   g_return_if_fail ( dd != NULL );
+   
+   /* stop/abort open connections. */
+   a_Doc_stop(dd);
+   
+   for (i = 0; i < num_dd; i++)
+     if (dillo_doc[i] == dd) {
+       dillo_doc[i] = dillo_doc[--num_dd];
+       break;
+     }
+   
+   /* free nav_stack and nav_expect stuff */
+   a_Nav_free(dd);
+   
+   /* unref the style */
+   if(dd->style)
+     a_Dw_style_unref(dd->style);
+   
+   /* destroy pagemark menu */
+   a_Menu_pagemarks_destroy(dd);
+   
+   g_free(dd->RootClients);
+   g_free(dd->ImageClients); 
+
+   if(dd->name)
+     g_free(dd->name);
+  
+   for (i = 0; i < dd->NumPageUrls; i++)
+     a_Url_free(dd->PageUrls[i].Url);
+   g_free(dd->PageUrls);
+   g_free(dd);
+}
+
+/*
+ * set the dd's cursor type, and update the docwin if it is
+ * mapped.
+ */
+void a_Doc_set_cursor(DilloDoc *dd, GdkCursorType CursorType)
+{
+   GdkCursor *cursor;
+
+   g_return_if_fail ( dd != NULL );
+
+   if ( dd->CursorType != CursorType ) {
+     if(GTK_WIDGET_MAPPED(dd->docwin)) {
+       cursor = gdk_cursor_new(CursorType);
+       gdk_window_set_cursor(dd->docwin->window, cursor);
+       gdk_cursor_destroy(cursor);
+     }
+     dd->CursorType = CursorType;
+   }
+}
+
+/*
+ * Get the DilloDoc which contains *docwin
+ * returns NULL if dd not found
+ */
+DilloDoc *
+a_Doc_get_by_docwin(GtkWidget *docwin)
+{
+   gint i;
+
+   g_return_val_if_fail ( docwin != NULL, NULL );
+
+   for (i = 0; i < num_dd; i++)
+     if (dillo_doc[i]->docwin == docwin)
+       return dillo_doc[i];
+
+   return NULL;
+}
+
+/*
+ * set the dd's name (used for targeted links)
+ */
+void a_Doc_set_name(DilloDoc *dd, gchar *name)
+{
+   g_return_if_fail((dd != NULL) && (name != NULL));
+
+   if (dd && name) {
+     if (dd->name)
+       g_free((gchar *)dd->name);
+     dd->name = g_strdup(name);
+   }
+}
+
+/*
+ * Get a named DilloDoc
+ *
+ * First checks if name is one of the reserved names
+ * ("_blank", "_self", "_parent" and "_top") and acts
+ * accordingly if so. If not, it searches for a document
+ * with the same root as the document which initiated the
+ * search. If still not found, it searches for the first
+ * document with the given name.
+ *
+ * returns NULL if no matching document found
+ */
+DilloDoc *
+a_Doc_get_by_name(DilloDoc *dd, gchar *name)
+{
+  gint i, n;
+  DilloDoc *parent, *document;
+  gint width, height;
+  BrowserWindow *newbw;
+
+  g_return_val_if_fail((dd != NULL) && (name != NULL), NULL);
+
+  parent = a_Doc_get_root(dd);
+  document = NULL;
+
+  /* first see if the target name is one of the reserved names,
+   * if so act appropriately */
+  if(!g_strcasecmp(name, "_blank")) {
+
+#ifndef DISABLE_TABS
+    if(prefs.tab_instead_of_window) 
+      {
+	document = a_Doc_new();
+	a_Tab_add(parent->bw, document);
+      }
+    else
+#endif /* !DISABLE_TABS */
+      {
+	gdk_window_get_size(parent->bw->main_window->window, &width, &height);
+	newbw = a_Interface_browser_window_new(width, height, 0);
+	document = newbw->dd;
+      }
+  }
+  else if(!g_strcasecmp(name, "_self"))
+    document = dd;
+  else if(!g_strcasecmp(name, "_parent"))
+    document = a_Doc_get_parent(dd);
+  else if(!g_strcasecmp(name, "_top"))
+    document = a_Doc_get_root(dd);
+
+  /* if previous search did not match, first try to find document with same parent, 
+   * if not found try to find first matching named document
+   */
+  if(!document)
+    for (n = 1; n >= 0; n--) {
+      for (i = 0; i < num_dd; i++)
+	if (dillo_doc[i]->name &&
+	    (!g_strcasecmp(name, dillo_doc[i]->name)) &&
+	    (n ? (a_Doc_get_root(dillo_doc[i]) == parent) : TRUE)) {
+	  document = dillo_doc[i];
+	  break;
+	}
+      if(document)
+	break;
+    }
+
+  return document;
+}
+
+/*
+ * Get the parent document
+ * For unparented documents it just returns the document itself
+ */
+DilloDoc *
+a_Doc_get_parent(DilloDoc *dd)
+{
+   DilloDoc *parent;
+
+   g_return_val_if_fail(dd != NULL, NULL);
+
+   parent = dd;
+   if(parent->parent)
+     parent = parent->parent;
+
+   return parent;
+}
+
+/*
+ * Get the root document
+ * For unparented documents it just returns the document itself.
+ */
+DilloDoc *
+a_Doc_get_root(DilloDoc *dd)
+{
+   DilloDoc *parent;
+
+   g_return_val_if_fail(dd != NULL, NULL);
+
+   parent = dd;
+   while(parent->parent)
+     parent = parent->parent;
+
+   return parent;
+}
+
+/*
+ * get all visible children (nested documents) for this document
+ *
+ * returns: pointer to GList containing all visible descendants of
+ *          the document (including the document itself as the first
+ *          item if it is visible. Frameset documents are not visible,
+ *          so they are not included in the list).
+ *
+ * returned GList must be g_list_free()'d by caller
+ */
+GList *
+a_Doc_get_visible_children(DilloDoc *dd)
+{
+   gint i;
+   GList *children;
+
+   g_return_val_if_fail(dd != NULL, NULL);
+
+   children = NULL;
+
+   /* first add 'self' to list */
+   if(GTK_WIDGET_VISIBLE(dd->docwin))
+     children = g_list_append(children, dd);
+   for (i = 0; i < num_dd; i++)
+     if (dillo_doc[i]->parent == dd)
+       children = g_list_concat(children, 
+				a_Doc_get_visible_children(dillo_doc[i]));
+
+   return children;
+}
+
+/*
+ * Set parent
+ */
+void
+a_Doc_set_parent(DilloDoc *dd, DilloDoc *parent)
+{
+   g_return_if_fail (dd != NULL && parent != NULL);
+   
+   dd->parent = parent;
+   a_Doc_set_browserwindow(dd, parent->bw);
+}
+
+/*   
+ * set browserwindow
+ */
+void
+a_Doc_set_browserwindow(DilloDoc *dd, BrowserWindow *bw)
+{
+   DwStyle style_attrs;
+   DwStyleFont font;
+
+   g_return_if_fail (dd != NULL && bw != NULL);
+
+   /* set dd's current window */
+   dd->bw = bw;
+
+   /* Catch key_press event */
+   gtk_signal_connect(GTK_OBJECT(GTK_BIN(dd->docwin)->child),
+		      "key_press_event",
+		      GTK_SIGNAL_FUNC(a_Commands_key_press_handler),
+		      bw);
+   
+   /* Full screen mode via double click is done in two ways: First,
+    * a feature of the selection is used, since in complex pages,
+    * getting events back to the viewport is quite difficult. Second,
+    * a simple callback, called e.g. when viewing image resources.
+    */
+   a_Selection_set_dclick_callback(
+      GTK_DW_VIEWPORT(GTK_BIN(GTK_BIN(dd->docwin)->child)->child)->selection,
+      (void(*)(gpointer))a_Commands_full_screen_callback,
+      bw);
+   /* Selection requires an owner widget */
+   a_Selection_set_owner(
+      GTK_DW_VIEWPORT(GTK_BIN(GTK_BIN(dd->docwin)->child)->child)->selection,
+      GTK_BIN(dd->docwin)->child);
+
+#if 0
+   /* deselect location bar contents when the scrolled_frame gets focus */
+   gtk_signal_connect_object(GTK_OBJECT(GTK_BIN(dd->docwin)->child),
+			     "grab-focus",
+			     a_Interface_content_focus_callback,
+			     (gpointer) bw);
+#endif
+
+   gtk_signal_connect_object_after(GTK_OBJECT(GTK_BIN(dd->docwin)->child),
+                                   "button_press_event",
+                                   GTK_SIGNAL_FUNC(a_Commands_click_callback),
+                                   (gpointer) bw);
+
+   /* create style for Dw */
+   font.name = prefs.vw_fontname; /* must be defined */
+   font.size = rint(DOC_DEFAULT_FONT_SIZE * prefs.font_factor);
+   font.weight = 400;
+   font.style = DW_STYLE_FONT_STYLE_NORMAL;
+   
+   a_Dw_style_init_values (&style_attrs, dd->bw->main_window->window);
+   a_Dw_style_box_set_val (&style_attrs.margin, DOC_DEFAULT_MARGIN);
+   style_attrs.font = a_Dw_style_font_new (&font);
+   style_attrs.color =
+     a_Dw_style_color_new (prefs.text_color, dd->bw->main_window->window);
+   style_attrs.background_color =
+     a_Dw_style_color_new (prefs.bg_color, dd->bw->main_window->window);
+   dd->style = a_Dw_style_new (&style_attrs, dd->bw->main_window->window);
+}
+
+/*
+ * Create a new DilloDoc
+ * (the new document is stored in dillo_doc)
+ */
+DilloDoc *
+a_Doc_new(void)
+{
+   DilloDoc *dd;
+   dd = g_new0(DilloDoc, 1);
+   a_List_add(dillo_doc, num_dd, num_dd_max);
+   dillo_doc[num_dd++] = dd;
+
+   a_Nav_init(dd);
+
+   dd->docwin = a_Dw_gtk_scrolled_window_new();
+   dd->style = NULL;
+   dd->parent = NULL;
+
+   dd->frameset = NULL;
+   dd->name = NULL;
+
+   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(dd->docwin),
+                                  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+   /* this callback NULLs the docwin->gadget (to keep GTK from
+    * complaining when it tries to destroy a non-existing widget - there
+    * should be a check in dw_gtk_scrolled_window to see if scrolled->gadget
+    * really points at a GTK widget...
+    *
+    * it also destroys the DilloDoc by the way...
+    */
+   gtk_signal_connect(GTK_OBJECT(dd->docwin),
+                      "destroy",
+                      GTK_SIGNAL_FUNC(Doc_docwin_destroy_callback),
+                      (gpointer) dd);
+
+   gtk_widget_show(dd->docwin);
+
+   /* initialize the rest of the bt's data. */
+   dd->redirect_level = 0;
+   dd->RootClients = NULL;
+   dd->NumRootClients = 0;
+   dd->MaxRootClients = 8;
+
+   dd->ImageClients = NULL;
+   dd->NumImageClients = 0;
+   dd->MaxImageClients = 8;
+   dd->NumImages = 0;
+   dd->NumImagesGot = 0;
+
+   dd->PageUrls = NULL;
+   dd->NumPageUrls = 0;
+   dd->MaxPageUrls = 8;
+
+   dd->auth_await_url = NULL;
+
+   dd->pagemarks_menu = NULL;
+   dd->pagemarks_last = NULL;
+
+   dd->CursorType = -1;
+
+   dd->progress = 0.0;
+   dd->ready = TRUE;
+
+   return dd;
+}
+
+
diff -pruN dillo-0.8.6/src/doc.h dillo-0.8.6-i18n-misc-20060709/src/doc.h
--- dillo-0.8.6/src/doc.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/doc.h	2006-05-16 01:21:08.000000000 +0900
@@ -0,0 +1,35 @@
+#ifndef __DOC_H__
+#define __DOC_H__
+
+#include "browser.h"   /* for DilloDoc */
+
+/* used to set default margin for documents */
+#define DOC_DEFAULT_MARGIN 5
+#define DOC_DEFAULT_FONT_SIZE 12.0
+
+/* macros for documents */
+#define DD_HAS_FOCUS(dd,bw) bw->dd == dd
+
+void a_Doc_init(void);
+void a_Doc_stop(DilloDoc *dd);
+void a_Doc_clean(DilloDoc *dd);
+void a_Doc_title_set(DilloDoc *dd, gchar *title);
+void a_Doc_location_set(DilloDoc *dd, gchar *location);
+void a_Doc_remove_client(DilloDoc *dd, gint ClientKey);
+void a_Doc_close_client(DilloDoc *dd, gint ClientKey);
+void a_Doc_add_client(DilloDoc *dd, gint Key, gint Root);
+void a_Doc_add_url(DilloDoc *dd, const DilloUrl *Url, gint Flags);
+void a_Doc_destroy(DilloDoc *dd);
+void a_Doc_set_cursor(DilloDoc *dd, GdkCursorType CursorType);
+void a_Doc_set_name(DilloDoc *dd, gchar *name);
+DilloDoc * a_Doc_get_by_name(DilloDoc *dd, gchar *name);
+void a_Doc_set_parent(DilloDoc *dd, DilloDoc *parent);
+void a_Doc_set_browserwindow(DilloDoc *dd, BrowserWindow *bw);
+void a_Doc_progress_update(DilloDoc *dd);
+GList * a_Doc_get_visible_children(DilloDoc *dd);
+DilloDoc * a_Doc_get_by_docwin(GtkWidget *docwin);
+DilloDoc * a_Doc_get_parent(DilloDoc *dd);
+DilloDoc * a_Doc_get_root(DilloDoc *dd);
+DilloDoc * a_Doc_new(void);
+
+#endif /* __DOC_H__ */
diff -pruN dillo-0.8.6/src/dpiapi.c dillo-0.8.6-i18n-misc-20060709/src/dpiapi.c
--- dillo-0.8.6/src/dpiapi.c	2006-01-12 21:19:02.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dpiapi.c	2006-05-16 01:21:09.000000000 +0900
@@ -30,9 +30,9 @@ static char *dialog_server = NULL;
 /*
  * Generic callback function for dpip dialogs.
  */
-static void Dpiapi_dialog_answer_cb(BrowserWindow *bw)
+static void Dpiapi_dialog_answer_cb(DilloDoc *dd)
 {
-   DialogAnswer *answer = bw->question_dialog_answer;
+   DialogAnswer *answer = dd->bw->question_dialog_answer;
    char *cmd, numstr[16];
 
    /* make dpip tag with the answer */
@@ -41,18 +41,18 @@ static void Dpiapi_dialog_answer_cb(Brow
                           "answer", "dialog", numstr);
 
    /* Send answer */
-   a_Capi_dpi_send_cmd(NULL, bw, cmd, dialog_server, 0);
+   a_Capi_dpi_send_cmd(NULL, dd, cmd, dialog_server, 0);
 
    /* cleanup */
-   bw->question_dialog_data = NULL;
+   dd->bw->question_dialog_data = NULL;
    g_free(answer->this);
-   bw->question_dialog_answer = NULL;
+   dd->bw->question_dialog_answer = NULL;
 }
 
 /*
  * Process a dpip "dialog" command from any dpi.
  */
-void a_Dpiapi_dialog(BrowserWindow *bw, char *server, char *dpip_tag)
+void a_Dpiapi_dialog(DilloDoc *dd, char *server, char *dpip_tag)
 {
    char *question, *alt1, *alt2, *alt3, *alt4, *alt5;
    size_t dpip_tag_len;
@@ -73,7 +73,7 @@ void a_Dpiapi_dialog(BrowserWindow *bw, 
    alt5 = a_Dpip_get_attr(dpip_tag, dpip_tag_len, "alt5");
 
    a_Interface_question_dialog(
-      bw, question, TRUE,
+      dd, question, TRUE,
       alt1, alt2, alt3, alt4, alt5,
       (GtkSignalFunc) Dpiapi_dialog_answer_cb);
 
diff -pruN dillo-0.8.6/src/dpiapi.h dillo-0.8.6-i18n-misc-20060709/src/dpiapi.h
--- dillo-0.8.6/src/dpiapi.h	2005-10-28 01:20:07.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dpiapi.h	2006-05-16 01:21:09.000000000 +0900
@@ -1,3 +1,3 @@
 
-void a_Dpiapi_dialog(BrowserWindow *bw, char *server, char *dpip_tag);
+void a_Dpiapi_dialog(DilloDoc *dd, char *server, char *dpip_tag);
 
diff -pruN dillo-0.8.6/src/dw_gtk_scrolled_frame.c dillo-0.8.6-i18n-misc-20060709/src/dw_gtk_scrolled_frame.c
--- dillo-0.8.6/src/dw_gtk_scrolled_frame.c	2006-01-03 03:18:34.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_gtk_scrolled_frame.c	2006-05-16 01:21:08.000000000 +0900
@@ -451,25 +451,29 @@ static gint Dw_gtk_scrolled_frame_key_pr
    case GDK_Up:
    case GDK_KP_Up:
       Dw_gtk_scrolled_frame_move_by (frame, 0,
-                                     - frame->vadjustment->step_increment);
+                                     - frame->vadjustment->step_increment
+                                     * ((event->state & GDK_SHIFT_MASK)?12:2));
       return TRUE;
 
    case GDK_Down:
    case GDK_KP_Down:
       Dw_gtk_scrolled_frame_move_by (frame, 0,
-                                     + frame->vadjustment->step_increment);
+                                     + frame->vadjustment->step_increment
+                                     * ((event->state & GDK_SHIFT_MASK)?12:2));
       return TRUE;
 
    case GDK_Left:
    case GDK_KP_Left:
       Dw_gtk_scrolled_frame_move_by (frame,
-                                     - frame->hadjustment->step_increment, 0);
+                                     - frame->hadjustment->step_increment
+                                     * ((event->state & GDK_SHIFT_MASK)?12:2), 0);
       return TRUE;
 
    case GDK_Right:
    case GDK_KP_Right:
       Dw_gtk_scrolled_frame_move_by (frame,
-                                     + frame->hadjustment->step_increment, 0);
+                                     + frame->hadjustment->step_increment
+                                     * ((event->state & GDK_SHIFT_MASK)?12:2), 0);
       return TRUE;
 
    case GDK_Tab:
diff -pruN dillo-0.8.6/src/dw_gtk_scrolled_window.c dillo-0.8.6-i18n-misc-20060709/src/dw_gtk_scrolled_window.c
--- dillo-0.8.6/src/dw_gtk_scrolled_window.c	2005-10-28 01:20:09.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_gtk_scrolled_window.c	2006-05-16 01:21:08.000000000 +0900
@@ -15,6 +15,7 @@
 #include "dw_gtk_scrolled_frame.h"
 #include "dw_gtk_viewport.h"
 #include "findtext.h"
+#include "dw_tooltip.h"
 #include <gtk/gtk.h>
 
 #include "debug.h"
@@ -242,6 +243,7 @@ static void Dw_gtk_scrolled_window_size_
    GtkWidget *hscrollbar, *vscrollbar;
    gint gx, gy;
 
+   a_Dw_tooltip_count_reset();
    GTK_WIDGET_CLASS(parent_class)->size_allocate (widget, allocation);
    widget->allocation = *allocation;
 
@@ -465,7 +467,7 @@ gboolean a_Dw_gtk_scrolled_window_search
 void a_Dw_gtk_scrolled_window_reset_search (GtkDwScrolledWindow *scrolled)
 {
    GtkWidget *viewport;
-
+   //g_print("%d\n",(int)gtk_type_check_object_cast ((GtkTypeObject*) scrolled, gtk_bin_get_type ()));
    viewport = GTK_BIN(GTK_BIN(scrolled)->child)->child;
    a_Findtext_reset_search (GTK_DW_VIEWPORT(viewport)->findtext_state);
 }
diff -pruN dillo-0.8.6/src/dw_gtk_viewport.c dillo-0.8.6-i18n-misc-20060709/src/dw_gtk_viewport.c
--- dillo-0.8.6/src/dw_gtk_viewport.c	2005-10-28 01:20:09.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_gtk_viewport.c	2006-05-16 01:21:08.000000000 +0900
@@ -12,6 +12,7 @@
 #include <gtk/gtk.h>
 #include "msg.h"
 #include "dw_gtk_viewport.h"
+#include "dw_tooltip.h"
 #include "dw_container.h"
 #include "list.h"
 
@@ -454,6 +455,7 @@ static gint Dw_gtk_viewport_enter_notify
 static gint Dw_gtk_viewport_leave_notify (GtkWidget *widget,
                                           GdkEventCrossing *event)
 {
+   a_Dw_tooltip_count_reset();
    /* There will anyway be no Dw widget, thus this simple call */
    return Dw_widget_mouse_event (NULL, widget, 0, 0, NULL);
 }
@@ -478,7 +480,8 @@ void Dw_gtk_viewport_update_background (
    /* The toplevel widget should always have a defined background color,
     * except at the beginning. Searching a defined background is not
     * necessary. */
-   if (viewport->child && viewport->child->style &&
+   if (GTK_LAYOUT(viewport)->bin_window &&
+       viewport->child && viewport->child->style && 
        viewport->child->style->background_color)
       gdk_window_set_background (GTK_LAYOUT(viewport)->bin_window,
                                  &viewport->child->style->background_color
@@ -831,10 +834,10 @@ gchar* p_Dw_gtk_viewport_add_anchor (DwW
       anchor->name = g_strdup (name);
       anchor->widget = widget;
       anchor->y = y;
-
+      
       g_hash_table_insert (viewport->anchors_table, anchor->name, anchor);
       Dw_gtk_viewport_update_anchor (viewport);
-
+      
       return anchor->name;
    }
 }
@@ -888,14 +891,14 @@ void p_Dw_gtk_viewport_remove_anchor (Dw
    g_return_if_fail (widget->viewport != NULL);
    viewport = GTK_DW_VIEWPORT (widget->viewport);
 
-   exists =
+   exists = 
       g_hash_table_lookup_extended (viewport->anchors_table, name, NULL,
                                     &tmp_anchor);
    g_return_if_fail(exists);
 
    anchor = tmp_anchor;
    g_return_if_fail(anchor->widget == widget);
-
+   
    g_hash_table_remove (viewport->anchors_table, name);
    g_free (anchor->name);
    g_free (anchor);
diff -pruN dillo-0.8.6/src/dw_image.c dillo-0.8.6-i18n-misc-20060709/src/dw_image.c
--- dillo-0.8.6/src/dw_image.c	2005-10-28 01:20:10.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_image.c	2006-05-16 01:21:08.000000000 +0900
@@ -10,9 +10,16 @@
  * (at your option) any later version.
  */
 
+#include "i18n_gtk.h"
 #include "msg.h"
 #include "dw_image.h"
 #include "dw_gtk_viewport.h"
+#ifndef DISABLE_ANTI_ALIAS
+   #include <X11/Xlib.h>
+   #include <X11/Xft/Xft.h>
+   #undef Status
+   #include <gdk/gdkx.h>
+#endif
 #include "prefs.h"
 #include "dw_marshal.h"
 #include "list.h"
@@ -87,11 +94,15 @@ enum
    LINK_PRESSED,
    LINK_RELEASED,
    LINK_CLICKED,
+   IMAGE_PRESSED,
    LAST_SIGNAL
 };
 
 static guint image_signals[LAST_SIGNAL] = { 0 };
 static DwWidgetClass *parent_class;
+#ifndef DISABLE_ANTI_ALIAS
+static XftDraw *xftdraw = NULL;
+#endif
 
 
 /*
@@ -205,6 +216,14 @@ static void Dw_image_class_init (DwImage
                       GTK_TYPE_BOOL,
                       4, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT,
                       GTK_TYPE_GDK_EVENT);
+   image_signals[IMAGE_PRESSED] =
+      gtk_signal_new ("image_pressed",
+                      GTK_RUN_FIRST,
+                      object_class->type,
+                      GTK_SIGNAL_OFFSET (DwImageClass, image_pressed),
+                      gtk_marshal_NONE__POINTER,
+                      GTK_TYPE_NONE,
+                      1, GTK_TYPE_GDK_EVENT);
    gtk_object_class_add_signals (object_class, image_signals, LAST_SIGNAL);
 
    widget_class = (DwWidgetClass*)klass;
@@ -245,6 +264,9 @@ static void Dw_image_size_request (DwWid
                                    DwRequisition *requisition)
 {
    DwImage *image;
+#ifndef DISABLE_ANTI_ALIAS
+   XGlyphInfo info;
+#endif
 
    image = DW_IMAGE (widget);
 
@@ -255,8 +277,14 @@ static void Dw_image_size_request (DwWid
       requisition->descent = 0;
    } else {
       if (image->alt_text_width == -1)
+#ifndef DISABLE_ANTI_ALIAS
+         XftTextExtentsUtf8(GDK_DISPLAY(), widget->style->font->font,
+            image->alt_text, strlen(image->alt_text), &info);
+         image->alt_text_width = info.xOff;
+#else
          image->alt_text_width =
             gdk_string_width (widget->style->font->font, image->alt_text);
+#endif
 
       requisition->width = image->alt_text_width;
       requisition->ascent = widget->style->font->font->ascent;
@@ -306,6 +334,11 @@ static void Dw_image_draw (DwWidget *wid
    guchar *buffer, *bstart;
    int i;
    gboolean selected = FALSE;
+#ifndef DISABLE_ANTI_ALIAS
+   XGlyphInfo info;
+   XftColor xftcolor;   
+   GdkWindow *window;
+#endif
 
    if (image->buffer) {
       p_Dw_widget_draw_widget_box (widget, area, FALSE);
@@ -339,8 +372,14 @@ static void Dw_image_draw (DwWidget *wid
    } else {
       if (image->alt_text && image->alt_text[0]) {
          if (image->alt_text_width == -1)
+#ifndef DISABLE_ANTI_ALIAS
+            XftTextExtentsUtf8(GDK_DISPLAY(), widget->style->font->font,
+               image->alt_text, strlen(image->alt_text), &info);
+            image->alt_text_width = info.xOff;
+#else
             image->alt_text_width =
                gdk_string_width (widget->style->font->font, image->alt_text);
+#endif
 
          if (widget->allocation.width < image->alt_text_width ||
              widget->allocation.ascent + widget->allocation.descent
@@ -349,13 +388,43 @@ static void Dw_image_draw (DwWidget *wid
             p_Dw_widget_will_clip (widget);
 
          p_Dw_widget_draw_widget_box (widget, area, FALSE);
-         gdk_draw_string
+#ifndef DISABLE_ANTI_ALIAS
+         if (!xftdraw) {
+            window = DW_WIDGET_WINDOW (widget);
+            xftdraw = XftDrawCreate(GDK_DISPLAY(),
+                     GDK_WINDOW_XWINDOW(window),
+                     DefaultVisual(GDK_DISPLAY(), DefaultScreen(GDK_DISPLAY())),
+                     DefaultColormap(GDK_DISPLAY(), DefaultScreen(GDK_DISPLAY())));
+#ifdef XFT_VERSION
+            if (XftDrawDrawable(xftdraw) != GDK_WINDOW_XWINDOW(window)) {
+#else
+            if (xftdraw->drawable != GDK_WINDOW_XWINDOW(window)) {
+#endif
+               XftDrawChange(xftdraw, GDK_WINDOW_XWINDOW(window));
+            }
+         }
+         xftcolor.pixel = widget->style->color->color.pixel;
+         xftcolor.color.red = widget->style->color->color.red;
+         xftcolor.color.green = widget->style->color->color.green;
+         xftcolor.color.blue = widget->style->color->color.blue;
+         xftcolor.color.alpha = 0xffff;
+         XftDrawStringUtf8(xftdraw,
+               &xftcolor,           
+               widget->style->font->font,
+               p_Dw_widget_x_world_to_viewport (widget, widget->allocation.x),
+               p_Dw_widget_y_world_to_viewport (widget, widget->allocation.y)
+               + widget->style->font->font->ascent,
+               image->alt_text,
+               strlen(image->alt_text));
+#else
+         a_I18n_gdk_draw_string
             (DW_WIDGET_WINDOW (widget), widget->style->font->font,
              widget->style->color->gc,
              p_Dw_widget_x_world_to_viewport (widget, widget->allocation.x),
              p_Dw_widget_y_world_to_viewport (widget, widget->allocation.y)
              + widget->style->font->font->ascent,
              image->alt_text);
+#endif
       }
    }
 
@@ -387,6 +456,7 @@ static gboolean Dw_image_leave_notify (D
    DwImage *image = DW_IMAGE (widget);
    gboolean return_val = FALSE;
 
+   a_Dw_tooltip_count_reset();
    if (image->hover_link != -1) {
       image->hover_link = -1;
       gtk_signal_emit (GTK_OBJECT (widget), image_signals[LINK_ENTERED],
@@ -416,6 +486,14 @@ static gboolean Dw_image_button_press (D
       gtk_signal_emit (GTK_OBJECT (widget), image_signals[LINK_PRESSED],
                        image->pressed_link, link_x, link_y, event,
                        &return_val);
+   
+#if 0
+   if (DW_WIDGET(widget)->button_sensitive) {
+      gtk_signal_emit (GTK_OBJECT (widget), image_signals[IMAGE_PRESSED], event);
+      return TRUE;
+   } else
+      return FALSE;
+#endif
 
    return return_val;
 }
diff -pruN dillo-0.8.6/src/dw_image.h dillo-0.8.6-i18n-misc-20060709/src/dw_image.h
--- dillo-0.8.6/src/dw_image.h	2005-10-28 01:20:10.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_image.h	2006-05-16 01:21:08.000000000 +0900
@@ -69,6 +69,10 @@ struct _DwImageClass
    gboolean (*link_clicked)  (DwImage *page,
                               gint link, gint x, gint y,
                               GdkEventButton *event);
+#if 1
+   void (*image_pressed) (DwImage *page,
+                          GdkEventButton *event);
+#endif
 };
 
 
diff -pruN dillo-0.8.6/src/dw_page.c dillo-0.8.6-i18n-misc-20060709/src/dw_page.c
--- dillo-0.8.6/src/dw_page.c	2006-01-03 03:17:52.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_page.c	2006-05-16 01:21:08.000000000 +0900
@@ -19,8 +19,10 @@
 #include <ctype.h>
 #include <string.h>
 #include <stdio.h>
+#include <errno.h>
+#include <iconv.h>
 
-#include <gtk/gtk.h>
+#include "i18n_gtk.h"
 
 #include "msg.h"
 #include "list.h"
@@ -29,6 +31,7 @@
 #include "dw_gtk_viewport.h"
 
 #include "prefs.h"
+#include "i18n.h"
 
 #define DEBUG_REWRAP_LEVEL    0
 #define DEBUG_SIZE_LEVEL     10
@@ -203,6 +206,12 @@ static void Dw_page_init (DwPage *page)
 {
    DW_WIDGET_SET_FLAGS (page, DW_USES_HINTS);
 
+#ifndef DISABLE_ANTI_ALIAS
+   page->xftdraw = NULL;
+#endif
+   if (strcmp(RENDER_CHARSET, DILLO_CHARSET) == 0)
+	   page->it = (iconv_t)-1;
+   else page->it = iconv_open(RENDER_CHARSET, DILLO_CHARSET);
    page->list_item = FALSE;
    page->inner_padding = 0;
    page->line1_offset = 0;
@@ -361,6 +370,11 @@ static void Dw_page_destroy (GtkObject *
       parent_class->destroy. */
    page->num_words = 0;
    page->num_lines = 0;
+#ifndef DISABLE_ANTI_ALIAS
+   if (page->xftdraw) 
+      XftDrawDestroy(page->xftdraw);
+#endif
+   if (page->it != (iconv_t)-1) iconv_close(page->it);
 
    DBG_OBJ_SET_NUM(page, "num_lines", page->num_lines);
 
@@ -626,7 +640,7 @@ static void Dw_page_size_allocate (DwWid
             p_Dw_widget_size_allocate (word->content.data.widget,
                                        &child_allocation);
             break;
-
+            
          case DW_CONTENT_ANCHOR:
             p_Dw_gtk_viewport_change_anchor
                (widget, word->content.data.anchor,
@@ -1316,6 +1330,10 @@ static void Dw_page_draw_line (DwPage *p
    GdkWindow *window;
    GdkGC *gc, *hl_gc;
    DwStyleColor *page_bg_color, *word_bg_color;
+#ifndef DISABLE_ANTI_ALIAS
+   XftColor xftcolor;
+   XGlyphInfo info;
+#endif
 
    /* Here's an idea on how to optimize this routine to minimize the number
     * of calls to gdk_draw_string:
@@ -1328,7 +1346,7 @@ static void Dw_page_draw_line (DwPage *p
    widget = DW_WIDGET (page);
    window = DW_WIDGET_WINDOW (widget);
    page_bg_color = p_Dw_widget_get_bg_color (widget);
-
+  
    x_widget = Dw_page_line_total_x_offset(page,line);
    x_viewport =
       p_Dw_widget_x_world_to_viewport (widget,
@@ -1338,6 +1356,21 @@ static void Dw_page_draw_line (DwPage *p
       p_Dw_widget_y_world_to_viewport (widget,
                                        widget->allocation.y + y_widget);
    y_viewport_base = y_viewport + line->ascent;
+#ifndef DISABLE_ANTI_ALIAS
+   if (page->xftdraw == 0) {
+      page->xftdraw = XftDrawCreate(GDK_DISPLAY(),
+            GDK_WINDOW_XWINDOW(window),
+            DefaultVisual(GDK_DISPLAY(), DefaultScreen(GDK_DISPLAY())),
+            DefaultColormap(GDK_DISPLAY(), DefaultScreen(GDK_DISPLAY())));
+   }
+ #ifdef XFT_VERSION
+   if (XftDrawDrawable(page->xftdraw) != GDK_WINDOW_XWINDOW(window)) {
+ #else
+   if (page->xftdraw->drawable != GDK_WINDOW_XWINDOW(window)) {
+ #endif
+      XftDrawChange(page->xftdraw, GDK_WINDOW_XWINDOW(window));
+   }
+#endif
 
    for (word_index = line->first_word; word_index < line->last_word;
         word_index++) {
@@ -1352,7 +1385,12 @@ static void Dw_page_draw_line (DwPage *p
                           y_widget);
 
       switch (word->content.type) {
-      case DW_CONTENT_TEXT:
+      case DW_CONTENT_TEXT: {
+          /* Change from internal charset to render charset. */
+          gchar *word_str = word->content.data.text;
+          if (page->it != (iconv_t)-1)
+			  word->content.data.text = a_I18n_convert_raw(&page->it,
+                  word->content.data.text, strlen(word->content.data.text));
          if (word->style->background_color)
             word_bg_color = word->style->background_color;
          else
@@ -1388,9 +1426,24 @@ static void Dw_page_draw_line (DwPage *p
                                   word->size.ascent + word->size.descent,
                                   FALSE);
 
+#ifndef DISABLE_ANTI_ALIAS
+         /* draw string using Xft */
+         xftcolor.pixel = word->style->color->color.pixel;
+         xftcolor.color.red = word->style->color->color.red;
+         xftcolor.color.green = word->style->color->color.green;
+         xftcolor.color.blue = word->style->color->color.blue;
+         xftcolor.color.alpha = 0xffff;
+         XftDrawStringUtf8(page->xftdraw,
+               &xftcolor,           
+               word->style->font->font,
+               x_viewport, y_viewport_base + diff,
+               word->content.data.text,
+               strlen(word->content.data.text));
+#else
          gdk_draw_string (window, word->style->font->font, gc,
                           x_viewport, y_viewport_base + diff,
                           word->content.data.text);
+#endif
 
          /* underline */
          if (word->style->text_decoration & DW_STYLE_TEXT_DECORATION_UNDERLINE)
@@ -1428,6 +1481,20 @@ static void Dw_page_draw_line (DwPage *p
             if (word->hl_start[layer] != -1) {
                word_len = strlen (word->content.data.text);
                eff_hl_end = MIN (word_len, word->hl_end[layer]);
+#ifndef DISABLE_ANTI_ALIAS
+               XftTextExtentsUtf8(GDK_DISPLAY(),
+                     word->style->font->font,
+                     word->content.data.text,
+                     word->hl_start[layer],
+                     &info);
+               start_hl = x_viewport + info.xOff;
+               XftTextExtentsUtf8(GDK_DISPLAY(),
+                     word->style->font->font,
+                     word->content.data.text + word->hl_start[layer],
+                     eff_hl_end - word->hl_start[layer],
+                     &info);
+               width_hl = info.xOff;
+#else
                start_hl = x_viewport +
                   gdk_text_width (word->style->font->font,
                                   word->content.data.text,
@@ -1437,6 +1504,7 @@ static void Dw_page_draw_line (DwPage *p
                                   word->content.data.text
                                   + word->hl_start[layer],
                                   eff_hl_end - word->hl_start[layer]);
+#endif
 
                /* If the space after this word highlighted, and this word
                 * is not the last one in this line, highlight also the
@@ -1459,11 +1527,24 @@ static void Dw_page_draw_line (DwPage *p
 
                   /* Highlight the text. */
                   hl_gc = word->style->color->inverse_gc;
+#ifndef DISABLE_ANTI_ALIAS
+                  xftcolor.pixel = word->style->color->inverse_color.pixel;
+                  xftcolor.color.red = word->style->color->inverse_color.red;
+                  xftcolor.color.green = word->style->color->inverse_color.green;
+                  xftcolor.color.blue = word->style->color->inverse_color.blue;
+                  xftcolor.color.alpha = 0xffff;
+                  XftDrawStringUtf8(page->xftdraw,
+                        &xftcolor,           
+                        word->style->font->font,
+                        start_hl, y_viewport_base + diff,
+                        word->content.data.text + word->hl_start[layer],
+                        eff_hl_end - word->hl_start[layer]);
+#else
                   gdk_draw_text (window, word->style->font->font, hl_gc,
-                                 start_hl, y_viewport_base + diff,
-                                 word->content.data.text
-                                 + word->hl_start[layer],
-                                 eff_hl_end - word->hl_start[layer]);
+                          start_hl, y_viewport_base + diff,
+                          word->content.data.text + word->hl_start[layer],
+                          eff_hl_end - word->hl_start[layer]);
+#endif
 
                   /* underline and strike-through */
                   if (word->style->text_decoration
@@ -1484,8 +1565,12 @@ static void Dw_page_draw_line (DwPage *p
                }
             }
          }
+		 if (page->it != (iconv_t)-1) {
+            g_free(word->content.data.text);
+            word->content.data.text = word_str;
+		 }
          break;
-
+      }
       case DW_CONTENT_WIDGET:
          child = word->content.data.widget;
          if (p_Dw_widget_intersect (child, area, &child_area))
@@ -1668,11 +1753,14 @@ static gboolean Dw_page_send_selection_e
 {
    DwIterator *it;
    DwPageLine *line, *last_line;
-   gint32 next_word_start_x, word_start_x, word_x, next_word_x, yfirst, ylast;
+   gint32 next_word_start_x, word_start_x, word_x, next_word_x = 0, yfirst, ylast;
    gint char_pos = 0, word_index, line_index, link;
    DwPageWord *word;
    gboolean found;
    gboolean within_content;
+#ifndef DISABLE_ANTI_ALIAS
+   XGlyphInfo info;
+#endif
 
    DEBUG_MSG (DEBUG_EVENT_LEVEL,
               "Dw_page_send_selection_event: x = %d, y = %d\n", x, y);
@@ -1747,20 +1835,40 @@ static gboolean Dw_page_send_selection_e
                if (word->content.type == DW_CONTENT_TEXT) {
                   /* Search the character the mouse pointer is in.
                    * next_word_x is the right side of this character. */
+                  int len = strlen(word->content.data.text);
                   char_pos = 0;
-                  while ((next_word_x = word_start_x +
-                          gdk_text_width(word->style->font->font,
+#ifndef DISABLE_ANTI_ALIAS
+                  while (char_pos < len){
+                      XftTextExtentsUtf8(GDK_DISPLAY(),
+                              word->style->font->font,
+                              word->content.data.text,
+                              char_pos,
+                              &info);
+                      if(!((next_word_x = word_start_x + info.xOff) <= x))
+                          break;
+                      char_pos++;
+                  }
+                  /* The left side of this character. */
+                  XftTextExtentsUtf8(GDK_DISPLAY(),
+                        word->style->font->font,
+                        word->content.data.text,
+                        char_pos - 1,
+                        &info);
+                  word_x = word_start_x + info.xOff;
+#else
+                  while (((next_word_x = word_start_x +
+                          a_I18n_gdk_text_width(word->style->font->font,
                                          word->content.data.text,
                                          char_pos))
-                         <= x)
-                     char_pos++;
-
+                         <= x) && char_pos < len)
+                      char_pos++;
                   /* The left side of this character. */
                   word_x =
-                     word_start_x + gdk_text_width (word->style->font->font,
+                     word_start_x + a_I18n_gdk_text_width (word->style->font->font,
                                                     word->content.data.text,
                                                     char_pos - 1);
 
+#endif
                   /* If the mouse pointer is left from the middle, use the left
                    * position, otherwise, use the right one. */
                   if (x <= (word_x + next_word_x) / 2)
@@ -1860,6 +1968,7 @@ static gboolean Dw_page_motion_notify (D
       if (word_index == -1) {
          page->hover_link = -1;
          page->hover_tooltip = NULL;
+         a_Dw_tooltip_count_reset();
       } else {
          page->hover_link = page->words[word_index].style->x_link;
          page->hover_tooltip = page->words[word_index].style->x_tooltip;
@@ -1965,7 +2074,25 @@ static DwPageWord *Dw_page_add_word (DwP
 static void Dw_page_calc_text_size  (DwPage *page, char *text, DwStyle *style,
                                      DwRequisition *size)
 {
-   size->width = gdk_string_width (style->font->font, text);
+#ifndef DISABLE_ANTI_ALIAS
+   XGlyphInfo info;
+#endif
+   gchar *render_str = text;
+
+   /* Change from internal charset to render charset. */
+   if (page->it != (iconv_t)-1) {
+	   render_str = a_I18n_convert_raw(&page->it, text, strlen(text));
+   }
+
+#ifndef DISABLE_ANTI_ALIAS
+   XftTextExtentsUtf8(GDK_DISPLAY(),
+         style->font->font, render_str, strlen(render_str), &info);
+   size->width = info.xOff;
+#else
+   size->width = gdk_string_width (style->font->font, render_str);
+#endif
+   if (page->it != (iconv_t)-1) g_free(render_str);
+
    size->ascent = style->font->font->ascent;
    size->descent = style->font->font->descent;
 
@@ -2060,7 +2187,7 @@ gboolean a_Dw_page_add_anchor (DwPage *p
       y = Dw_page_line_total_y_offset_i (page, page->num_lines - 1);
 
    /*
-    * Since an anchor does not take any space, it is safe to call
+    * Since an anchor does not take any space, it is safe to call 
     * p_Dw_gtk_viewport_add_anchor already here.
     */
    if ((copy = p_Dw_gtk_viewport_add_anchor(DW_WIDGET(page), name, y)) == NULL)
@@ -2070,7 +2197,7 @@ gboolean a_Dw_page_add_anchor (DwPage *p
       word->content.type = DW_CONTENT_ANCHOR;
       word->content.data.anchor = copy;
       Dw_page_word_wrap (page, page->num_words - 1);
-
+      
       DBG_OBJ_ARRSET_STR (page, "words.%d.content.anchor", page->num_words - 1,
                           word->content.data.anchor);
 
@@ -2485,6 +2612,9 @@ static void Dw_page_iterator_get_allocat
    DwPageLine *line;
    gint wi, l;
    gint32 diff;
+#ifndef DISABLE_ANTI_ALIAS
+   XGlyphInfo info;
+#endif
 
    line = &page->lines[Dw_page_find_line_of_word (page, ii->pos)];
    word = &page->words[ii->pos];
@@ -2493,10 +2623,19 @@ static void Dw_page_iterator_get_allocat
    if (start == 0)
       diff = 0;
    else {
-      if (word->content.type == DW_CONTENT_TEXT)
-         diff = gdk_text_width (word->style->font->font,
+      if (word->content.type == DW_CONTENT_TEXT) {
+#ifndef DISABLE_ANTI_ALIAS
+         XftTextExtentsUtf8(GDK_DISPLAY(),
+                     word->style->font->font,
+                     word->content.data.text,
+                     start,
+                     &info);
+         diff = info.xOff;
+#else
+         diff = a_I18n_gdk_text_width (word->style->font->font,
                                 word->content.data.text, start);
-      else
+#endif
+      } else
          diff = word->size.width;
    }
 
@@ -2520,9 +2659,19 @@ static void Dw_page_iterator_get_allocat
          allocation->width = word->size.width;
       else if (end >= l)
          allocation->width = word->size.width + word->eff_space;
-      else
-         allocation->width = gdk_text_width (word->style->font->font,
+      else {
+#ifndef DISABLE_ANTI_ALIAS
+         XftTextExtentsUtf8(GDK_DISPLAY(),
+                     word->style->font->font,
+                     word->content.data.text,
+                     end,
+                     &info);
+         allocation->width = info.xOff;
+#else
+         allocation->width = a_I18n_gdk_text_width (word->style->font->font,
                                              word->content.data.text, end);
+#endif
+      }
    } else {
       if (end == 1)
          allocation->width = word->size.width;
diff -pruN dillo-0.8.6/src/dw_page.h dillo-0.8.6-i18n-misc-20060709/src/dw_page.h
--- dillo-0.8.6/src/dw_page.h	2005-10-28 01:20:10.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_page.h	2006-05-16 01:21:08.000000000 +0900
@@ -5,6 +5,7 @@
 #define __DW_PAGE_H__
 
 #include <gdk/gdk.h>
+#include <iconv.h>
 #include "dw_container.h"
 #include "url.h"
 
@@ -72,7 +73,10 @@ struct _DwPageWord {
 struct _DwPage
 {
    DwContainer container;
-
+#ifndef DISABLE_ANTI_ALIAS
+   XftDraw *xftdraw;
+#endif
+   iconv_t it;
    /* These fields provide some ad-hoc-functionality, used by sub-classes. */
    gboolean list_item;      /* If TRUE, the first word of the page is treated
                                specially (search in source). */
diff -pruN dillo-0.8.6/src/dw_style.c dillo-0.8.6-i18n-misc-20060709/src/dw_style.c
--- dillo-0.8.6/src/dw_style.c	2006-01-29 22:42:35.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_style.c	2006-05-16 01:21:08.000000000 +0900
@@ -11,6 +11,8 @@
 
 #include "dw_style.h"
 #include "dw_widget.h"
+#include "prefs.h"
+#include "i18n.h"
 
 #include <gdk/gdk.h>
 #include <stdio.h>
@@ -298,6 +300,26 @@
       style_char_1 = "o";
       style_char_2 = "i";
       break;
+      if (font->weight >= 500 && font->style != DW_STYLE_FONT_STYLE_NORMAL)
+         sprintf(fontname, "%s:style=Bold%s,Semibold%s:size=%d%s%s",
+                 font->name, style_char_1, style_char_1, font->size,
+                 strlen(font->lang) > 1 ? ":lang=" : "",
+                 strlen(font->lang) > 1 ? font->lang : "");
+      else if (font->style != DW_STYLE_FONT_STYLE_NORMAL)
+         sprintf(fontname, "%s:style=%s,Medium%s:size=%d%s%s",
+                 font->name, style_char_1, style_char_1, font->size,
+                 strlen(font->lang) > 1 ? ":lang=" : "",
+                 strlen(font->lang) > 1 ? font->lang : "");
+      else if (font->weight >= 500)
+         sprintf(fontname, "%s:style=Bold,Semibold:size=%d%s%s",
+                 font->name, font->size,
+                 strlen(font->lang) > 1 ? ":lang=" : "",
+                 strlen(font->lang) > 1 ? font->lang : "");
+      else
+         sprintf(fontname, "%s:style=Roman,Regular,Medium:size=%d%s%s",
+                 font->name, font->size,
+                 strlen(font->lang) > 1 ? ":lang=" : "",
+                 strlen(font->lang) > 1 ? font->lang : "");
    }
 
    sprintf (fontname, "-*-%s-%s-%s-*-*-%d-*-75-75-*-*-iso8859-1",
@@ -330,6 +352,12 @@
       }
 
       if (font->font == NULL) {
+        /* Try another platform-font that should be available. (fam83) */
+        font->font =
+           gdk_font_load
+           ("-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-1");
+			      }
+      if (font->font == NULL) {
          /* Can't load any suitable font!  */
          g_warning ("Can't load any ISO8859-1 font!?! :(");
          font->font =
@@ -354,6 +382,7 @@
    return (font1->size == font2->size &&
            font1->weight == font2->weight &&
            font1->style == font2->style &&
+           strncmp (font1->lang, font2->lang, 5) == 0 &&
            strcmp (font1->name, font2->name) == 0);
 }
 
@@ -365,11 +394,15 @@
 {
    const DwStyleFont *font = (DwStyleFont*) key;
    guint h;
+   gchar *lang;
 
    h = g_str_hash (font->name);
    h = (h << 5) - h + font->size;
    h = (h << 5) - h + font->weight;
    h = (h << 5) - h + font->style;
+   lang = g_strndup(font->lang, 5);
+   h = h + g_str_hash (lang);
+   g_free(lang);
    return h;
 }
 
@@ -398,6 +431,7 @@
       font->weight = font_attrs->weight;
       font->style = font_attrs->style;
       font->name = g_strdup (font_attrs->name);
+      strncpy(font->lang, font_attrs->lang, 6);
       font->ref_count = 0;
 
       Dw_style_font_realize (font, try_all);
diff -pruN dillo-0.8.6/src/dw_style.h dillo-0.8.6-i18n-misc-20060709/src/dw_style.h
--- dillo-0.8.6/src/dw_style.h	2005-10-28 01:20:10.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_style.h	2006-05-16 01:21:08.000000000 +0900
@@ -3,6 +3,13 @@
 
 #include <gdk/gdktypes.h>
 #include "dw_tooltip.h"
+#ifndef DISABLE_ANTI_ALIAS
+   #include <X11/Xlib.h>
+   #include <X11/Xft/Xft.h>
+   #undef Status
+   #include <gdk/gdkx.h>
+#endif
+
 
 #define DW_STYLE_ALIGN_LEFT   1
 #define DW_STYLE_ALIGN_RIGHT  2
@@ -146,6 +153,35 @@ typedef gint DwStyleLength;
 
 #define DW_STYLE_LENGTH_AUTO           0
 
+#ifndef DISABLE_ANTI_ALIAS
+ #ifndef XFT_VERSION
+  #ifndef XFT_DRAW_N_SRC
+   #define XFT_DRAW_N_SRC      2
+  #endif
+struct _XftDraw {
+    Display         *dpy;
+    Drawable        drawable;
+    Visual          *visual;    /* NULL for bitmaps */
+    Colormap        colormap;
+    Region          clip;
+    Bool            core_set;
+    Bool            render_set;
+    Bool            render_able;
+    struct {
+        Picture         pict;
+        struct {
+            Picture         pict;
+            XRenderColor    color;
+        } src[XFT_DRAW_N_SRC];
+    } render;
+    struct {
+        GC              draw_gc;
+        unsigned long   fg;
+        Font            font;
+    } core;
+};
+ #endif
+#endif
 
 struct _DwStyleBox
 {
@@ -189,13 +225,18 @@ struct _DwStyleFont
    gint weight;
    DwStyleFontStyle style;
 
-#ifdef USE_TYPE1
-   gint t1fontid;
+#ifndef DISABLE_ANTI_ALIAS
+   XftFont *font;
 #else
-   GdkFont *font;
+   #ifdef USE_TYPE1
+      gint t1fontid;
+   #else
+      GdkFont *font;
+   #endif
 #endif
    gint space_width;
    gint x_height;
+   gchar lang[6];
 };
 
 
diff -pruN dillo-0.8.6/src/dw_table.c dillo-0.8.6-i18n-misc-20060709/src/dw_table.c
--- dillo-0.8.6/src/dw_table.c	2005-10-28 01:20:11.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_table.c	2006-05-16 01:21:08.000000000 +0900
@@ -1559,7 +1559,7 @@ static void Dw_table_sub_calc_col_widths
             num_nf_cols = num_cols;
          }
 
-         diff_spacing =
+         diff_spacing = 
             (sub->end_col - sub->start_col - 1)
             * DW_WIDGET(sub->table)->style->border_spacing;
 
diff -pruN dillo-0.8.6/src/dw_table_cell.c dillo-0.8.6-i18n-misc-20060709/src/dw_table_cell.c
--- dillo-0.8.6/src/dw_table_cell.c	2005-10-28 01:20:11.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_table_cell.c	2006-05-16 01:21:08.000000000 +0900
@@ -22,6 +22,7 @@
  */
 
 #include "dw_table_cell.h"
+#include "i18n_gtk.h"
 
 /*#define DEBUG_LEVEL 1*/
 #include "debug.h"
@@ -147,6 +148,9 @@ static gint32 Dw_table_cell_get_value (D
    DwTableCell *cell = DW_TABLE_CELL (aligned_page);
    DwPage *page = DW_PAGE (aligned_page);
    DwPageWord *word;
+#ifndef DISABLE_ANTI_ALIAS
+   XGlyphInfo info;
+#endif
    int i, word_index;
    gint32 w;
 
@@ -168,8 +172,17 @@ static gint32 Dw_table_cell_get_value (D
       }
    } else {
       word = &page->words[cell->char_word_index];
-      w += gdk_text_width (word->style->font->font, word->content.data.text,
+#ifndef DISABLE_ANTI_ALIAS
+     XftTextExtentsUtf8(GDK_DISPLAY(),
+           word->style->font->font,
+           word->content.data.text,
+           cell->char_word_pos,
+           &info);
+     w += info.xOff;
+#else
+      w += a_I18n_gdk_text_width (word->style->font->font, word->content.data.text,
                            cell->char_word_pos);
+#endif
    }
 
    return w;
diff -pruN dillo-0.8.6/src/dw_tooltip.c dillo-0.8.6-i18n-misc-20060709/src/dw_tooltip.c
--- dillo-0.8.6/src/dw_tooltip.c	2005-10-28 01:20:11.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_tooltip.c	2006-05-16 01:21:08.000000000 +0900
@@ -14,6 +14,7 @@
 
 #include <gtk/gtk.h>
 #include "dw_tooltip.h"
+#include "i18n.h"
 
 /* The amount of space around the text, including the border. */
 #define PADDING 4
@@ -22,17 +23,20 @@
  * tooltip. */
 #define DIFF 10
 
-static gboolean Dw_tooltip_draw (DwTooltip *tooltip);
+static gint pop_count = 0;
+static gboolean Dw_tooltip_draw  (DwTooltip *tooltip);
 
 static DwTooltip *Dw_tooltip_new0 (const char *text, gint ref_count)
 {
    DwTooltip *tooltip;
 
+   pop_count = 0;
+   
    tooltip = g_new (DwTooltip, 1);
    tooltip->ref_count = ref_count;
    tooltip->window = NULL;
    tooltip->timeout_id = 0;
-   tooltip->text = g_strdup (text);
+   tooltip->text = a_I18n_DW_CHARSET_from_DILLO_CHARSET(text, -1);
    return tooltip;
 }
 
@@ -70,11 +74,14 @@ void Dw_tooltip_destroy (DwTooltip *tool
 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,
+
+   /* Since it is called by switch without knowing why, 
+    * 2 times of the beginning ignore.
+    */
+      tooltip->timeout_id = gtk_timeout_add (500, (GtkFunction)Dw_tooltip_draw,
                                           tooltip);
 }
 
-
 /*
  * Call this function if the pointer has left the widget/word.
  */
@@ -91,12 +98,17 @@ void a_Dw_tooltip_on_leave (DwTooltip *t
    }
 }
 
+void a_Dw_tooltip_count_reset ()
+{
+   pop_count = 0;
+}
 
 /*
  * Call this function if the pointer has moved within the widget/word.
  */
 void a_Dw_tooltip_on_motion (DwTooltip *tooltip)
 {
+   pop_count++;
    a_Dw_tooltip_on_enter (tooltip);
 }
 
@@ -112,6 +124,8 @@ static gboolean Dw_tooltip_draw (DwToolt
    x = px + DIFF;
    y = py + DIFF;
 
+   if (pop_count == 0)
+       return FALSE;
    tooltip->window = gtk_window_new (GTK_WINDOW_POPUP);
    gtk_widget_set_app_paintable (tooltip->window, TRUE);
    gtk_widget_set_name (tooltip->window, "gtk-tooltips");
@@ -161,5 +175,3 @@ static gboolean Dw_tooltip_draw (DwToolt
    return FALSE;
 }
 
-
-
diff -pruN dillo-0.8.6/src/dw_tooltip.h dillo-0.8.6-i18n-misc-20060709/src/dw_tooltip.h
--- dillo-0.8.6/src/dw_tooltip.h	2005-10-28 01:20:11.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/dw_tooltip.h	2006-05-16 01:21:08.000000000 +0900
@@ -19,12 +19,14 @@ DwTooltip* a_Dw_tooltip_new_no_ref (cons
 void       a_Dw_tooltip_on_enter   (DwTooltip *tooltip);
 void       a_Dw_tooltip_on_leave   (DwTooltip *tooltip);
 void       a_Dw_tooltip_on_motion  (DwTooltip *tooltip);
+void       a_Dw_tooltip_count_reset();
 
 #define a_Dw_tooltip_ref(tooltip)   ((tooltip)->ref_count++)
 #define a_Dw_tooltip_unref(tooltip) if (--((tooltip)->ref_count) == 0) \
                                        Dw_tooltip_destroy (tooltip)
-
+ 
 /* Don't use this function directly! */
 void Dw_tooltip_destroy (DwTooltip *tooltip);
 
+
 #endif /* __DW_TOOLTIP_H__ */
diff -pruN dillo-0.8.6/src/findtext.c dillo-0.8.6-i18n-misc-20060709/src/findtext.c
--- dillo-0.8.6/src/findtext.c	2005-10-28 01:20:11.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/findtext.c	2006-05-16 01:21:09.000000000 +0900
@@ -55,6 +55,7 @@
 #include "debug.h"
 #include <string.h>
 #include <ctype.h>
+#include "i18n.h"
 
 /*
  * Searches needle in haystack, according to type:
@@ -297,8 +298,6 @@ static gboolean Findtext_search0 (Findte
       return FALSE;
 }
 
-
-
 FindtextResult a_Findtext_search (FindtextState *state,
                                   gchar *str,
                                   gboolean case_sens)
@@ -306,6 +305,7 @@ FindtextResult a_Findtext_search (Findte
    int i;
    gboolean new_key = FALSE, was_highlighted = FALSE, first_trial;
    FindtextResult result2;
+   char *encStr;
 
    if (state->widget == NULL)
       return FINDTEXT_NOT_FOUND;
@@ -324,19 +324,21 @@ FindtextResult a_Findtext_search (Findte
       state->hl_iterator = NULL;
    }
 
+   encStr = a_Misc_add_space(str);
+
    /* If the key (or the widget) changes (including case sensitivity),
       the search is started from the beginning. */
    if (state->keystr == NULL || state->case_sens != case_sens ||
-       strcmp(state->keystr, str) != 0) {
+       strcmp(state->keystr, encStr) != 0) {
       new_key = TRUE;
 
       g_free (state->keystr);
-      state->keystr = g_strdup (str);
+      state->keystr = g_strdup (encStr);
       state->case_sens = case_sens;
 
       if (state->key != NULL)
          Findtext_key_destroy (state->key);
-      state->key = Findtext_key_new (str, case_sens);
+      state->key = Findtext_key_new (encStr, case_sens);
 
       if (state->iterator)
          a_Dw_word_iterator_free (state->iterator);
@@ -413,6 +415,7 @@ FindtextResult a_Findtext_search (Findte
       g_assert (result2 == FINDTEXT_SUCCESS);
       return FINDTEXT_RESTART;
    }
+   g_free(encStr);
 }
 
 /*
@@ -437,3 +440,5 @@ void a_Findtext_reset_search (FindtextSt
       state->hl_iterator = NULL;
    }
 }
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/src/gtk_ext_button.c dillo-0.8.6-i18n-misc-20060709/src/gtk_ext_button.c
--- dillo-0.8.6/src/gtk_ext_button.c	2005-10-28 01:20:12.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/gtk_ext_button.c	2006-05-16 01:21:09.000000000 +0900
@@ -68,14 +68,14 @@ GtkWidget *a_Gtk_ext_button_new_with_lab
 {
    GtkWidget *button;
    GtkWidget *label_widget;
-
+   
    button = a_Gtk_ext_button_new ();
    label_widget = gtk_label_new (label);
    gtk_misc_set_alignment (GTK_MISC (label_widget), 0.5, 0.5);
-
+   
    gtk_container_add (GTK_CONTAINER (button), label_widget);
    gtk_widget_show (label_widget);
-
+   
    return button;
 }
 
@@ -166,7 +166,7 @@ static void Gtk_ext_button_init(GtkExtBu
 static void Gtk_ext_button_destroy (GtkObject *object)
 {
    GtkExtButton *button;
-
+   
    button = GTK_EXT_BUTTON (object);
    if (button->menu_signal_id != -1)
       gtk_signal_disconnect (GTK_OBJECT (button->active_menu),
@@ -213,10 +213,10 @@ static gint Gtk_ext_button_button_press 
    GtkExtButton *ext_button;
    GtkStateType new_state;
    GtkMenu *menu;
-
+   
    button = GTK_BUTTON (widget);
    ext_button = GTK_EXT_BUTTON (widget);
-
+   
    if (ext_button->pressed_button) {
       /* Already a button pressed. */
       return FALSE;
@@ -224,11 +224,11 @@ static gint Gtk_ext_button_button_press 
               ext_button->action[event->button - 1]
               != GTK_EXT_BUTTON_INACTIVE) {
       ext_button->pressed_button = event->button;
-
+      
       gtk_grab_add (widget);
       button->button_down = TRUE;
       new_state = (button->in_button ? GTK_STATE_ACTIVE : GTK_STATE_NORMAL);
-
+      
       if (GTK_WIDGET_STATE (button) != new_state) {
          gtk_widget_set_state (GTK_WIDGET (button), new_state);
          gtk_widget_queue_draw (GTK_WIDGET (button));
@@ -248,7 +248,7 @@ static gint Gtk_ext_button_button_press 
       case GTK_EXT_BUTTON_MENU:
          menu = ext_button->action_data[event->button - 1].menu;
          break;
-
+         
       case GTK_EXT_BUTTON_MENU_CREATOR:
          menu =
             ext_button->action_data[event->button - 1].creator.func (
@@ -256,7 +256,7 @@ static gint Gtk_ext_button_button_press 
                ext_button->action_data[event->button - 1].creator.data);
          break;
       }
-
+ 
       if (menu) {
          ext_button->active_menu = menu;
          gtk_menu_popup (menu, NULL, widget, Gtk_ext_button_position_menu,
@@ -267,7 +267,7 @@ static gint Gtk_ext_button_button_press 
                                           Gtk_ext_button_menu_hidden),
                                        (gpointer) button);
       }
-
+      
       return TRUE;
    } else
       return FALSE;
@@ -322,10 +322,10 @@ static gint Gtk_ext_button_enter_notify 
    GtkButton *button;
    GtkWidget *event_widget;
    GtkStateType new_state;
-
+  
    button = GTK_BUTTON (widget);
    event_widget = gtk_get_event_widget ((GdkEvent*) event);
-
+   
    if ((event_widget == widget) && (event->detail != GDK_NOTIFY_INFERIOR)) {
       button->in_button = TRUE;
       new_state =
@@ -350,10 +350,10 @@ static gint Gtk_ext_button_leave_notify 
    GtkButton *button;
    GtkExtButton *ext_button;
    GtkWidget *event_widget;
-
+   
    button = GTK_BUTTON (widget);
    event_widget = gtk_get_event_widget ((GdkEvent*) event);
-
+ 
    if ((event_widget == widget) &&
        (event->detail != GDK_NOTIFY_INFERIOR)) {
       button->in_button = FALSE;
@@ -392,12 +392,12 @@ static void Gtk_ext_button_menu_hidden (
    ext_button->active_menu = NULL;
 
    gtk_grab_remove (GTK_WIDGET (ext_button));
-
+   
    button = GTK_BUTTON (ext_button);
    button->in_button = FALSE;
    button->button_down = FALSE;
    ext_button->pressed_button = 0;
-
+   
    gtk_widget_set_state (GTK_WIDGET (button), GTK_STATE_NORMAL);
    gtk_widget_queue_draw (GTK_WIDGET (button));
 }
diff -pruN dillo-0.8.6/src/gtk_ext_button.h dillo-0.8.6-i18n-misc-20060709/src/gtk_ext_button.h
--- dillo-0.8.6/src/gtk_ext_button.h	2005-10-28 01:20:12.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/gtk_ext_button.h	2006-05-16 01:21:09.000000000 +0900
@@ -21,7 +21,7 @@ extern "C" {
 
 typedef struct _GtkExtButton       GtkExtButton;
 typedef struct _GtkExtButtonClass  GtkExtButtonClass;
-
+   
 typedef GtkMenu* (GtkExtButtonMenuCreator)(GtkExtButton *button,
                                             gpointer data);
 
diff -pruN dillo-0.8.6/src/gtk_ext_menu.c dillo-0.8.6-i18n-misc-20060709/src/gtk_ext_menu.c
--- dillo-0.8.6/src/gtk_ext_menu.c	2005-10-28 01:20:12.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/gtk_ext_menu.c	2006-05-16 01:21:09.000000000 +0900
@@ -25,7 +25,7 @@
  *
  * GtkExtMenu changes dealing with release events a bit: if the affected
  * menu item is a GtkExtMenuItem, it is told to handle this event specially.
- * The GtkExtMenuItem will simply change its activate signal temporally.
+ * The GtkExtMenuItem will simply change its activate signal temporally. 
  *
  * (This is a bit ugly, but still cleaner than listening to the low-level
  * events, like "button-release-event".)
@@ -64,10 +64,10 @@ GtkType a_Gtk_ext_menu_get_type (void)
          (GtkArgGetFunc) NULL,
          (GtkClassInitFunc)NULL
       };
-
+      
       type = gtk_type_unique (gtk_menu_get_type (), &info);
    }
-
+   
    return type;
 }
 
@@ -78,9 +78,9 @@ GtkType a_Gtk_ext_menu_get_type (void)
 static void Gtk_ext_menu_class_init (GtkExtMenuClass *klass)
 {
    GtkWidgetClass *gtk_widget_class;
-
+   
    parent_class = gtk_type_class (gtk_menu_get_type ());
-
+   
    gtk_widget_class = (GtkWidgetClass*) klass;
    gtk_widget_class->button_release_event = Gtk_ext_menu_button_release;
 }
@@ -115,7 +115,7 @@ static gint Gtk_ext_menu_is_item (GtkMen
    g_return_val_if_fail (menu_shell != NULL, FALSE);
    g_return_val_if_fail (GTK_IS_MENU_SHELL (menu_shell), FALSE);
    g_return_val_if_fail (child != NULL, FALSE);
-
+   
    parent = child->parent;
    while (parent && GTK_IS_MENU_SHELL (parent)) {
       if (parent == (GtkWidget*) menu_shell)
@@ -134,12 +134,12 @@ static GtkWidget* Gtk_ext_menu_get_item 
                                          GdkEvent *event)
 {
    GtkWidget *menu_item;
-
+   
   menu_item = gtk_get_event_widget ((GdkEvent*) event);
-
+  
   while (menu_item && !GTK_IS_MENU_ITEM (menu_item))
      menu_item = menu_item->parent;
-
+  
   if (menu_item && Gtk_ext_menu_is_item (menu_shell, menu_item))
      return menu_item;
   else
diff -pruN dillo-0.8.6/src/gtk_ext_menu_item.h dillo-0.8.6-i18n-misc-20060709/src/gtk_ext_menu_item.h
--- dillo-0.8.6/src/gtk_ext_menu_item.h	2005-10-28 01:20:12.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/gtk_ext_menu_item.h	2006-05-16 01:21:09.000000000 +0900
@@ -28,7 +28,7 @@ struct _GtkExtMenuItem
 struct _GtkExtMenuItemClass
 {
    GtkMenuItemClass parent_class;
-
+   
    void (*activate1) (GtkExtMenuItem *menu_item);
    void (*activate2) (GtkExtMenuItem *menu_item);
    void (*activate3) (GtkExtMenuItem *menu_item);
diff -pruN dillo-0.8.6/src/gtk_menu_title.c dillo-0.8.6-i18n-misc-20060709/src/gtk_menu_title.c
--- dillo-0.8.6/src/gtk_menu_title.c	2005-10-28 01:20:12.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/gtk_menu_title.c	2006-05-16 01:21:09.000000000 +0900
@@ -137,7 +137,7 @@ static void Gtk_menu_title_size_request 
                              BORDER_SPACING);
    requisition->height = 2 * (GTK_CONTAINER (widget)->border_width +
                               widget->style->klass->ythickness);
-
+   
    if (menu_title->label) {
       requisition->width +=
          gdk_string_width (widget->style->font, GTK_MENU_TITLE(widget)->label);
diff -pruN dillo-0.8.6/src/gtkframeset.c dillo-0.8.6-i18n-misc-20060709/src/gtkframeset.c
--- dillo-0.8.6/src/gtkframeset.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/gtkframeset.c	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,1305 @@
+/*
+ * File: gtkframeset.c
+ * Copyright (C) 2003 Frank de Lange <frank@unternet.org>
+ *
+ *   a frameset widget for GTK - The GIMP Toolkit
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "gtkframeset.h"
+#include <string.h>              /* for strpbrk() */
+#include <locale.h>              /* for setlocale */
+
+#define DEBUG_ALLOC 10
+#define DEBUG_EVENT 10
+/* #define DEBUG_LEVEL 10 */
+#include "debug.h"
+
+/* child args */
+enum
+{
+  CHILD_ARG_0,
+  CHILD_ARG_ROW_ATTACH,
+  CHILD_ARG_COL_ATTACH,
+  CHILD_ARG_X_PADDING,
+  CHILD_ARG_Y_PADDING,
+  CHILD_ARG_BORDER,
+  CHILD_ARG_NORESIZE
+};
+  
+/* declarations */
+static void gtk_frameset_class_init          (GtkFramesetClass  *klass);
+static void gtk_frameset_init	             (GtkFrameset       *frameset);
+static void gtk_frameset_finalize	     (GtkObject	        *object);
+static void gtk_frameset_size_allocate       (GtkWidget	        *widget,
+					      GtkAllocation     *allocation);
+static void gtk_frameset_map	             (GtkWidget	        *widget);
+static void gtk_frameset_unmap	             (GtkWidget	        *widget);
+static void gtk_frameset_draw	             (GtkWidget	        *widget,
+					      GdkRectangle      *area);
+static gint gtk_frameset_expose	             (GtkWidget	        *widget,
+					      GdkEventExpose    *event);
+static void gtk_frameset_set_child_arg       (GtkContainer      *container,
+					      GtkWidget         *child,
+					      GtkArg            *arg,
+					      guint              arg_id);
+static void gtk_frameset_get_child_arg       (GtkContainer      *container,
+					      GtkWidget         *child,
+					      GtkArg            *arg,
+					      guint              arg_id);
+static GtkType gtk_frameset_child_type       (GtkContainer      *container);
+static void gtk_frameset_add	             (GtkContainer      *container,
+					      GtkWidget	        *widget);
+static void gtk_frameset_remove	             (GtkContainer      *container,
+					      GtkWidget	        *widget);
+static void gtk_frameset_forall	             (GtkContainer      *container,
+					      gboolean	         include_internals,
+					      GtkCallback        callback,
+					      gpointer	         callback_data);
+static void gtk_frameset_realize             (GtkWidget         *widget);
+static void gtk_frameset_unrealize           (GtkWidget         *widget);
+static gint gtk_frameset_button_press        (GtkWidget         *widget,
+					      GdkEventButton    *event);
+static gint gtk_frameset_button_release      (GtkWidget         *widget,
+					      GdkEventButton    *event);
+static gint gtk_frameset_motion              (GtkWidget         *widget,
+					      GdkEventMotion    *event);
+static gint gtk_frameset_enter               (GtkWidget         *widget,
+					      GdkEventCrossing  *event);
+static gint gtk_frameset_leave               (GtkWidget         *widget,
+					      GdkEventCrossing  *event);
+
+/* private functions */
+static void gtk_frameset_size_allocate_init (GtkFrameset        *frameset);
+static void gtk_frameset_size_allocate_pass1(GtkFrameset        *frameset);
+static GSList *gtk_frameset_get_multi_length(const gchar        *attr);
+static void gtk_frameset_calculate_lengths  (GtkFrameset        *frameset);
+static gint gtk_frameset_set_resize_rowcol  (GtkWidget          *widget,
+					     gint               x,
+					     gint               y);
+
+static GtkContainerClass *parent_class = NULL;
+
+/* standard GTK function */
+GtkType
+gtk_frameset_get_type (void)
+{
+  static GtkType frameset_type = 0;
+  
+  if (!frameset_type)
+    {
+      static const GtkTypeInfo frameset_info =
+      {
+	"GtkFrameset",
+	sizeof (GtkFrameset),
+	sizeof (GtkFramesetClass),
+	(GtkClassInitFunc) gtk_frameset_class_init,
+	(GtkObjectInitFunc) gtk_frameset_init,
+        /* reserved_1 */ NULL,
+	/* reserved_2 */ NULL,
+	(GtkClassInitFunc) NULL,
+      };
+      
+      frameset_type = gtk_type_unique (gtk_container_get_type (), &frameset_info);
+    }
+  
+  return frameset_type;
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_class_init (GtkFramesetClass *class)
+{
+  GtkObjectClass *object_class;
+  GtkWidgetClass *widget_class;
+  GtkContainerClass *container_class;
+  
+  object_class = (GtkObjectClass*) class;
+  widget_class = (GtkWidgetClass*) class;
+  container_class = (GtkContainerClass*) class;
+  
+  parent_class = gtk_type_class (gtk_container_get_type ());
+  
+  gtk_container_add_child_arg_type ("GtkFrameset::row_attach", GTK_TYPE_UINT, GTK_ARG_READWRITE, CHILD_ARG_ROW_ATTACH);
+  gtk_container_add_child_arg_type ("GtkFrameset::col_attach", GTK_TYPE_UINT, GTK_ARG_READWRITE, CHILD_ARG_COL_ATTACH);
+  gtk_container_add_child_arg_type ("GtkFrameset::x_padding", GTK_TYPE_UINT, GTK_ARG_READWRITE, CHILD_ARG_X_PADDING);
+  gtk_container_add_child_arg_type ("GtkFrameset::y_padding", GTK_TYPE_UINT, GTK_ARG_READWRITE, CHILD_ARG_Y_PADDING);
+  gtk_container_add_child_arg_type ("GtkFrameset::border", GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_BORDER);
+  gtk_container_add_child_arg_type ("GtkFrameset::noresize", GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_NORESIZE);
+
+  object_class->finalize = gtk_frameset_finalize;
+  
+  widget_class->size_allocate = gtk_frameset_size_allocate;
+  widget_class->map = gtk_frameset_map;
+  widget_class->unmap = gtk_frameset_unmap;
+  widget_class->draw = gtk_frameset_draw;
+  widget_class->expose_event = gtk_frameset_expose;
+  widget_class->realize = gtk_frameset_realize;
+  widget_class->unrealize = gtk_frameset_unrealize;
+  widget_class->button_press_event = gtk_frameset_button_press;
+  widget_class->button_release_event = gtk_frameset_button_release;
+  widget_class->motion_notify_event = gtk_frameset_motion;
+  widget_class->enter_notify_event = gtk_frameset_enter;
+  widget_class->leave_notify_event = gtk_frameset_leave;
+  
+  container_class->add = gtk_frameset_add;
+  container_class->remove = gtk_frameset_remove;
+  container_class->forall = gtk_frameset_forall;
+  container_class->child_type = gtk_frameset_child_type;
+  container_class->set_child_arg = gtk_frameset_set_child_arg;
+  container_class->get_child_arg = gtk_frameset_get_child_arg;
+}
+
+/* standard GTK function */
+static GtkType
+gtk_frameset_child_type (GtkContainer   *container)
+{
+  return GTK_TYPE_WIDGET;
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_set_child_arg (GtkContainer   *container,
+			    GtkWidget      *child,
+			    GtkArg         *arg,
+			    guint           arg_id)
+{
+  GtkFrameset *frameset;
+  GtkFramesetChild *frameset_child;
+  GList *list;
+
+  frameset = GTK_FRAMESET (container);
+  frameset_child = NULL;
+  for (list = frameset->children; list; list = list->next)
+    {
+      frameset_child = list->data;
+
+      if (frameset_child->widget == child)
+	break;
+    }
+  if (!list)
+    return;
+
+  switch (arg_id)
+    {
+    case CHILD_ARG_ROW_ATTACH:
+      frameset_child->row_attach = GTK_VALUE_UINT (*arg);
+      break;
+    case CHILD_ARG_COL_ATTACH:
+      frameset_child->col_attach = GTK_VALUE_UINT (*arg);
+      break;
+    case CHILD_ARG_X_PADDING:
+      frameset_child->xpadding = GTK_VALUE_UINT (*arg);
+      break;
+    case CHILD_ARG_Y_PADDING:
+      frameset_child->ypadding = GTK_VALUE_UINT (*arg);
+      break;
+    case CHILD_ARG_BORDER:
+      frameset_child->border = GTK_VALUE_BOOL (*arg);
+      /* only SET this value (it is set to FALSE by default), otherwise
+       * border frames followed by noborder frames will lose their border
+       * 
+       * This feature can also be provided by manipulating the child widget's
+       * border directly. I have tested this and it works. I might use it in a later
+       * version of GtkFrameset */
+      if(GTK_VALUE_BOOL(*arg)) {
+	if(frameset_child->row_attach > 0)
+	  /* set top border */
+	  frameset->rows[frameset_child->row_attach - 1].border = GTK_VALUE_BOOL (*arg);
+	frameset->rows[frameset_child->row_attach].border = GTK_VALUE_BOOL (*arg);
+	if(frameset_child->col_attach > 0)
+	  /* set left border */
+	  frameset->cols[frameset_child->col_attach - 1].border = GTK_VALUE_BOOL (*arg);
+	frameset->cols[frameset_child->col_attach].border = GTK_VALUE_BOOL (*arg);
+      }
+      break;
+    case CHILD_ARG_NORESIZE:
+      frameset_child->noresize = GTK_VALUE_BOOL (*arg);
+      /* only SET this value (it is set to FALSE by default), otherwise
+       * noresize frames followed by resizable frames will be resizable as
+       * well through the resizable frames' left/top edge */
+      if(GTK_VALUE_BOOL(*arg)) {
+	if(frameset_child->row_attach + 1 < frameset->nrows)
+	  /* make lower edge unresizable */
+	  frameset->rows[frameset_child->row_attach + 1].noresize = GTK_VALUE_BOOL (*arg);
+	frameset->rows[frameset_child->row_attach].noresize = GTK_VALUE_BOOL (*arg);
+	if(frameset_child->col_attach + 1 < frameset->ncols)
+	  /* make right edge unresizable */
+	  frameset->cols[frameset_child->col_attach + 1].noresize = GTK_VALUE_BOOL (*arg);
+	frameset->cols[frameset_child->col_attach].noresize = GTK_VALUE_BOOL (*arg);
+      }
+      break;
+    default:
+      break;
+    }
+  if (GTK_WIDGET_VISIBLE (child) && GTK_WIDGET_VISIBLE (frameset))
+    gtk_widget_queue_resize (child);
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_get_child_arg (GtkContainer   *container,
+                            GtkWidget      *child,
+			    GtkArg         *arg,
+			    guint           arg_id)
+{
+  GtkFrameset *frameset;
+  GtkFramesetChild *frameset_child;
+  GList *list;
+
+  frameset = GTK_FRAMESET (container);
+  frameset_child = NULL;
+  for (list = frameset->children; list; list = list->next)
+    {
+      frameset_child = list->data;
+
+      if (frameset_child->widget == child)
+	break;
+    }
+  if (!list)
+    return;
+
+  switch (arg_id)
+    {
+    case CHILD_ARG_ROW_ATTACH:
+      GTK_VALUE_UINT (*arg) = frameset_child->row_attach;
+      break;
+    case CHILD_ARG_COL_ATTACH:
+      GTK_VALUE_UINT (*arg) = frameset_child->col_attach;
+      break;
+    case CHILD_ARG_X_PADDING:
+      GTK_VALUE_UINT (*arg) = frameset_child->xpadding;
+      break;
+    case CHILD_ARG_Y_PADDING:
+      GTK_VALUE_UINT (*arg) = frameset_child->ypadding;
+      break;
+    case CHILD_ARG_BORDER:
+      GTK_VALUE_BOOL (*arg) = frameset_child->border;
+      break;
+    case CHILD_ARG_NORESIZE:
+      GTK_VALUE_BOOL (*arg) = frameset_child->noresize;
+      break;
+    default:
+      arg->type = GTK_TYPE_INVALID;
+      break;
+    }
+}
+
+/*
+ * Standard GTK function
+ */
+static void
+gtk_frameset_realize (GtkWidget *widget)
+{
+  GtkFrameset *frameset = GTK_FRAMESET(widget);
+  GdkWindowAttr attributes;
+  gint attributes_mask;
+
+  GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
+  
+  attributes.x = widget->allocation.x;
+  attributes.y = widget->allocation.y;
+  attributes.width = widget->allocation.width;
+  attributes.height = widget->allocation.height;
+  attributes.window_type = GDK_WINDOW_CHILD;
+  attributes.wclass = GDK_INPUT_OUTPUT;
+  attributes.visual = gtk_widget_get_visual (widget);
+  attributes.colormap = gtk_widget_get_colormap (widget);
+  attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+  attributes_mask = (GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP);
+  attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
+			    GDK_BUTTON_RELEASE_MASK |
+			    GDK_POINTER_MOTION_MASK |
+			    GDK_POINTER_MOTION_HINT_MASK |
+			    GDK_ENTER_NOTIFY_MASK |
+			    GDK_LEAVE_NOTIFY_MASK);
+  
+  widget->window = gdk_window_new (gtk_widget_get_parent_window (widget),
+				   &attributes, attributes_mask);
+
+  frameset->cursor_rowcol = gdk_cursor_new(GDK_FLEUR);
+  frameset->cursor_row = gdk_cursor_new(GDK_SB_V_DOUBLE_ARROW);
+  frameset->cursor_col = gdk_cursor_new(GDK_SB_H_DOUBLE_ARROW);
+
+  gdk_window_set_user_data (widget->window, frameset);
+  widget->style = gtk_style_attach (widget->style, widget->window);
+  gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
+  gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
+}
+
+/*
+ * standard GTK function
+ */
+static void
+gtk_frameset_unrealize (GtkWidget *widget)
+{
+  GtkFrameset *frameset = GTK_FRAMESET(widget);
+
+  gdk_cursor_destroy(frameset->cursor_rowcol);
+  gdk_cursor_destroy(frameset->cursor_row);
+  gdk_cursor_destroy(frameset->cursor_col);
+
+  GTK_WIDGET_CLASS(parent_class)->unrealize (widget);
+}
+  
+/* standard GTK function */
+static void
+gtk_frameset_init (GtkFrameset *frameset)
+{
+  GTK_WIDGET_UNSET_FLAGS (frameset, GTK_NO_WINDOW);
+
+  frameset->children = NULL;
+  frameset->rows = NULL;
+  frameset->cols = NULL;
+  frameset->nrows = 0;
+  frameset->ncols = 0;
+  frameset->resize_row = RESIZE_NONE;
+  frameset->resize_col = RESIZE_NONE;
+  frameset->in_drag = FALSE;
+  frameset->cursor_rowcol = NULL;
+  frameset->cursor_row = NULL;
+  frameset->cursor_col = NULL;
+
+  gtk_frameset_resize (frameset, "*", "*");
+}
+
+/*
+ * standard GTK function
+ *
+ * resize frameset. It is only possible to enlarge the
+ * frameset (or change dimensions while keeping the same
+ * size) as reducing the size could orphan children.
+ */
+void
+gtk_frameset_resize (GtkFrameset *frameset,
+		     gchar *row_multilengths,
+		     gchar *col_multilengths)
+{
+  gint n_rows, n_cols, n;
+  GSList *rows, *cols;
+  gfloat total_percentage, total_relative;
+  gfloat row_per_relative, row_per_percent;
+  gfloat col_per_relative, col_per_percent;
+
+  g_return_if_fail (frameset != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET(frameset));
+  g_return_if_fail (row_multilengths || col_multilengths);
+
+  DEBUG_MSG(DEBUG_EVENT, "gtk_frameset_resize(%d, %s, %s)\n", (gint) frameset, row_multilengths, col_multilengths);
+  
+  rows = gtk_frameset_get_multi_length(row_multilengths);
+  cols = gtk_frameset_get_multi_length(col_multilengths);
+
+  /* (older versions of) compiler happiness */
+  row_per_relative = 0;
+  row_per_percent = 0;
+  col_per_relative = 0;
+  col_per_percent = 0;
+
+  n_rows = g_slist_length(rows);
+  n_cols = g_slist_length(cols);
+
+   /* calculate row and column dimensions. These calculations are slightly hairy...
+    * The theory goes as follows:
+    * 
+    * Starting point is the frameset width and height. 
+    * First come frames with absolute dimensions. No frame can be bigger than the frameset,
+    * so checks are performed to make sure that absolute frame dimensions do not
+    * exceed frameset dimensions. When the total number of frames with absolute dimensions
+    * exceeds the frameset dimensions, the available space is divided by ratio to those frames.
+    * In case there are only absolute dimensioned frames, available space is divided by ratio to
+    * these frames and the absolute dimensions are transformed into percentual dimensions.
+    *
+    * Next come frames with percentual dimensions. They get to divide the remaining space after
+    * all absolute dimensions have been allocated. If the total of all percentual dimensions adds
+    * up to more than 100, the calculation is normalised to 100%.
+    *
+    * Last come frames with relative dimensions. They get to divide the remaining space after
+    * all absolute and percentual dimensions have been allocated. All available space is divided
+    * by ratio to relative weights and allocated to frames. In the second stage, relative dimensions
+    * are transformed into percentual dimensions so the frameset ends up having only absolute (pixel)
+    * and percentual dimensions.
+    *
+    * The calculations are performed in two stages. In the first (aggregation) stage, the total weight of
+    * absolute, percentual and relative dimensions is calculated. In the second (normalisation) stage, relative
+    * dimensions are transformed into percentual dimensions. The actual calculation of pixel dimensions
+    * is performed in the callback function as it depends on information about the current size of the
+    * frameset widget.
+    *
+    * Can this be optimised? Sure, but... later...
+    */
+
+  if(n_rows >= frameset->nrows)
+    {
+      frameset->nrows = n_rows;
+      frameset->rows = g_realloc (frameset->rows, frameset->nrows * sizeof (GtkFramesetRowCol));
+
+      frameset->row_total_absolute = 0;
+      total_percentage = 0;
+      total_relative = 0;
+      
+      for(n = 0; n < frameset->nrows; n++) {
+	frameset->rows[n].length = GPOINTER_TO_INT(g_slist_nth_data(rows, n));
+	frameset->rows[n].noresize = FALSE;
+	frameset->rows[n].border = FALSE;
+	if(LENGTH_IS_RELATIVE(frameset->rows[n].length))
+	  (LENGTH_GET_RELATIVE(frameset->rows[n].length) ?
+	   total_relative += LENGTH_GET_RELATIVE(frameset->rows[n].length) :
+	   total_relative++);
+	else if(LENGTH_IS_PERCENTAGE(frameset->rows[n].length))
+	  total_percentage += LENGTH_GET_PERCENTAGE(frameset->rows[n].length);
+	else if(LENGTH_IS_ABSOLUTE(frameset->rows[n].length)) {
+	  frameset->row_total_absolute += LENGTH_GET_ABSOLUTE(frameset->rows[n].length);
+	}
+      }
+      
+      if((total_percentage == 0) && (total_relative == 0)) {
+	for(n = 0; n < frameset->nrows; n++)
+	  if(LENGTH_IS_ABSOLUTE(frameset->rows[n].length))
+	    frameset->rows[n].length =
+	      LENGTH_CREATE_PERCENTAGE((gfloat) LENGTH_GET_ABSOLUTE(frameset->rows[n].length) /
+				       frameset->row_total_absolute);
+	frameset->row_total_absolute = 0;
+	row_per_percent = 1;
+      } else if(total_percentage < 1) {
+	row_per_relative = (gfloat) (1 - total_percentage) / total_relative;
+	row_per_percent = (gfloat) (total_relative > 0 ? 1 : 1.0 / total_percentage);
+      } else {
+	row_per_percent = (gfloat) (1 / total_percentage);
+	row_per_relative = 0;
+      }
+    }
+  
+  if(n_cols >= frameset->ncols)
+    {
+      frameset->ncols = n_cols;
+      frameset->cols = g_realloc (frameset->cols, frameset->ncols * sizeof (GtkFramesetRowCol));
+      
+      frameset->col_total_absolute = 0;
+      total_percentage = 0;
+      total_relative = 0;
+      
+      for(n = 0; n < frameset->ncols; n++) {
+	frameset->cols[n].length = GPOINTER_TO_INT(g_slist_nth_data(cols, n));
+	frameset->cols[n].noresize = FALSE;
+	frameset->cols[n].border = FALSE;
+	if(LENGTH_IS_RELATIVE(frameset->cols[n].length))
+	  (LENGTH_GET_RELATIVE(frameset->cols[n].length) ?
+	   total_relative += LENGTH_GET_RELATIVE(frameset->cols[n].length) :
+	   total_relative++);
+	else if(LENGTH_IS_PERCENTAGE(frameset->cols[n].length))
+	  total_percentage += LENGTH_GET_PERCENTAGE(frameset->cols[n].length);
+	else if(LENGTH_IS_ABSOLUTE(frameset->cols[n].length)) {
+	  frameset->col_total_absolute += LENGTH_GET_ABSOLUTE(frameset->cols[n].length);
+	}
+      }
+
+      /* normalize values */
+      if((total_percentage == 0) && (total_relative == 0)) {
+	for(n = 0; n < frameset->ncols; n++)
+	  if(LENGTH_IS_ABSOLUTE(frameset->cols[n].length))
+	    frameset->cols[n].length =
+	      LENGTH_CREATE_PERCENTAGE((gfloat) LENGTH_GET_ABSOLUTE(frameset->cols[n].length) /
+				       frameset->col_total_absolute);
+	frameset->col_total_absolute = 0;
+	col_per_percent = 1;
+	col_per_relative = 0;
+      } else if(total_percentage < 1) {
+	col_per_relative = (gfloat) (1 - total_percentage) / total_relative;
+	col_per_percent = (gfloat) (total_relative > 0 ? 1 : 1.0 / total_percentage);
+      } else {
+	col_per_percent = (gfloat) (1 / total_percentage);
+	col_per_relative = 0;
+      }
+    }
+
+  /* now, calculate actual width/height distribution */
+  if(frameset->nrows > 1) {
+     for(n_rows = 0; n_rows < frameset->nrows; n_rows++) {
+       if(LENGTH_IS_RELATIVE(frameset->rows[n_rows].length))
+	 frameset->rows[n_rows].length = 
+	   LENGTH_CREATE_PERCENTAGE((LENGTH_GET_RELATIVE(frameset->rows[n_rows].length) ?
+				     (LENGTH_GET_RELATIVE(frameset->rows[n_rows].length) * row_per_relative) :
+				     row_per_relative));
+       else if(LENGTH_IS_PERCENTAGE(frameset->rows[n_rows].length))
+	 frameset->rows[n_rows].length =
+	   LENGTH_CREATE_PERCENTAGE((LENGTH_GET_PERCENTAGE(frameset->rows[n_rows].length) * row_per_percent));
+     }
+  } else
+    frameset->rows[0].length = LENGTH_CREATE_PERCENTAGE(1);
+
+  if(frameset->ncols > 1) {
+     for(n_cols = 0; n_cols < frameset->ncols; n_cols++) {
+       if(LENGTH_IS_RELATIVE(frameset->cols[n_cols].length))
+	 frameset->cols[n_cols].length = 
+	   LENGTH_CREATE_PERCENTAGE((LENGTH_GET_RELATIVE(frameset->cols[n_cols].length) ?
+				     (LENGTH_GET_RELATIVE(frameset->cols[n_cols].length) * col_per_relative) :
+				     col_per_relative));
+       else if(LENGTH_IS_PERCENTAGE(frameset->cols[n_cols].length))
+	 frameset->cols[n_cols].length =
+	   LENGTH_CREATE_PERCENTAGE(LENGTH_GET_PERCENTAGE(frameset->cols[n_cols].length) * col_per_percent);
+     }
+  } else
+    frameset->cols[0].length = LENGTH_CREATE_PERCENTAGE(1);
+
+  g_slist_free(rows);
+  g_slist_free(cols);
+}
+
+/* standard GTK function */
+GtkWidget*
+gtk_frameset_new (gchar	*row_multilengths,
+		  gchar	*col_multilengths)
+{
+  GtkFrameset *frameset;
+
+  if (!row_multilengths)
+    row_multilengths = "*";
+  if (!col_multilengths)
+    col_multilengths = "*";
+  
+  frameset = gtk_type_new (gtk_frameset_get_type ());
+
+  DEBUG_MSG(DEBUG_EVENT, "/*\n");
+
+  gtk_frameset_resize(frameset, row_multilengths, col_multilengths);
+
+  DEBUG_MSG(DEBUG_EVENT, " * NEW frameset: %d\n", (gint) frameset);
+  DEBUG_MSG(DEBUG_EVENT, " *               %d rows, %d cols\n", frameset->nrows, frameset->ncols);
+  DEBUG_MSG(DEBUG_EVENT, " */\n");
+  
+  return GTK_WIDGET (frameset);
+}
+
+/* standard GTK function */
+void
+gtk_frameset_attach (GtkFrameset	  *frameset,
+		     GtkWidget	          *child,
+		     guint		   row_attach,
+		     guint		   col_attach,
+		     guint                 xpadding,
+		     guint                 ypadding,
+		     gboolean              border,
+		     gboolean              noresize)
+{
+  GtkFramesetChild *frameset_child;
+  
+  g_return_if_fail (frameset != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET (frameset));
+  g_return_if_fail (child != NULL);
+  g_return_if_fail (GTK_IS_WIDGET (child));
+  g_return_if_fail (child->parent == NULL);
+  g_return_if_fail (col_attach < frameset->ncols);
+  g_return_if_fail (row_attach < frameset->nrows);
+
+  DEBUG_MSG(DEBUG_EVENT, "gtk_frameset_attach(%d, %d, %d, %d, %d, %d, %d, %d)\n",
+	    (gint) frameset, (gint) child, row_attach, col_attach,
+	    xpadding, ypadding, border, noresize);
+  
+  frameset_child = g_new (GtkFramesetChild, 1);
+  frameset_child->widget = child;
+  frameset_child->row_attach = row_attach;
+  frameset_child->col_attach = col_attach;
+  frameset_child->xpadding = xpadding;
+  frameset_child->ypadding = ypadding;
+  frameset_child->border = border;
+  frameset_child->noresize = noresize;
+  
+  frameset->children = g_list_prepend (frameset->children, frameset_child);
+  
+  gtk_widget_set_parent (child, GTK_WIDGET (frameset));
+  
+  if (GTK_WIDGET_REALIZED (child->parent))
+    gtk_widget_realize (child);
+
+  if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child))
+    {
+      if (GTK_WIDGET_MAPPED (child->parent))
+	gtk_widget_map (child);
+      
+      gtk_widget_queue_resize (child);
+    }
+}
+
+/*
+ * Standard GTK function
+ *
+ * add a widget (frame) to the frameset. The widget
+ * will be put in the current_frame (which will
+ * be increased in the process)
+ */
+static void
+gtk_frameset_add (GtkContainer *frameset,
+		  GtkWidget    *widget)
+{
+  guint row, col;
+
+  /* is there space left in the frameset for this frame? */
+  if (GTK_FRAMESET(frameset)->current_frame >= 
+      (GTK_FRAMESET(frameset)->nrows * GTK_FRAMESET(frameset)->ncols)) {
+    DEBUG_MSG(DEBUG_EVENT, "No space in frameset for frame\n");
+    return;
+  }
+  
+  /* calculate row and column for frame */
+  col = GTK_FRAMESET(frameset)->current_frame % GTK_FRAMESET(frameset)->ncols;
+  row = GTK_FRAMESET(frameset)->current_frame / GTK_FRAMESET(frameset)->ncols;
+  
+  DEBUG_MSG(DEBUG_EVENT, "NEW FRAME in frameset %d\n", (gint) frameset);
+  DEBUG_MSG(DEBUG_EVENT, "      ROW %d COL %d\n", row, col);
+  
+  gtk_frameset_attach(GTK_FRAMESET(frameset), /* the frameset widget */
+		      widget,                 /* the child widget */
+		      row,                    /* row to attach to */
+		      col,                    /* column to attach to */
+		      0,                      /* marginwidth */
+		      0,                      /* marginheight */
+		      FALSE,                  /* border */
+		      FALSE);                 /* noresize */
+
+  (GTK_FRAMESET(frameset)->current_frame)++;
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_remove (GtkContainer *container,
+		     GtkWidget    *widget)
+{
+  GtkFrameset *frameset;
+  GtkFramesetChild *child;
+  GList *children;
+  
+  g_return_if_fail (container != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET (container));
+  g_return_if_fail (widget != NULL);
+  
+  frameset = GTK_FRAMESET (container);
+  children = frameset->children;
+  
+  while (children)
+    {
+      child = children->data;
+      children = children->next;
+      
+      if (child->widget == widget)
+	{
+	  gboolean was_visible = GTK_WIDGET_VISIBLE (widget);
+	  
+	  gtk_widget_unparent (widget);
+	  
+	  frameset->children = g_list_remove (frameset->children, child);
+	  g_free (child);
+	  
+	  if (was_visible && GTK_WIDGET_VISIBLE (container))
+	    gtk_widget_queue_resize (GTK_WIDGET (container));
+	  break;
+	}
+    }
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_forall (GtkContainer *container,
+		  gboolean	include_internals,
+		  GtkCallback	callback,
+		  gpointer	callback_data)
+{
+  GtkFrameset *frameset;
+  GtkFramesetChild *child;
+  GList *children;
+  
+  g_return_if_fail (container != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET (container));
+  g_return_if_fail (callback != NULL);
+  
+  frameset = GTK_FRAMESET (container);
+  children = frameset->children;
+  
+  while (children)
+    {
+      child = children->data;
+      children = children->next;
+      
+      (* callback) (child->widget, callback_data);
+    }
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_finalize (GtkObject *object)
+{
+  GtkFrameset *frameset;
+  
+  g_return_if_fail (object != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET (object));
+  
+  frameset = GTK_FRAMESET (object);
+  
+  g_free (frameset->rows);
+  g_free (frameset->cols);
+  
+  (* GTK_OBJECT_CLASS (parent_class)->finalize) (object);
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_map (GtkWidget *widget)
+{
+  GtkFrameset *frameset;
+  GtkFramesetChild *child;
+  GList *children;
+  
+  g_return_if_fail (widget != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET (widget));
+  
+  frameset = GTK_FRAMESET (widget);
+  GTK_WIDGET_SET_FLAGS (frameset, GTK_MAPPED);
+  
+  children = frameset->children;
+  while (children)
+    {
+      child = children->data;
+      children = children->next;
+      
+      if (GTK_WIDGET_VISIBLE (child->widget) &&
+	  !GTK_WIDGET_MAPPED (child->widget))
+	gtk_widget_map (child->widget);
+    }
+
+  gdk_window_show(widget->window);
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_unmap (GtkWidget *widget)
+{
+  GtkFrameset *frameset;
+  GtkFramesetChild *child;
+  GList *children;
+  
+  g_return_if_fail (widget != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET (widget));
+  
+  frameset = GTK_FRAMESET (widget);
+  GTK_WIDGET_UNSET_FLAGS (frameset, GTK_MAPPED);
+  
+  children = frameset->children;
+  while (children)
+    {
+      child = children->data;
+      children = children->next;
+      
+      if (GTK_WIDGET_VISIBLE (child->widget) &&
+	  GTK_WIDGET_MAPPED (child->widget))
+	gtk_widget_unmap (child->widget);
+    }
+
+  gdk_window_hide(widget->window);
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_draw (GtkWidget    *widget,
+		   GdkRectangle *area)
+{
+  GtkFrameset *frameset;
+  GtkFramesetChild *child;
+  GList *children;
+  GdkRectangle child_area;
+  
+  g_return_if_fail (widget != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET (widget));
+  
+  if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_MAPPED (widget))
+    {
+      frameset = GTK_FRAMESET (widget);
+      children = frameset->children;
+      while (children)
+	{
+	  child = children->data;
+	  children = children->next;
+	  
+	  if (gtk_widget_intersect (child->widget, area, &child_area))
+	    gtk_widget_draw (child->widget, &child_area);
+	}
+    }
+}
+
+/* standard GTK function */
+static gint
+gtk_frameset_expose (GtkWidget	    *widget,
+		     GdkEventExpose *event)
+{
+  GtkFrameset *frameset;
+  GtkFramesetChild *child;
+  GList *children;
+  GdkEventExpose child_event;
+  
+  g_return_val_if_fail (widget != NULL, FALSE);
+  g_return_val_if_fail (GTK_IS_FRAMESET (widget), FALSE);
+  
+  if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_MAPPED (widget))
+    {
+      frameset = GTK_FRAMESET (widget);
+      
+      child_event = *event;
+      
+      children = frameset->children;
+      while (children)
+	{
+	  child = children->data;
+	  children = children->next;
+	  
+	  if (GTK_WIDGET_NO_WINDOW (child->widget) &&
+	      gtk_widget_intersect (child->widget, &event->area, &child_event.area))
+	    gtk_widget_event (child->widget, (GdkEvent*) &child_event);
+	}
+    }
+  
+  return FALSE;
+}
+
+/* standard GTK function */
+static void
+gtk_frameset_size_allocate (GtkWidget     *widget,
+			    GtkAllocation *allocation)
+{
+  GtkFrameset *frameset;
+  
+  g_return_if_fail (widget != NULL);
+  g_return_if_fail (GTK_IS_FRAMESET (widget));
+  g_return_if_fail (allocation != NULL);
+
+  DEBUG_MSG(DEBUG_EVENT, "gtk_frameset_size_allocate(%d, {w:%d, h:%d, x:%d, y:%d})\n",
+	    (gint) widget, allocation->width, allocation->height, allocation->x, allocation->y);
+  
+  widget->allocation = *allocation;
+  frameset = GTK_FRAMESET (widget);
+
+  if (GTK_WIDGET_REALIZED (widget))
+    gdk_window_move_resize (widget->window,
+			    allocation->x, allocation->y,
+			    allocation->width, allocation->height);
+  
+  gtk_frameset_size_allocate_init (frameset);
+  gtk_frameset_size_allocate_pass1 (frameset);
+}
+
+/*
+ * Calculate child dimensions relative to those of frameset,
+ * based on row and column length specifications
+ */
+void
+gtk_frameset_size_allocate_init(GtkFrameset *frameset)
+{
+  gint n_rows, n_cols;
+  gfloat per_percent;
+  guint real_width, real_height;
+  guint row_borderspace, col_borderspace;
+  guint location;
+
+  /* calculate total amount of border space used */
+  row_borderspace = 0;
+  col_borderspace = 0;
+
+  for(n_rows = 0; n_rows < frameset->nrows - 1; n_rows++)
+    row_borderspace += (frameset->rows[n_rows].border ? GTKFRAMESET_DEFAULT_BORDER_SIZE : 0);
+  for(n_cols = 0; n_cols < frameset->ncols - 1; n_cols++)
+    col_borderspace += (frameset->cols[n_cols].border ? GTKFRAMESET_DEFAULT_BORDER_SIZE : 0);
+
+  real_width =
+    (col_borderspace < GTK_WIDGET(frameset)->allocation.width ?
+     GTK_WIDGET(frameset)->allocation.width - col_borderspace : 0);
+  real_height =
+    (row_borderspace < GTK_WIDGET(frameset)->allocation.height ?
+     GTK_WIDGET(frameset)->allocation.height - row_borderspace : 0);
+
+  location = 0;
+  if(frameset->nrows > 1) {
+    /* calculate number of pixels to dole out per percent */
+    per_percent = (gfloat) (real_height > frameset->row_total_absolute ?
+			    ((real_height - frameset->row_total_absolute) / 100.0) : 0);
+    for(n_rows = 0; n_rows < frameset->nrows; n_rows++) {
+      if(LENGTH_IS_PERCENTAGE(frameset->rows[n_rows].length))
+	frameset->rows[n_rows].allocation =
+	  (gint) (per_percent * 100 * LENGTH_GET_PERCENTAGE(frameset->rows[n_rows].length));
+      else if(LENGTH_IS_ABSOLUTE(frameset->rows[n_rows].length))
+	frameset->rows[n_rows].allocation =
+	  (gint) LENGTH_GET_ABSOLUTE(frameset->rows[n_rows].length);
+      
+      frameset->rows[n_rows].location = location;
+      location += frameset->rows[n_rows].allocation +
+	(frameset->rows[n_rows].border ? GTKFRAMESET_DEFAULT_BORDER_SIZE : 0);
+    }
+  } else {
+    frameset->rows[0].allocation = real_height;
+    frameset->rows[0].location = 0;
+  }
+  
+  location = 0;
+  if(frameset->ncols > 1) {
+    /* calculate number of pixels to dole out per percent */
+    per_percent = (gfloat) (real_width > frameset->col_total_absolute ?
+			    ((real_width - frameset->col_total_absolute) / 100.0) : 0);
+    for(n_cols = 0; n_cols < frameset->ncols; n_cols++) {
+      if(LENGTH_IS_PERCENTAGE(frameset->cols[n_cols].length))
+	frameset->cols[n_cols].allocation =
+	  (gint) (per_percent * 100 * LENGTH_GET_PERCENTAGE(frameset->cols[n_cols].length));
+      else if(LENGTH_IS_ABSOLUTE(frameset->cols[n_cols].length))
+	frameset->cols[n_cols].allocation =
+	  (gint) LENGTH_GET_ABSOLUTE(frameset->cols[n_cols].length);
+      
+      frameset->cols[n_cols].location = location;
+      location += frameset->cols[n_cols].allocation +
+	(frameset->cols[n_cols].border ? GTKFRAMESET_DEFAULT_BORDER_SIZE : 0);
+    }
+  } else {
+    frameset->cols[0].allocation = real_width;
+    frameset->cols[0].location = 0;
+  }
+}
+
+/*
+ * allocate children according to their placement in frameset
+ */
+static void
+gtk_frameset_size_allocate_pass1(GtkFrameset *frameset)
+{
+  GtkFramesetChild *child;
+  GList *children;
+  GtkAllocation *alloc;
+
+  alloc = g_new0(GtkAllocation, 1);
+
+  children = frameset->children;
+  while(children)
+    {
+      child = children->data;
+      children = children->next;
+      
+      if(GTK_WIDGET_VISIBLE(child->widget)) {
+	alloc->width = (frameset->cols[child->col_attach].allocation < (2 * child->xpadding) ?
+			0 : frameset->cols[child->col_attach].allocation - (2 * child->xpadding));
+	
+	alloc->height = (frameset->rows[child->row_attach].allocation < (2 * child->ypadding) ?
+			 0 : frameset->rows[child->row_attach].allocation - (2 * child->ypadding));
+	alloc->x = frameset->cols[child->col_attach].location + child->xpadding;
+	alloc->y = frameset->rows[child->row_attach].location + child->ypadding;
+	gtk_widget_size_allocate(GTK_WIDGET(child->widget), alloc);
+
+	DEBUG_MSG(DEBUG_ALLOC, "widget %d (row %d, col %d) allocated (w:%d, h:%d, x:%d, y:%d)\n",
+		  (gint) child->widget, child->row_attach, child->col_attach,
+		  alloc->width, alloc->height,
+		  frameset->cols[child->col_attach].location,
+		  frameset->rows[child->row_attach].location);
+      }
+    }
+
+  g_free(alloc);
+}
+
+/*
+ * Parse a comma-separated list of %MultiLengths, and returns a GSList
+ * of lenghts. The caller has to free the GSList.
+ */
+static GSList*
+gtk_frameset_get_multi_length (const gchar *attr)
+{
+  GSList *list;
+  gdouble value;
+  gchar *end, *locale;
+  Length length;
+
+  g_return_val_if_fail(attr != NULL, NULL);
+
+  /* Set 'C' locale to avoid parsing problems with float numbers */
+  locale = g_strdup (setlocale (LC_NUMERIC, NULL));
+  setlocale (LC_NUMERIC, "C");
+
+  list = NULL;
+
+  while(TRUE) {
+    value = g_strtod (attr, &end);
+    switch (*end) {
+    case '%':
+      length = LENGTH_CREATE_PERCENTAGE (value / 100);
+      break;
+      
+    case '*':
+      length = LENGTH_CREATE_RELATIVE (value);
+      break;
+      
+    default:
+      length = LENGTH_CREATE_ABSOLUTE ((gint) value);
+      break;
+    }
+
+    list = g_slist_append(list, GINT_TO_POINTER(length));
+
+    /* there MUST be a comma between values */
+    if(!(end = strchr(end, ',')))
+      break;
+    /* valid %MultiLength characters: 0123456789%* */
+    if(!(attr = strpbrk(end, "0123456789%*")))
+      break;
+  }
+
+  setlocale (LC_NUMERIC, locale);
+  g_free (locale);
+
+  return list;
+}
+
+/*
+ * given the current location and allocation values, calculate
+ * row/col length values. The results are used in size_allocate
+ */
+static void
+gtk_frameset_calculate_lengths(GtkFrameset *frameset)
+{
+  gint n;
+  guint total_percentage;
+
+  total_percentage = 0;
+  frameset->col_total_absolute = 0;
+  for(n = 0; n < frameset->ncols; n++)
+    if(LENGTH_IS_ABSOLUTE(frameset->cols[n].length)) {
+      frameset->cols[n].length = LENGTH_CREATE_ABSOLUTE(frameset->cols[n].allocation);
+      frameset->col_total_absolute += frameset->cols[n].allocation;
+    } else
+      total_percentage += frameset->cols[n].allocation;
+
+  for(n = 0; n < frameset->ncols; n++) {
+    if(!(LENGTH_IS_ABSOLUTE(frameset->cols[n].length)))
+      frameset->cols[n].length =
+	LENGTH_CREATE_PERCENTAGE(((gfloat) frameset->cols[n].allocation) / total_percentage);
+  }
+
+  total_percentage = 0;
+  frameset->row_total_absolute = 0;
+  for(n = 0; n < frameset->nrows; n++)
+    if(LENGTH_IS_ABSOLUTE(frameset->rows[n].length)) {
+      frameset->rows[n].length = LENGTH_CREATE_ABSOLUTE(frameset->rows[n].allocation);
+      frameset->row_total_absolute += frameset->rows[n].allocation;
+    } else
+      total_percentage += frameset->rows[n].allocation;
+
+  for(n = 0; n < frameset->nrows; n++) {
+    if(!(LENGTH_IS_ABSOLUTE(frameset->rows[n].length)))
+      frameset->rows[n].length =
+	LENGTH_CREATE_PERCENTAGE(((gfloat) frameset->rows[n].allocation) / total_percentage);
+  }
+}
+
+/*
+ * set the resize_row and resize_col attributes and set resize cursor (if any)
+ */
+static gint
+gtk_frameset_set_resize_rowcol(GtkWidget *widget, gint x, gint y)
+{
+  GtkFrameset *frameset = GTK_FRAMESET(widget);
+  guint n;
+
+  g_return_val_if_fail (widget != NULL,FALSE);
+  g_return_val_if_fail (GTK_IS_FRAMESET (widget),FALSE);
+
+  frameset->resize_row = RESIZE_NONE;
+  frameset->resize_col = RESIZE_NONE;
+
+  for(n=1; n < frameset->ncols; n++) {
+    if(frameset->cols[n - 1].allocation + frameset->cols[n - 1].location - GTKFRAMESET_DEFAULT_BORDER_SIZE <= x &&
+       frameset->cols[n].location + GTKFRAMESET_DEFAULT_BORDER_SIZE >= x &&
+       !frameset->cols[n].noresize) {
+      frameset->resize_col = n - 1;
+      break;
+    }
+  }
+
+  for(n=1; n < frameset->nrows; n++) {
+    if(frameset->rows[n - 1].allocation + frameset->rows[n - 1].location - GTKFRAMESET_DEFAULT_BORDER_SIZE <= y &&
+       frameset->rows[n].location + GTKFRAMESET_DEFAULT_BORDER_SIZE >= y &&
+       !frameset->rows[n].noresize) {
+      frameset->resize_row = n - 1;
+      break;
+    }
+  }
+
+  if((frameset->resize_row != RESIZE_NONE) && (frameset->resize_col != RESIZE_NONE))
+    gdk_window_set_cursor(widget->window, frameset->cursor_rowcol);
+  else if(frameset->resize_row != RESIZE_NONE)
+    gdk_window_set_cursor(widget->window, frameset->cursor_row);
+  else if(frameset->resize_col != RESIZE_NONE)
+    gdk_window_set_cursor(widget->window, frameset->cursor_col);
+  else
+    gdk_window_set_cursor(widget->window, NULL);
+
+  return TRUE;
+}
+
+/*
+ * standard GTK function
+ *
+ * enter drag mode on button_1_press over frame border
+ */
+static gint
+gtk_frameset_button_press (GtkWidget *widget, GdkEventButton *event)
+{
+  GtkFrameset *frameset = GTK_FRAMESET(widget);
+
+  g_return_val_if_fail (widget != NULL,FALSE);
+  g_return_val_if_fail (GTK_IS_FRAMESET (widget),FALSE);
+
+  if(!frameset->in_drag &&
+     (event->button == 1) &&
+     (frameset->resize_row != RESIZE_NONE || frameset->resize_col != RESIZE_NONE))
+    {
+      frameset->in_drag = TRUE;
+      gdk_pointer_grab (widget->window, FALSE,
+			GDK_POINTER_MOTION_HINT_MASK 
+			| GDK_BUTTON1_MOTION_MASK 
+			| GDK_BUTTON_RELEASE_MASK,
+			NULL, NULL, event->time);
+    }
+  
+  return TRUE;
+}
+
+/*
+ * standard GTK function
+ */
+static gint
+gtk_frameset_button_release (GtkWidget *widget, GdkEventButton *event)
+{
+  GtkFrameset *frameset = GTK_FRAMESET(widget);
+
+  g_return_val_if_fail (widget != NULL,FALSE);
+  g_return_val_if_fail (GTK_IS_FRAMESET (widget),FALSE);
+
+  if(frameset->in_drag && (event->button == 1))
+    {
+      frameset->in_drag = FALSE;
+      gdk_pointer_ungrab (event->time);
+      gtk_widget_queue_resize(GTK_WIDGET(frameset));
+    }
+
+  return TRUE;
+}
+
+/*
+ * standard GTK function
+ *
+ * determine row/col to resize (from x, y and noresize attribute),
+ * set appropriate cursor (row resize, col resize or both)
+ */
+static gint
+gtk_frameset_enter (GtkWidget *widget, GdkEventCrossing *event)
+{
+  g_return_val_if_fail (widget != NULL,FALSE);
+  g_return_val_if_fail (GTK_IS_FRAMESET (widget),FALSE);
+
+  return gtk_frameset_set_resize_rowcol(widget, event->x, event->y);
+}
+
+/*
+ * standard GTK function
+ *
+ * unset resize cursor and resize_row/resize_col
+ */
+static gint
+gtk_frameset_leave (GtkWidget *widget, GdkEventCrossing *event)
+{
+  GtkFrameset *frameset = GTK_FRAMESET(widget);
+
+  g_return_val_if_fail (widget != NULL,FALSE);
+  g_return_val_if_fail (GTK_IS_FRAMESET (widget),FALSE);
+
+  frameset->resize_row = RESIZE_NONE;
+  frameset->resize_col = RESIZE_NONE;
+  gdk_window_set_cursor(widget->window, NULL);
+
+  return TRUE;
+}
+
+/*
+ * standard GTK function
+ *
+ * resize row and/or column when in_drag is true
+ *  otherwise
+ * if resize_row or resize_col is set
+ *  set resize_row/resize_col and cursor
+ *
+ * This way, motion events without prior enter events will not set the
+ * cursor
+ */
+static gint
+gtk_frameset_motion (GtkWidget *widget, GdkEventMotion *event)
+{
+  GtkFrameset *frameset = GTK_FRAMESET(widget);
+  guint x, y;
+  gint diff;
+  gboolean return_val;
+
+  g_return_val_if_fail (widget != NULL, FALSE);
+  g_return_val_if_fail (GTK_IS_FRAMESET (widget), FALSE);
+
+  if (event->is_hint)
+    gtk_widget_get_pointer(widget, &x, &y);
+  else {
+    x = event->x;
+    y = event->y;
+  }
+  
+  if (frameset->in_drag)
+    {
+      if(frameset->resize_row >= 0) {
+	diff = (y - frameset->rows[frameset->resize_row].location) -
+	  frameset->rows[frameset->resize_row].allocation;
+	if(frameset->rows[frameset->resize_row].allocation + diff > 0 &&
+	   frameset->rows[frameset->resize_row + 1].allocation - diff > 0) {
+	  frameset->rows[frameset->resize_row].allocation += diff;
+	  frameset->rows[frameset->resize_row + 1].location += diff;
+	  frameset->rows[frameset->resize_row + 1].allocation -= diff;
+	}
+      }
+
+      if(frameset->resize_col >= 0) {
+	diff = (x - frameset->cols[frameset->resize_col].location) -
+	  frameset->cols[frameset->resize_col].allocation;
+	if(frameset->cols[frameset->resize_col].allocation + diff > 0 &&
+	   frameset->cols[frameset->resize_col + 1].allocation - diff > 0) {
+	  frameset->cols[frameset->resize_col].allocation += diff;
+	  frameset->cols[frameset->resize_col + 1].location += diff;
+	  frameset->cols[frameset->resize_col + 1].allocation -= diff;
+	}
+      }
+
+      gtk_frameset_calculate_lengths(frameset);
+      gtk_widget_queue_resize(GTK_WIDGET(frameset));
+      return_val = TRUE;
+    } else
+      /* only adjust resize_row/resize_col if either of these is already set,
+       * this way the cursor will not be changed by motion events without prior
+       * enter event */
+      if(frameset->resize_row != RESIZE_NONE ||
+	 frameset->resize_col != RESIZE_NONE)
+	return_val = gtk_frameset_set_resize_rowcol(widget, x, y);
+      else
+	return_val = TRUE;
+
+  return return_val;
+}
+
diff -pruN dillo-0.8.6/src/gtkframeset.h dillo-0.8.6-i18n-misc-20060709/src/gtkframeset.h
--- dillo-0.8.6/src/gtkframeset.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/gtkframeset.h	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,133 @@
+/*
+ * File: gtkframeset.h
+ * Copyright (C) 2003 Frank de Lange <frank@unternet.org>
+ *
+ *   a frameset widget for GTK - The GIMP Toolkit
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_FRAMESET_H__
+#define __GTK_FRAMESET_H__
+
+#include <gdk/gdk.h>
+#include <gtk/gtkcontainer.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#define GTK_FRAMESET(obj)	     (GTK_CHECK_CAST ((obj), GTK_TYPE_FRAMESET, GtkFrameset))
+#define GTK_TYPE_FRAMESET	     (gtk_frameset_get_type ())
+#define GTK_FRAMESET_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_FRAMESET, GtkFramesetClass))
+#define GTK_IS_FRAMESET(obj)	     (GTK_CHECK_TYPE ((obj), GTK_TYPE_FRAMESET))
+#define GTK_IS_FRAMESET_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FRAMESET))
+
+
+typedef struct _GtkFrameset	     GtkFrameset;
+typedef struct _GtkFramesetClass     GtkFramesetClass;
+typedef struct _GtkFramesetChild     GtkFramesetChild;
+typedef struct _GtkFramesetRowCol    GtkFramesetRowCol;
+typedef gint32 Length;
+
+/* (adapted from dw_style.h) Lengths */
+#define LENGTH_CREATE_ABSOLUTE(n)     (((n) << 2) | 1)
+#define LENGTH_CREATE_PERCENTAGE(n)   ((LENGTH_FLOAT_TO_REAL (n) << 3) | 2)
+#define LENGTH_CREATE_RELATIVE(n)     ((LENGTH_FLOAT_TO_REAL (n) << 3) | 6)
+#define LENGTH_UNDEF_LENGTH           0
+
+#define LENGTH_IS_ABSOLUTE(l)         ((l) & 1)
+#define LENGTH_IS_PERCENTAGE(l)       (((l) & 7) == 2)
+#define LENGTH_IS_RELATIVE(l)         (((l) & 7) == 6)
+
+#define LENGTH_GET_ABSOLUTE(l)        ((l) >> 2)
+#define LENGTH_GET_PERCENTAGE(l)      LENGTH_REAL_TO_FLOAT ((l) >> 3)
+#define LENGTH_GET_RELATIVE(l)        LENGTH_REAL_TO_FLOAT ((l) >> 3)
+
+#define LENGTH_REAL_TO_FLOAT(v)       ((gfloat)(v) / 0x10000)
+#define LENGTH_FLOAT_TO_REAL(v)       ((gint)((v) * 0x10000))
+
+/* used in frame resize */
+#define RESIZE_NONE                   -1
+
+/* default border size */
+#define GTKFRAMESET_DEFAULT_BORDER_SIZE 2
+
+struct _GtkFrameset
+{
+  GtkContainer container;
+  
+  GList *children;
+  GtkFramesetRowCol *rows;
+  GtkFramesetRowCol *cols;
+  guint row_total_absolute, col_total_absolute;
+  guint16 nrows;
+  guint16 ncols;
+  guint16 current_frame;
+  gboolean in_drag : 1;
+  gint16 resize_row, resize_col;
+  GdkCursor *cursor_rowcol, *cursor_row, *cursor_col;
+};
+
+struct _GtkFramesetClass
+{
+  GtkContainerClass parent_class;
+};
+
+struct _GtkFramesetChild
+{
+  GtkWidget *widget;
+  guint16 row_attach;
+  guint16 col_attach;
+  guint16 xpadding;
+  guint16 ypadding;
+  gboolean border : 1;
+  gboolean noresize : 1;
+};
+
+struct _GtkFramesetRowCol
+{
+  guint16 location;
+  guint16 allocation;
+  gboolean noresize : 1;
+  gboolean border: 1;
+  Length length;
+  guint16 spacing;
+};
+
+
+GtkType	   gtk_frameset_get_type        (void);
+GtkWidget* gtk_frameset_new	        (gchar	       *rows,
+					 gchar	       *columns);
+void       gtk_frameset_resize          (GtkFrameset   *frameset,
+					 gchar	       *rows,
+					 gchar	       *columns);
+void	   gtk_frameset_attach	        (GtkFrameset   *frameset,
+					 GtkWidget     *child,
+					 guint		row_attach,
+					 guint		col_attach,
+					 guint          xpadding,
+					 guint          ypadding,
+					 gboolean       border,
+					 gboolean       noresize);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __GTK_FRAMESET_H__ */
diff -pruN dillo-0.8.6/src/html.c dillo-0.8.6-i18n-misc-20060709/src/html.c
--- dillo-0.8.6/src/html.c	2006-04-13 00:50:35.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/html.c	2006-06-25 10:04:43.000000000 +0900
@@ -17,31 +17,41 @@
 
 /* Undefine if you want to unroll tables. For instance for PDAs */
 #define USE_TABLES
-
 /* Define to 1 to ignore white space immediately after an open tag,
  * and immediately before a close tag. */
 #define SGML_SPCDEL 0
 
+#ifndef ENABLE_META_REFRESH   
+  #define SEND_HTML_MSG /* meta-refresh */
+#endif
+//#define USE_OLD_PARSER
+
 
+#include <config.h>
 #include <ctype.h>      /* for isspace and tolower */
 #include <string.h>     /* for memcpy and memmove */
 #include <stdlib.h>
 #include <stdio.h>      /* for sprintf */
-#include <math.h>      /* for rint */
-#include <errno.h>
+#include <math.h>       /* for rint */
+#include <errno.h>      /* for iconv error codes */
+#include <time.h>       /* for nanosleep */
 
-#include <gtk/gtk.h>
+#include "i18n_gtk.h"
 
+#include "intl.h"
 #include "msg.h"
+#include "adblock.h"
 #include "list.h"
 #include "binaryconst.h"
 #include "colors.h"
 #include "dillo.h"
 #include "history.h"
 #include "nav.h"
+#include "doc.h"
 #include "menu.h"
 #include "commands.h"
 #include "dw.h"         /* for Dw_cursor_hand */
+#include "dw_gtk_scrolled_window.h" /* for a_Dw_gtk_scrolled_window_get_dw */
 
 #include "dw_gtk_viewport.h"
 #include "dw_gtk_scrolled_window.h"
@@ -56,11 +66,17 @@
 #include "dw_list_item.h"
 #include "dw_style.h"
 #include "interface.h"
-#include "progressbar.h"
 #include "prefs.h"
 #include "misc.h"
 #include "capi.h"
 #include "html.h"
+#include "i18n.h"
+
+#include "gtkframeset.h"
+
+#define DEBUG_EVENT 10
+#define DEBUG_SIZE  10
+#define DEBUG_ALLOC 10
 
 #define DEBUG_LEVEL 10
 #include "debug.h"
@@ -94,7 +110,7 @@ static gint Html_write_raw(DilloHtml *ht
 static void Html_write(DilloHtml *html, char *Buf, gint BufSize, gint Eof);
 static void Html_close(DilloHtml *html, gint ClientKey);
 static void Html_callback(int Op, CacheClient_t *Client);
-static DilloHtml *Html_new(BrowserWindow *bw, const DilloUrl *url);
+static DilloHtml *Html_new(DilloDoc *dd, const DilloUrl *url);
 static void Html_tag_open_input(DilloHtml *html, char *tag, gint tagsize);
 static void Html_add_input(DilloHtmlForm *form,
                            DilloHtmlInputType type,
@@ -107,6 +123,9 @@ static void Html_submit_form(GtkWidget *
                              gint click_x, gint click_y);
 static void Html_reset_form(GtkWidget *reset, DilloHtmlLB *html_lb);
 static gint Html_tag_index(char *tag);
+static void Html_translate(DilloTrans *trans, char *buf, gint bufsize);
+static DilloTrans *Html_translation_new(char *source, char *dest);
+static void Html_translation_free(DilloTrans *trans, gboolean keepbuf);
 
 /* exported function */
 DwWidget *a_Html_text(const char *Type, void *P, CA_Callback_t *Call,
@@ -117,9 +136,6 @@ DwWidget *a_Html_text(const char *Type, 
  * Local Data
  */
 
-/* The following array of font sizes has to be _strictly_ crescent */
-static const gint FontSizes[] = {8, 10, 12, 14, 18, 24};
-static const gint FontSizesNum = 6;
 static const gint FontSizesBase = 2;
 
 /* Parsing table structure */
@@ -141,9 +157,11 @@ static gint Html_get_line_number(DilloHt
    gint i, ofs, line;
    const char *p = html->Start_Buf;
 
+   ofs = (html->Buf_Size < html->CurrTagOfs)
+      ? html->Buf_Size : html->CurrTagOfs;
+
    g_return_val_if_fail(p != NULL, -1);
 
-   ofs = html->CurrTagOfs;
    line = html->OldTagLine;
    for (i = html->OldTagOfs; i < ofs; ++i)
       if (p[i] == '\n')
@@ -161,14 +179,14 @@ static void Html_msg(DilloHtml *html, co
    va_list argp;
    gchar buf[512];
 
-   g_snprintf(buf, 512, "HTML warning: line %d, ",
+   g_snprintf(buf, 512, _("HTML warning: line %d, "),
               Html_get_line_number(html));
    g_string_append(html->linkblock->page_bugs, buf);
    va_start(argp, format);
    g_vsnprintf(buf, 512, format, argp);
    va_end(argp);
    g_string_append(html->linkblock->page_bugs, buf);
-   a_Interface_bug_meter_update(html->bw,
+   a_Interface_bug_meter_update(html->dd->bw,
                                 ++html->linkblock->num_page_bugs);
 }
 
@@ -192,14 +210,14 @@ static DilloUrl *Html_url_new(DilloHtml 
       const char *suffix = (n_ic) > 1 ? "s" : "";
       n_ic_spc = URL_ILLEGAL_CHARS_SPC(url);
       if (n_ic == n_ic_spc) {
-         MSG_HTML("URL has %d illegal character%s [%d space%s]\n",
+         MSG_HTML(_("URL has %d illegal character%s [%d space%s]\n"),
                    n_ic, suffix, n_ic_spc, suffix);
       } else if (n_ic_spc == 0) {
-         MSG_HTML("URL has %d illegal character%s [%d in (00-1F or 7F)]\n",
+         MSG_HTML(_("URL has %d illegal character%s [%d in (00-1F or 7F)]\n"),
                    n_ic, suffix, n_ic);
       } else {
-         MSG_HTML("URL has %d illegal character%s "
-                  "[%d space%s and %d in (00-1F or 7F)]\n",
+         MSG_HTML(_("URL has %d illegal character%s "
+                  "[%d space%s and %d in (00-1F or 7F)]\n"),
                    n_ic, suffix, n_ic_spc, n_ic_spc ? "s" : "", n_ic-n_ic_spc);
       }
    }
@@ -213,7 +231,15 @@ DwWidget *a_Html_text(const char *Type, 
                       void **Data)
 {
    DilloWeb *web = P;
-   DilloHtml *html = Html_new(web->bw, web->url);
+   DilloHtml *html = Html_new(web->dd, web->url);
+
+   /* Actual, HTTP header charset is almost reliable in Japan
+    * at least... however, the HTML 4.01 SPEC recommends
+    * to giving top priority to this. */
+   if ((html->server_charset = strstr(Type, "charset="))
+         && html->server_charset + 8)
+      html->server_charset
+         = a_I18n_fix_charset(g_strdup(html->server_charset + 8));
 
    *Data = (void *) html;
    *Call = (CA_Callback_t) Html_callback;
@@ -224,11 +250,11 @@ DwWidget *a_Html_text(const char *Type, 
 /*
  * We'll make the linkblock first to get it out of the way.
  */
-static DilloHtmlLB *Html_lb_new(BrowserWindow *bw, const DilloUrl *url)
+static DilloHtmlLB *Html_lb_new(DilloDoc *dd, const DilloUrl *url)
 {
    DilloHtmlLB *html_lb = g_new(DilloHtmlLB, 1);
 
-   html_lb->bw = bw;
+   html_lb->dd = dd;
    html_lb->base_url = a_Url_dup(url);
    html_lb->num_forms_max = 1;
    html_lb->num_forms = 0;
@@ -242,6 +268,14 @@ static DilloHtmlLB *Html_lb_new(BrowserW
    html_lb->link_color = prefs.link_color;
    html_lb->visited_color = prefs.visited_color;
 
+   html_lb->charset = NULL;
+   html_lb->usingMetaCharset = FALSE;
+   html_lb->lang[0] = 0;
+
+#ifdef ENABLE_META_REFRESH   
+   html_lb->meta_refresh = NULL;
+#endif
+
    html_lb->num_page_bugs = 0;
    html_lb->page_bugs = g_string_new("");
 
@@ -258,12 +292,17 @@ static void Html_lb_free(void *lb)
    DilloHtmlLB *html_lb = lb;
 
    DEBUG_MSG(3, "Html_lb_free\n");
-
+#ifdef ENABLE_META_REFRESH
+   if (html_lb->meta_refresh) {
+      *html_lb->meta_refresh = 1;
+   }
+#endif
    a_Url_free(html_lb->base_url);
 
    for (i = 0; i < html_lb->num_forms; i++) {
       form = &html_lb->forms[i];
       a_Url_free(form->action);
+      g_free(form->charset);
       for (j = 0; j < form->num_inputs; j++) {
          g_free(form->inputs[j].name);
          g_free(form->inputs[j].init_str);
@@ -286,6 +325,8 @@ static void Html_lb_free(void *lb)
          a_Url_free(html_lb->links[i]);
    g_free(html_lb->links);
 
+   g_free(html_lb->charset);
+
    a_Dw_image_map_list_free(&html_lb->maps);
 
    g_string_free(html_lb->page_bugs, TRUE);
@@ -319,15 +360,19 @@ static void Html_handle_status(DwWidget 
 
    url = (link == -1) ? NULL : lb->links[link];
    if (url) {
+      gchar *url_str = NULL;
+      if(URL_STR_(url))
+         url_str = a_I18n_convert(lb->charset, DILLO_CHARSET,
+               URL_STR_(url), -1);
       Html_set_link_coordinates(lb, link, x, y);
-      a_Interface_msg(lb->bw, "%s",
-                         URL_ALT_(url) ? URL_ALT_(url) : URL_STR_(url));
+      a_Interface_msg(lb->dd->bw, "%s",
+		      URL_ALT_(url) ? URL_ALT_(url) : url_str);
+      g_free(url_str);
       a_Dw_widget_set_cursor (widget, Dw_cursor_hand);
-      lb->bw->status_is_link = 1;
-
+      lb->dd->bw->status_is_link = 1;
    } else {
-      if (lb->bw->status_is_link)
-         a_Interface_msg(lb->bw, "");
+      if (lb->dd->bw->status_is_link)
+         a_Interface_msg(lb->dd->bw, "");
       a_Dw_widget_set_cursor (widget, NULL);
    }
 }
@@ -343,26 +388,26 @@ static gboolean Html_link_menu(DwWidget 
 
    if (event->button == 3) {
       Html_set_link_coordinates(lb, link, x, y);
-      a_Menu_popup_set_url(lb->bw, lb->links[link]);
+      a_Menu_popup_set_url(lb->dd->bw, lb->links[link]);
 
       /* if we've got an image, prepare the image popup */
       widget_at_cursor =
          a_Dw_gtk_scrolled_window_widget_at_viewport_point(
-            GTK_DW_SCROLLED_WINDOW (lb->bw->docwin), event->x, event->y);
+            GTK_DW_SCROLLED_WINDOW (lb->dd->docwin), event->x, event->y);
       if (widget_at_cursor && DW_IS_IMAGE (widget_at_cursor)) {
          DwImage *image = DW_IMAGE (widget_at_cursor);
          /* test image->url (it may have not started to arrive yet!) */
          if (image->url) {
             /* use the second URL for this popup */
-            gtk_object_set_data(GTK_OBJECT (lb->bw->menu_popup.over_image),
+            gtk_object_set_data(GTK_OBJECT (lb->dd->bw->menu_popup.over_image),
                                 "url2", GINT_TO_POINTER(2));
-            a_Menu_popup_set_url2(lb->bw, image->url);
+            a_Menu_popup_set_url2(lb->dd->bw, image->url);
             show_oi = TRUE;
          }
       }
-      a_Menu_popup_ol_show_oi(lb->bw, show_oi);
+      a_Menu_popup_ol_show_oi(lb->dd->bw, show_oi);
 
-      gtk_menu_popup(GTK_MENU(lb->bw->menu_popup.over_link), NULL, NULL,
+      gtk_menu_popup(GTK_MENU(lb->dd->bw->menu_popup.over_link), NULL, NULL,
                      NULL, NULL, event->button, event->time);
       return TRUE;
    }
@@ -375,21 +420,60 @@ static gboolean Html_link_menu(DwWidget 
  * Activate a link ("link_clicked" callback of the page)
  */
 static gboolean Html_link_clicked(DwWidget *widget, gint link, gint x, gint y,
-                                  GdkEventButton *event, DilloHtmlLB *lb)
+                              GdkEventButton *event, DilloHtmlLB *lb)
 {
+   DilloDoc *named_dd;
+   gchar *target;
+   gboolean return_val;
+
+   return_val = FALSE;
+
    Html_set_link_coordinates(lb, link, x, y);
-   if (event->button == 1)
-      a_Nav_push(lb->bw, lb->links[link]);
-   else if (event->button == 2) {
-      a_Nav_push_nw(lb->bw, lb->links[link]);
-   } else {
-      return FALSE;
+
+   switch (event->button) {
+   case 1:
+     if (event->state & GDK_SHIFT_MASK) {
+       /* shift-click: open in new window */
+       a_Menu_popup_set_url(lb->dd->bw, lb->links[link]);
+       a_Commands_open_link_nw_callback(NULL, lb->dd->bw);
+#ifndef DISABLE_TABS
+     } else if (event->state & GDK_CONTROL_MASK) {
+       /* control-click: open in new tab */
+       a_Menu_popup_set_url(lb->dd->bw, lb->links[link]);
+       a_Commands_open_link_nw_tab_callback(NULL, lb->dd->bw);
+#endif /* !DISABLE_TABS */
+     } else {
+       if((target = (gchar *) URL_TARGET_(lb->links[link])))
+	       /* targeted link or base target, open in either existing
+	        * named document or new document */
+          if ((named_dd = a_Doc_get_by_name(lb->dd, (gchar *) target)))
+             a_Nav_push(named_dd, lb->links[link]);
+          else {
+             a_Menu_popup_set_url(lb->dd->bw, lb->links[link]);
+             a_Commands_open_link_nw_callback(NULL, lb->dd->bw);
+          }
+       else
+          a_Nav_push(lb->dd, lb->links[link]);
+     }
+     return_val = TRUE;
+     break;
+   case 2:
+     a_Menu_popup_set_url(lb->dd->bw, lb->links[link]);
+#ifndef DISABLE_TABS
+     if(prefs.tab_instead_of_window)
+        a_Commands_open_link_nw_tab_callback(NULL, lb->dd->bw);
+     else
+#endif /* !DISABLE_TABS */
+       a_Commands_open_link_nw_callback(NULL, lb->dd->bw);
+     return_val = TRUE;
+     break;
+   default:
+     break;
    }
 
    if (DW_IS_PAGE (widget))
       a_Dw_page_change_link_color (DW_PAGE (widget), link, lb->visited_color);
-
-   return TRUE;
+   return return_val;
 }
 
 /*
@@ -397,14 +481,14 @@ static gboolean Html_link_clicked(DwWidg
  */
 static gboolean Html_image_menu(DwWidget *widget,
                                 gint32 x, gint32 y, GdkEventButton *event,
-                                BrowserWindow *bw)
+                                DilloDoc *dd)
 {
    DwImage *image = DW_IMAGE (widget);
    if (event->button == 3 && image->url) {
-      a_Menu_popup_set_url(bw, image->url);
-      a_Menu_popup_clear_url2(bw->menu_popup.over_image);
+      a_Menu_popup_set_url(dd->bw, image->url);
+      a_Menu_popup_clear_url2(dd->bw->menu_popup.over_image);
 
-      gtk_menu_popup(GTK_MENU(bw->menu_popup.over_image), NULL, NULL,
+      gtk_menu_popup(GTK_MENU(dd->bw->menu_popup.over_image), NULL, NULL,
                      NULL, NULL, event->button, event->time);
       return TRUE;
    }
@@ -416,19 +500,62 @@ static gboolean Html_image_menu(DwWidget
  * Popup the page menu ("button_press_event" callback of the viewport)
  */
 static int Html_page_menu(GtkWidget *viewport, GdkEventButton *event,
-                          BrowserWindow *bw)
+                          DilloDoc *dd)
 {
    gpointer bug_pix;
-
    if (event->button == 3) {
       /* set the working URL */
-      a_Menu_popup_set_url(bw, a_History_get_url(NAV_TOP(bw)));
+      a_Menu_popup_set_url(dd->bw, a_History_get_url(NAV_TOP(dd)));
+      if(dd->pagemarks_menu) {
+         /* this dd has a pagemarks menu, hook it up to the window's menu */
+         gtk_menu_item_set_submenu(GTK_MENU_ITEM(dd->bw->pagemarks_menuitem),
+               dd->pagemarks_menu);
+         gtk_widget_set_sensitive(dd->bw->pagemarks_menuitem, TRUE);
+      } else {
+         /* remove pagemarks submenu from window's menu */
+         gtk_widget_set_sensitive(dd->bw->pagemarks_menuitem, FALSE);
+      }
+      if(dd->parent) {
+         /* this is a frame or an iframe, create frame menu */
+         if(dd->bw->menu_popup.over_frame) {
+            gtk_widget_destroy(dd->bw->menu_popup.over_frame);
+            dd->bw->menu_popup.over_frame = NULL;
+         }
+         dd->bw->menu_popup.over_frame = a_Menu_popup_of_new(dd);
+         gtk_menu_item_set_submenu(GTK_MENU_ITEM(dd->bw->frame_menuitem),
+               dd->bw->menu_popup.over_frame);
+         gtk_widget_set_sensitive(dd->bw->frame_menuitem, TRUE);
+         if((dd->parent)->parent) {
+            /* this is a nested frame, show frameset menu 
+             * TODO: currently the frameset menu also shows for nested
+             * iframes. It does not do harm, but it is not that useful... */
+            gtk_menu_item_set_submenu(GTK_MENU_ITEM(dd->bw->frameset_menuitem),
+                  a_Menu_popup_ofs_new(dd));
+            gtk_widget_set_sensitive(dd->bw->frameset_menuitem, TRUE);
+            gtk_widget_show(dd->bw->frameset_menuitem);
+         } else {
+            gtk_widget_set_sensitive(dd->bw->frameset_menuitem, FALSE);
+            gtk_widget_hide(dd->bw->frameset_menuitem);
+         }	
+         gtk_widget_show(dd->bw->frame_menuitem);
+      } else {
+         /* this is an unparented document, disable/destroy frame menu */
+         if(dd->bw->menu_popup.over_frame) {
+            gtk_widget_destroy(dd->bw->menu_popup.over_frame);
+            dd->bw->menu_popup.over_frame = NULL;
+         }
+         gtk_widget_set_sensitive(dd->bw->frame_menuitem, FALSE);
+         gtk_widget_hide(dd->bw->frame_menuitem);
+         gtk_widget_set_sensitive(dd->bw->frameset_menuitem, FALSE);
+         gtk_widget_hide(dd->bw->frameset_menuitem);
+      }
+
       /* set "View page Bugs" sensitivity */
-      bug_pix = gtk_object_get_data(GTK_OBJECT(bw->status_bug_meter), "bug");
-      gtk_widget_set_sensitive(bw->viewbugs_menuitem,
+      bug_pix = gtk_object_get_data(GTK_OBJECT(dd->bw->status_bug_meter), "bug");
+      gtk_widget_set_sensitive(dd->bw->viewbugs_menuitem,
                                GTK_WIDGET_VISIBLE(GTK_WIDGET(bug_pix)));
-      gtk_menu_popup(GTK_MENU(bw->menu_popup.over_page), NULL, NULL,
-                     NULL, NULL, event->button, event->time);
+      gtk_menu_popup(GTK_MENU(dd->bw->menu_popup.over_page), NULL, NULL,
+            NULL, NULL, event->button, event->time);
       return TRUE;
    } else
       return FALSE;
@@ -458,6 +585,7 @@ static gint Html_set_new_link(DilloHtml 
 {
    gint nl;
 
+   a_Url_set_referer(*url, html->linkblock->base_url);
    nl = html->linkblock->num_links;
    a_List_add(html->linkblock->links, nl, html->linkblock->num_links_max);
    html->linkblock->links[nl] = (*url) ? *url : NULL;
@@ -480,7 +608,7 @@ static int Html_check_int(int n, int min
 static gint Html_form_new(DilloHtmlLB *html_lb,
                           DilloHtmlMethod method,
                           const DilloUrl *action,
-                          DilloHtmlEnc enc)
+                          gchar *encoding)
 {
    gint nf;
 
@@ -489,7 +617,7 @@ static gint Html_form_new(DilloHtmlLB *h
    nf = html_lb->num_forms;
    html_lb->forms[nf].method = method;
    html_lb->forms[nf].action = a_Url_dup(action);
-   html_lb->forms[nf].enc = enc;
+   html_lb->forms[nf].charset = g_strdup(encoding);
    html_lb->forms[nf].num_inputs = 0;
    html_lb->forms[nf].num_inputs_max = 4;
    html_lb->forms[nf].inputs = NULL;
@@ -514,7 +642,7 @@ static gint Html_form_new(DilloHtmlLB *h
       style_attrs = *old_style; \
       style_attrs.var = (val); \
       (html)->stack[(html)->stack_top].style = \
-         a_Dw_style_new (&style_attrs, (html)->bw->main_window->window); \
+         a_Dw_style_new (&style_attrs, (html)->dd->bw->main_window->window); \
       a_Dw_style_unref (old_style); \
    } while (FALSE)
 
@@ -539,6 +667,7 @@ static void Html_set_top_font(DilloHtml 
          (prefs.use_oblique ?
           DW_STYLE_FONT_STYLE_OBLIQUE : DW_STYLE_FONT_STYLE_ITALIC) :
          DW_STYLE_FONT_STYLE_NORMAL;
+   strncpy(font_attrs.lang, html->linkblock->lang, 6);
 
    HTML_SET_TOP_ATTR (html, font, a_Dw_style_font_new (&font_attrs));
 }
@@ -625,13 +754,13 @@ static void Html_add_indented_widget(Dil
    a_Dw_style_box_set_border_color
       (&style_attrs,
        a_Dw_style_shaded_color_new(style_attrs.color->color_val,
-                                   html->bw->main_window->window));
+                                   html->dd->bw->main_window->window));
    a_Dw_style_box_set_border_style(&style_attrs, DW_STYLE_BORDER_DASHED);
 #endif
 
    style_attrs.margin.left = left;
    style_attrs.margin.right = right;
-   style = a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+   style = a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
 
    a_Dw_page_add_parbreak (DW_PAGE (html->dw), space, style);
    a_Dw_page_add_widget (DW_PAGE (html->dw), page, style);
@@ -661,11 +790,11 @@ static gint Html_fontsize_to_level(gint 
 {
    gint i, level;
    gdouble normalized_size = fontsize / prefs.font_factor,
-           approximation   = FontSizes[FontSizesNum-1] + 1;
+           approximation   = prefs.font_sizes[D_FONT_SIZE_NUM-1] + 1;
 
-   for (i = level = 0; i < FontSizesNum; i++)
-      if (approximation >= fabs(normalized_size - FontSizes[i])) {
-         approximation = fabs(normalized_size - FontSizes[i]);
+   for (i = level = 0; i < D_FONT_SIZE_NUM; i++)
+      if (approximation >= fabs(normalized_size - prefs.font_sizes[i])) {
+         approximation = fabs(normalized_size - prefs.font_sizes[i]);
          level = i;
       } else {
          break;
@@ -680,9 +809,9 @@ static gint Html_fontsize_to_level(gint 
 static gint Html_level_to_fontsize(gint level)
 {
    level = MAX(0, level);
-   level = MIN(FontSizesNum - 1, level);
+   level = MIN(D_FONT_SIZE_NUM - 1, level);
 
-   return rint(FontSizes[level]*prefs.font_factor);
+   return rint(prefs.font_sizes[level]*prefs.font_factor);
 }
 
 /*
@@ -706,13 +835,14 @@ static void Html_set_dwpage(DilloHtml *h
    font.size = Html_level_to_fontsize(FontSizesBase);
    font.weight = 400;
    font.style = DW_STYLE_FONT_STYLE_NORMAL;
+   strncpy(font.lang, html->linkblock->lang, 6);
 
-   a_Dw_style_init_values (&style_attrs, html->bw->main_window->window);
+   a_Dw_style_init_values (&style_attrs, html->dd->bw->main_window->window);
    style_attrs.font = a_Dw_style_font_new (&font);
    style_attrs.color = a_Dw_style_color_new (prefs.text_color,
-                                             html->bw->main_window->window);
+                                             html->dd->bw->main_window->window);
    html->stack[0].style = a_Dw_style_new (&style_attrs,
-                                          html->bw->main_window->window);
+                                          html->dd->bw->main_window->window);
 
    html->stack[0].table_cell_style = NULL;
 
@@ -720,21 +850,21 @@ static void Html_set_dwpage(DilloHtml *h
    Html_connect_signals(html, GTK_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));
+      GTK_OBJECT(GTK_BIN(html->dd->docwin)->child), "button_press_event",
+      GTK_SIGNAL_FUNC(Html_page_menu), (gpointer)html->dd, GTK_OBJECT (page));
 
    /* Connect the "bug meter" button-press to the linkblock */
    gtk_signal_connect_while_alive(
-      GTK_OBJECT (html->bw->status_bug_meter), "clicked",
+      GTK_OBJECT (html->dd->bw->status_bug_meter), "clicked",
       GTK_SIGNAL_FUNC (a_Commands_view_page_bugs_callback),
       (gpointer)html->linkblock, GTK_OBJECT (page));
    gtk_signal_connect_while_alive(
-      GTK_OBJECT (html->bw->status_bug_meter), "clicked1",
+      GTK_OBJECT (html->dd->bw->status_bug_meter), "clicked1",
       GTK_SIGNAL_FUNC (a_Commands_view_page_bugs_callback),
       (gpointer)html->linkblock, GTK_OBJECT (page));
    /* also connect with the "View page Bugs" menuitem */
    gtk_signal_connect_while_alive(
-      GTK_OBJECT (html->bw->viewbugs_menuitem), "activate",
+      GTK_OBJECT (html->dd->bw->viewbugs_menuitem), "activate",
       GTK_SIGNAL_FUNC (a_Commands_view_page_bugs_callback),
       (gpointer)html->linkblock, GTK_OBJECT (page));
 
@@ -747,7 +877,7 @@ static void Html_set_dwpage(DilloHtml *h
 /*
  * Create and initialize a new DilloHtml structure
  */
-static DilloHtml *Html_new(BrowserWindow *bw, const DilloUrl *url)
+static DilloHtml *Html_new(DilloDoc *dd, const DilloUrl *url)
 {
    DilloHtml *html;
 
@@ -755,6 +885,7 @@ static DilloHtml *Html_new(BrowserWindow
 
    html->Start_Buf = NULL;
    html->Start_Ofs = 0;
+   html->Buf_Size = 0;
    html->CurrTagOfs = 0;
    html->OldTagOfs = 0;
    html->OldTagLine = 1;
@@ -763,8 +894,8 @@ static DilloHtml *Html_new(BrowserWindow
    html->DocTypeVersion = 0.0f;
 
    html->dw = NULL;
-   html->bw = bw;
-   html->linkblock = Html_lb_new(bw, url);
+   html->dd = dd;
+   html->linkblock = Html_lb_new(dd, url);
 
    html->stack_max = 16;
    html->stack_top = 0;
@@ -774,6 +905,8 @@ static DilloHtml *Html_new(BrowserWindow
    html->stack[0].table_cell_style = NULL;
    html->stack[0].parse_mode = DILLO_HTML_PARSE_MODE_INIT;
    html->stack[0].table_mode = DILLO_HTML_TABLE_MODE_NONE;
+   html->stack[0].frame_mode = DILLO_HTML_FRAME_MODE_NONE;
+   html->stack[0].frameset = NULL;
    html->stack[0].cell_text_align_set = FALSE;
    html->stack[0].list_type = HTML_LIST_NONE; /* no <ul> or <ol> open */
    html->stack[0].list_number = 0;
@@ -806,6 +939,10 @@ static DilloHtml *Html_new(BrowserWindow
 
    html->attr_data = g_string_sized_new(1024);
 
+   html->trans = NULL; /* no conversion yet */
+   html->server_charset = NULL;
+   html->lang = NULL;
+
    Html_set_dwpage(html);
 
    return html;
@@ -823,11 +960,11 @@ static void Html_stash_init(DilloHtml *h
 
 /* Entities list from the HTML 4.01 DTD */
 typedef struct {
-   char *entity;
-   int isocode;
+   gchar *entity;
+   guint isocode;
 } Ent_t;
 
-#define NumEnt 252
+#define NumEnt 253
 static const Ent_t Entities[NumEnt] = {
    {"AElig",0306}, {"Aacute",0301}, {"Acirc",0302},  {"Agrave",0300},
    {"Alpha",01621},{"Aring",0305},  {"Atilde",0303}, {"Auml",0304},
@@ -846,7 +983,7 @@ static const Ent_t Entities[NumEnt] = {
    {"Yacute",0335},{"Yuml",0570},   {"Zeta",01626},  {"aacute",0341},
    {"acirc",0342}, {"acute",0264},  {"aelig",0346},  {"agrave",0340},
    {"alefsym",020465},{"alpha",01661},{"amp",38},    {"and",021047},
-   {"ang",021040}, {"aring",0345},  {"asymp",021110},{"atilde",0343},
+   {"ang",021040},{"apos",34},{"aring",0345},{"asymp",021110},{"atilde",0343},
    {"auml",0344},  {"bdquo",020036},{"beta",01662},  {"brvbar",0246},
    {"bull",020042},{"cap",021051},  {"ccedil",0347}, {"cedil",0270},
    {"cent",0242},  {"chi",01707},   {"circ",01306},  {"clubs",023143},
@@ -894,6 +1031,41 @@ static const Ent_t Entities[NumEnt] = {
    {"yuml",0377},  {"zeta",01666},  {"zwj",020015},  {"zwnj",020014}
 };
 
+/* A table for numbered entities. For Latin-1 text this is a 1-1 mapping.
+ * It is more complicated for other character encodings. */
+static char *NumberedEnts[256] = {
+   "?","\001","\002","\003","\004","\005","\006","\007",
+     "\010","\011","\012","\013","\014","\015","\016","\017",
+     "\020","\021","\022","\023","\024","\025","\026","\027",
+     "\030","\031","\032","\033","\034","\035","\036","\037",
+     "\040","!","\042","#","\044","\045","&","\047",
+     "(",")","*","+",",","-",".","/",
+     "0","1","2","3","4","5","6","7",
+     "8","9",":",";","<","=",">","?",
+     "@","A","B","C","D","E","F","G",
+     "H","I","J","K","L","M","N","O",
+     "P","Q","R","S","T","U","V","W",
+     "X","Y","Z","\133","\134","\135","^","_",
+     "\140","a","b","c","d","e","f","g",
+     "h","i","j","k","l","m","n","o",
+     "p","q","r","s","t","u","v","w",
+     "x","y","z","{","\174","}","~","\177",
+     "\200","\201","\202","\203","\204","\205","\206","\207",
+     "\210","\211","\212","\213","\214","\215","\216","\217",
+     "\220","\221","\222","\223","\224","\225","\226","\227",
+     "\230","\231","\232","\233","\234","\235","\236","\237",
+     " ","!", NULL, NULL, "?", NULL, "|", NULL,
+     NULL, "(c)", "a", "<<", NULL, "-", "(R)", 
+     NULL, NULL, NULL, "^2", "^3", NULL,
+     "\xcc\xa6", NULL, NULL, ",", "^1", NULL, ">>", "1/4",
+     "1/2", "3/4", "?", "A`", "A'", "A^", "A~", "A\"", "A", "AE", "C", "E`",
+     "E'", "E^", "E\"", "I`", "I'", "I^", "I\"", "D", "N~", "O`", "O'", "O^",
+     "O~", "O\"", NULL, "O/", "U`", "U'", "U^", "U\"", "Y'", "?", "ss",
+     "a`", "a'", "a^", "a~", "a\"", "a", "ae", "c", "e`", "e'", "e^", "e\"",
+     "i`", "i'", "i^", "i\"", "?", "n~", "o`", "o'", "o^", "o~", "o\"",
+     NULL, "o/", "u`", "u'", "u^", "u\"", "y'", "Io", "y\""
+};
+
 
 /*
  * Comparison function for binary search
@@ -917,6 +1089,7 @@ static int Html_entity_search(char *key)
    return -1;
 }
 
+#if 0 /* no use on i18n */
 /*
  * Switch a few UCS encodings to latin1.
  */
@@ -933,7 +1106,7 @@ static gint Html_try_ucs2latin1(gint iso
       case 0x2039: ret = '<'; break;
       case 0x203a: ret = '>'; break;
       case 0x2022: ret = 176; break;
-      default:     ret = -1;  break;
+      default:     ret = isocode;  break;
    }
    return ret;
 }
@@ -956,6 +1129,61 @@ static gint Html_try_ascii2latin1(gint i
    }
    return ret;
 }
+#endif
+
+/* Change from UCS2 to Dillo internal code. */
+static gchar *Html_ucs2utf8(DilloHtml *html, gint isocode) {
+   gchar *ret = NULL;
+   
+   /* Try substitute ascii string. this is a temporary step. */
+   if (!a_I18n_has_latin1_charset(html->linkblock->lang)) {
+      if (isocode > 0 && isocode <= 255) {
+         ret = NumberedEnts[isocode];
+      } else switch (isocode) {
+         case  338: ret = "OE"; break;
+         case  339: ret = "oe"; break;
+         case  352: ret = "S^"; break;
+         case  353: ret = "s^"; break;
+         case  376: ret = "Y\""; break;
+         case  402: ret = "f"; break;
+         case  710: ret = "^"; break;
+         case  732: ret = "~"; break;
+         case 8226: ret = "\xe3\x83\xbb"; break;
+         case 8482: ret = "TM"; break;
+         case 8544: ret = "I"; break;
+         case 8545: ret = "II"; break;
+         case 8546: ret = "III"; break;
+         case 8547: ret = "IV"; break;
+         case 8548: ret = "V"; break;
+         case 8549: ret = "VI"; break;
+         case 8550: ret = "VII"; break;
+         case 8551: ret = "VIII"; break;
+         case 8552: ret = "IX"; break;
+         case 8553: ret = "X"; break;
+         case 8554: ret = "XI"; break;
+         case 8555: ret = "XII"; break;
+         case 8722: ret = "-"; break;
+         default:
+            if (isocode >= 8194 && isocode <= 8207) ret = " ";
+      }
+   }
+   switch (isocode) {
+      case 8656: ret = "<="; break;
+      case 8727: ret = "*"; break;
+      case 8764: ret = "~"; break;
+      case 8901: ret = "."; break;
+      case 9001: ret = "<"; break;
+      case 9002: ret = ">"; break;
+      default: break;
+   }
+   if (ret) return g_strdup(ret);
+
+   {
+      /* ISO-10646/UCS2 or ISO-10646-UCS-2 */
+      gchar wc[3] = {(gchar)isocode, (gchar)(isocode>>8), 0};
+      return a_I18n_convert("UCS-2LE", DILLO_CHARSET, wc, 2);
+   }
+}
 
 /*
  * Given an entity, return the ISO-Latin1 character code.
@@ -984,7 +1212,7 @@ static gint Html_parse_entity(DilloHtml 
             /* strtol with base 16 accepts leading "0x" - we don't */
             if (*s == '0' && s[1] == 'x') {
                s++;
-               isocode = 0;
+               isocode = 0; 
             } else {
                isocode = strtol(s, &s, 16);
             }
@@ -995,7 +1223,7 @@ static gint Html_parse_entity(DilloHtml 
 
       if (!isocode || errno || isocode > 0x7fffffffL) {
          /* this catches null bytes, errors and codes >=2^31 */
-         MSG_HTML("numeric character reference out of range\n");
+         MSG_HTML(_("numeric character reference out of range\n"));
          isocode = -2;
       }
 
@@ -1003,19 +1231,19 @@ static gint Html_parse_entity(DilloHtml 
          if (*s == ';')
             s++;
          else if (prefs.show_extra_warnings)
-            MSG_HTML("numeric character reference without trailing ';'\n");
+            MSG_HTML(_("numeric character reference without trailing ';'\n"));
       }
 
    } else if (isalpha(*s)) {
       /* character entity reference */
-      while (isalnum(*++s) || strchr(":_.-", *s));
+      while (*++s && (isalnum(*s) || strchr(":_.-", *s)));
       c = *s;
       *s = 0;
 
       if (c != ';' || (i = Html_entity_search(tok)) == -1) {
          if ((html->DocType == DT_HTML && html->DocTypeVersion == 4.01f) ||
              html->DocType == DT_XHTML)
-            MSG_HTML("undefined character entity '%s'\n", tok);
+         MSG_HTML(_("undefined character entity '%s'\n"), tok);
          isocode = -3;
       } else
          isocode = Entities[i].isocode;
@@ -1023,20 +1251,23 @@ static gint Html_parse_entity(DilloHtml 
       if (c == ';')
          s++;
       else if (prefs.show_extra_warnings)
-         MSG_HTML("character entity reference without trailing ';'\n");
+         MSG_HTML(_("character entity reference without trailing ';'\n"));
    }
 
    *entsize = s-tok+1;
    g_free(tok);
 
+#if 0 /* no use on i18n */
    if (isocode >= 128 && isocode <= 159) {
-      MSG_HTML("code positions 128-159 are not defined for ISO Latin-1\n");
+      MSG_HTML(_("code positions 128-159 are not defined for ISO Latin-1\n"));
       isocode = Html_try_ascii2latin1(isocode);
    } else if (isocode  > 255)
       /* Try a few UCS translations to Latin1 */
       isocode = Html_try_ucs2latin1(isocode);
-   else if (isocode == -1 && prefs.show_extra_warnings)
-      MSG_HTML("literal '&'\n");
+   else
+#endif
+   if (isocode == -1 && prefs.show_extra_warnings)
+      MSG_HTML(_("literal '&'\n"));
 
    return isocode;
 }
@@ -1049,7 +1280,7 @@ static char *
  Html_parse_entities(DilloHtml *html, gchar *token, gint toksize)
 {
    gchar *esc_set = "&\xE2\xC2";
-   gchar *new_str;
+   gchar *new_str, *subst, *subst_start;
    gint i, j, isocode, entsize;
 
    new_str = g_strndup(token, toksize);
@@ -1060,9 +1291,14 @@ static char *
       if (token[i] == '&' &&
           (isocode = Html_parse_entity(html, token+i,
                                        toksize-i, &entsize)) >= 0) {
-         new_str[j++] = (gchar) isocode;
+         subst = subst_start = Html_ucs2utf8(html, isocode);
+         while (*subst != '\0') { /* insert the actual character */
+            new_str[j++] = *subst;
+            subst++;
+         }
+         g_free(subst_start);
          i += entsize-1;
-
+#if 0 /* no use on i18n */
       } else if (token[i] == '\xE2' && token[i+1] == '\x80' && i+2 < toksize){
          /* Hack: for parsing some UTF-8 characters into latin1 */
          switch (token[i+2]) {
@@ -1093,6 +1329,7 @@ static char *
          new_str[j++] = ' ';
          ++i;
 
+#endif
       } else {
          new_str[j++] = token[i];
       }
@@ -1139,7 +1376,7 @@ static void Html_process_space(DilloHtml
             break;
          case '\t':
             if (prefs.show_extra_warnings)
-               MSG_HTML("TAB character inside <PRE>\n");
+               MSG_HTML(_("TAB character inside <PRE>\n"));
             offset = TAB_SIZE - html->pre_column % TAB_SIZE;
             a_Dw_page_add_text(DW_PAGE (html->dw),
                                g_strnfill(offset, ' '),
@@ -1375,7 +1612,7 @@ static void Html_tag_cleanup_at_close(Di
          /* Warn when we decide to close an open tag (for !w3c_mode) */
          if (html->stack_top > stack_idx &&
              Tags[toptag_idx].EndTag != 'O')
-            MSG_HTML("  - forcing close of open tag: <%s>\n",
+            MSG_HTML(_("  - forcing close of open tag: <%s>\n"),
                      Tags[toptag_idx].name);
 
          /* Close this and only this tag */
@@ -1384,7 +1621,7 @@ static void Html_tag_cleanup_at_close(Di
       }
 
    } else {
-      MSG_HTML("unexpected closing tag: </%s>. -- expected </%s>\n",
+      MSG_HTML(_("unexpected closing tag: </%1$s>. -- expected </%2$s>\n"),
                Tags[new_idx].name, html->stack[stack_idx].tag_name);
    }
 }
@@ -1429,6 +1666,7 @@ static DwStyleLength Html_parse_length_o
          end += 2;
 */
    default:
+      v = (v > G_MAXSHORT*2) ? DW_STYLE_LENGTH_AUTO : v;
       l = DW_STYLE_CREATE_ABS_LENGTH ((gint)v);
       break;
    }
@@ -1455,7 +1693,7 @@ static DwStyleLength Html_parse_length (
    else {
       /* allow only whitespaces */
       if (*end && !isspace (*end)) {
-         MSG_HTML("Garbage after length: %s\n", attr);
+         MSG_HTML(_("Garbage after length: %s\n"), attr);
          return DW_STYLE_LENGTH_AUTO;
       }
    }
@@ -1474,7 +1712,7 @@ static gint32
    gint32 color = a_Color_parse(subtag, default_color, &err);
 
    if (err) {
-      MSG_HTML("color is not in \"#RRGGBB\" format\n");
+      MSG_HTML(_("color is not in \"#RRGGBB\" format\n"));
    }
    return color;
 }
@@ -1494,8 +1732,8 @@ static gint
          break;
 
    if (val[i] || !isalpha(val[0]))
-      MSG_HTML("'%s' value is not of the form "
-               "[A-Za-z][A-Za-z0-9:_.-]*\n", attrname);
+      MSG_HTML(_("'%s' value is not of the form "
+               "[A-Za-z][A-Za-z0-9:_.-]*\n"), attrname);
 
    return !(val[i]);
 }
@@ -1591,12 +1829,18 @@ static void Html_parse_doctype(DilloHtml
  */
 static void Html_tag_open_html(DilloHtml *html, char *tag, gint tagsize)
 {
+   const char *attrbuf;
+   
    if (!(html->InFlags & IN_HTML))
       html->InFlags |= IN_HTML;
    ++html->Num_HTML;
 
    if (html->Num_HTML > 1) {
-      MSG_HTML("HTML element was already open\n");
+      MSG_HTML(_("HTML element was already open\n"));
+   }
+
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "lang"))) {
+      strncpy(html->linkblock->lang, attrbuf, 6);
    }
 }
 
@@ -1619,7 +1863,7 @@ static void Html_tag_close_html(DilloHtm
 static void Html_tag_open_head(DilloHtml *html, char *tag, gint tagsize)
 {
    if (html->InFlags & IN_BODY) {
-      MSG_HTML("HEAD element must go before the BODY section\n");
+      MSG_HTML(_("HEAD element must go before the BODY section\n"));
       html->ReqTagClose = TRUE;
       return;
    }
@@ -1629,7 +1873,7 @@ static void Html_tag_open_head(DilloHtml
    ++html->Num_HEAD;
 
    if (html->Num_HEAD > 1) {
-      MSG_HTML("HEAD element was already open\n");
+      MSG_HTML(_("HEAD element was already open\n"));
    }
 }
 
@@ -1642,8 +1886,8 @@ static void Html_tag_close_head(DilloHtm
 {
    if (html->InFlags & IN_HEAD) {
       if (html->Num_TITLE == 0)
-         MSG_HTML("HEAD section lacks the TITLE element\n");
-
+         MSG_HTML(_("HEAD section lacks the TITLE element\n"));
+   
       html->InFlags &= ~IN_HEAD;
    }
    Html_pop_tag(html, TagIdx);
@@ -1667,10 +1911,10 @@ static void Html_tag_close_title(DilloHt
 {
    if (html->InFlags & IN_HEAD) {
       /* title is only valid inside HEAD */
-      a_Interface_set_page_title(html->linkblock->bw, html->Stash->str);
-      a_History_set_title(NAV_TOP(html->linkblock->bw), html->Stash->str);
+      a_Doc_title_set(html->linkblock->dd, html->Stash->str);
+      a_History_set_title(NAV_TOP(html->linkblock->dd), html->Stash->str);
    } else {
-      MSG_HTML("the TITLE element must be inside the HEAD section\n");
+      MSG_HTML(_("the TITLE element must be inside the HEAD section\n"));
    }
    Html_pop_tag(html, TagIdx);
 }
@@ -1725,17 +1969,26 @@ static void Html_tag_open_body(DilloHtml
    DwStyle style_attrs, *style;
    gint32 color;
 
+   /* if document contains frameset, ignore body */
+   if (html->InFlags & IN_FRAMESET) return;
+   /* in body, so hide/remove frameset and show docwin */
+   if (html->dd->frameset && GTK_IS_WIDGET(html->dd->frameset)) {
+     gtk_widget_destroy(html->dd->frameset);
+     html->dd->frameset = NULL;
+     gtk_widget_show(GTK_WIDGET(html->dd->docwin));
+   }
+
    if (!(html->InFlags & IN_BODY))
       html->InFlags |= IN_BODY;
    ++html->Num_BODY;
 
    if (html->Num_BODY > 1) {
-      MSG_HTML("BODY element was already open\n");
+      MSG_HTML(_("BODY element was already open\n"));
       return;
    }
    if (html->InFlags & IN_HEAD) {
       /* if we're here, it's bad XHTML, no need to recover */
-      MSG_HTML("unclosed HEAD element\n");
+      MSG_HTML(_("unclosed HEAD element\n"));
    }
 
    page = DW_PAGE (html->dw);
@@ -1749,8 +2002,8 @@ static void Html_tag_open_body(DilloHtml
 
          style_attrs = *html->dw->style;
          style_attrs.background_color =
-            a_Dw_style_color_new (color, html->bw->main_window->window);
-         style = a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+            a_Dw_style_color_new (color, html->dd->bw->main_window->window);
+         style = a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
          a_Dw_widget_set_style (html->dw, style);
          a_Dw_style_unref (style);
          html->stack[html->stack_top].current_bg_color = color;
@@ -1760,7 +2013,7 @@ static void Html_tag_open_body(DilloHtml
          color = Html_color_parse(html, attrbuf, prefs.text_color);
          HTML_SET_TOP_ATTR
             (html, color,
-             a_Dw_style_color_new (color, html->bw->main_window->window));
+             a_Dw_style_color_new (color, html->dd->bw->main_window->window));
       }
 
       if ((attrbuf = Html_get_attr(html, tag, tagsize, "link")))
@@ -1845,7 +2098,7 @@ static void Html_tag_open_table(DilloHtm
       (&style_attrs,
        a_Dw_style_shaded_color_new (
           html->stack[html->stack_top].current_bg_color,
-          html->bw->main_window->window));
+          html->dd->bw->main_window->window));
    a_Dw_style_box_set_border_style (&style_attrs, DW_STYLE_BORDER_OUTSET);
    style_attrs.border_spacing = cellspacing;
 
@@ -1879,11 +2132,11 @@ static void Html_tag_open_table(DilloHtm
             bgcolor = prefs.bg_color;
          html->stack[html->stack_top].current_bg_color = bgcolor;
          style_attrs.background_color =
-            a_Dw_style_color_new (bgcolor, html->bw->main_window->window);
+            a_Dw_style_color_new (bgcolor, html->dd->bw->main_window->window);
       }
    }
 
-   tstyle = a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+   tstyle = a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
 
    /* The style for the cells */
    style_attrs = *html->stack[html->stack_top].style;
@@ -1900,7 +2153,7 @@ static void Html_tag_open_table(DilloHtm
 
    old_style = html->stack[html->stack_top].table_cell_style;
    html->stack[html->stack_top].table_cell_style =
-      a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+      a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
    if (old_style)
       a_Dw_style_unref (old_style);
 
@@ -1931,11 +2184,11 @@ static void Html_tag_open_table_cell(Dil
 
    switch (html->stack[html->stack_top].table_mode) {
    case DILLO_HTML_TABLE_MODE_NONE:
-      MSG_HTML("<td> or <th> outside <table>\n");
+      MSG_HTML(_("<td> or <th> outside <table>\n"));
       return;
 
    case DILLO_HTML_TABLE_MODE_TOP:
-      MSG_HTML("<td> or <th> outside <tr>\n");
+      MSG_HTML(_("<td> or <th> outside <tr>\n"));
       /* a_Dw_table_add_cell takes care that dillo does not crash. */
       /* continues */
    case DILLO_HTML_TABLE_MODE_TR:
@@ -1957,7 +2210,7 @@ static void Html_tag_open_table_cell(Dil
          style_attrs.white_space = DW_STYLE_WHITE_SPACE_NORMAL;
 
       html->stack[html->stack_top].style =
-         a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+         a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
       a_Dw_style_unref (old_style);
       Html_tag_set_align_attr (html, tag, tagsize);
 
@@ -1982,7 +2235,7 @@ static void Html_tag_open_table_cell(Dil
 
             new_style = TRUE;
             style_attrs.background_color =
-               a_Dw_style_color_new (bgcolor, html->bw->main_window->window);
+               a_Dw_style_color_new (bgcolor, html->dd->bw->main_window->window);
             html->stack[html->stack_top].current_bg_color = bgcolor;
          }
       }
@@ -1996,7 +2249,7 @@ static void Html_tag_open_table_cell(Dil
          col_page = a_Dw_page_new ();
 
       if (new_style) {
-         style = a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+         style = a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
          a_Dw_widget_set_style (col_page, style);
          a_Dw_style_unref (style);
       } else
@@ -2026,6 +2279,7 @@ static void Html_tag_open_table_cell(Dil
  */
 static void Html_tag_open_td(DilloHtml *html, char *tag, gint tagsize)
 {
+   Html_set_top_font(html, NULL, 0, 0, 0);
    Html_tag_open_table_cell (html, tag, tagsize, DW_STYLE_TEXT_ALIGN_LEFT);
 }
 
@@ -2052,7 +2306,7 @@ static void Html_tag_open_tr(DilloHtml *
 #ifdef USE_TABLES
    switch (html->stack[html->stack_top].table_mode) {
    case DILLO_HTML_TABLE_MODE_NONE:
-      _MSG("Invalid HTML syntax: <tr> outside <table>\n");
+      _MSG(_("Invalid HTML syntax: <tr> outside <table>\n"));
       return;
 
    case DILLO_HTML_TABLE_MODE_TOP:
@@ -2069,9 +2323,9 @@ static void Html_tag_open_tr(DilloHtml *
 
             style_attrs = *html->stack[html->stack_top].style;
             style_attrs.background_color =
-               a_Dw_style_color_new (bgcolor, html->bw->main_window->window);
+               a_Dw_style_color_new (bgcolor, html->dd->bw->main_window->window);
             style =
-               a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+               a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
             html->stack[html->stack_top].current_bg_color = bgcolor;
          }
       }
@@ -2090,7 +2344,7 @@ static void Html_tag_open_tr(DilloHtml *
       if (Html_tag_set_valign_attr (html, tag, tagsize, &style_attrs)) {
          old_style = html->stack[html->stack_top].table_cell_style;
          html->stack[html->stack_top].table_cell_style =
-            a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+            a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
          a_Dw_style_unref (old_style);
       } else
 
@@ -2107,87 +2361,320 @@ static void Html_tag_open_tr(DilloHtml *
 #endif
 }
 
-/*
- * <FRAME>, <IFRAME>
- * todo: This is just a temporary fix while real frame support
- *       isn't finished. Imitates lynx/w3m's frames.
+static void Html_tag_open_noframes (DilloHtml *html, gchar *tag, gint tagsize)
+{
+   if (html->stack[html->stack_top].frame_mode == DILLO_HTML_FRAME_MODE_NONE)
+      MSG_HTML(_("<noframes> outside of <frameset>!!!\n"));
+   /* This code will allow the misuse of <noframes> which often exists. */
+   html->stack[html->stack_top].frame_mode = DILLO_HTML_FRAME_MODE_NOFRAMES;
+}
+
+/* Warning : this is illegal tag not existing! */
+static void Html_tag_open_noframe (DilloHtml *html, gchar *tag, gint tagsize)
+{
+   MSG_HTML(_("<noframe> is illegal tag !!! use <noframes>.\n"));
+   Html_tag_open_noframes (html, tag, tagsize);
+}
+
+/* 
+ * <IFRAME>
  */
-static void Html_tag_open_frame (DilloHtml *html, gchar *tag, gint tagsize)
+static void Html_tag_open_iframe (DilloHtml *html, gchar *tag, gint tagsize)
 {
    const char *attrbuf;
-   gchar *src, *buf;
    DilloUrl *url;
+   GtkWidget *box;
+   DwWidget *embed;
+   DilloDoc *dd;
    DwPage *page;
-   DwStyle style_attrs, *link_style;
-   DwWidget *bullet;
-   gint buf_size;
-
-   page = DW_PAGE(html->dw);
+   //   DwStyle style_attrs, *estyle, *fstyle; /* estyle is for embedding widget, fstyle for iframe */
+   DwStyle style_attrs, *estyle;
+   gchar *width_ptr, *height_ptr;
+   gboolean frameborder;
+   guint marginwidth, marginheight;
+   GtkPolicyType scrolling;
+   gchar *attrbuf_enc;
+
+   Html_tag_set_align_attr(html, tag, tagsize);
+   /* ignore the rest of the text inside the tag
+    *(it is the equivalent of a <noframes> block) */
+   html->stack[html->stack_top].parse_mode = DILLO_HTML_PARSE_MODE_VERBATIM;
+   html->stack[html->stack_top].frame_mode = DILLO_HTML_FRAME_MODE_IFRAME;
 
-   if ( !(attrbuf = Html_get_attr(html, tag, tagsize, "src")) )
+   /* no link == return */
+   if ( !(attrbuf = Html_get_attr(html, tag, tagsize, "src"))) 
+      return;
+   if (strlen(attrbuf) == 0)
+      return;
+   attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+         attrbuf, -1);
+   if (!(url = Html_url_new(html, attrbuf_enc, NULL, 0, 0, 0, 0))) {
+      g_free(attrbuf_enc);
       return;
+   }
+   g_free(attrbuf_enc);
 
-   if (!(url = Html_url_new(html, attrbuf, NULL, 0, 0, 0, 0)))
+   /* block ads */
+   if(a_Adblock_isblocked(url))
+   {
+      a_Url_free(url);
       return;
+   }
+   
+   page = DW_PAGE (html->dw);
+   style_attrs = *html->stack[html->stack_top].style;
 
-   src = g_strdup(attrbuf);
+   /* use default for width (300) and height (150) if not specified */
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "width")))
+     width_ptr = g_strdup(attrbuf);
+   else
+     width_ptr = g_strdup("300");
 
-   style_attrs = *(html->stack[html->stack_top].style);
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "height")))
+     height_ptr = g_strdup(attrbuf);
+   else
+     height_ptr = g_strdup("150");
 
-   if (a_Capi_get_buf(url, &buf, &buf_size))  /* visited frame */
-      style_attrs.color = a_Dw_style_color_new
-         (html->linkblock->visited_color, html->bw->main_window->window);
-   else                                /* unvisited frame */
-      style_attrs.color = a_Dw_style_color_new
-         (html->linkblock->link_color,  html->bw->main_window->window);
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "frameborder")))
+     frameborder = (strtol (attrbuf, NULL, 10) == 0 ? FALSE : TRUE);
+   else
+     frameborder = TRUE;
 
-   style_attrs.text_decoration |= DW_STYLE_TEXT_DECORATION_UNDERLINE;
-   style_attrs.x_link = Html_set_new_link(html, &url);
-   link_style = a_Dw_style_new (&style_attrs,
-                                html->bw->main_window->window);
-
-   a_Dw_page_add_parbreak(page, 5, html->stack[(html)->stack_top].style);
-
-   /* The bullet will be assigned the current list style, which should
-    * be "disc" by default, but may in very weird pages be different.
-    * Anyway, there should be no harm. */
-   bullet = a_Dw_bullet_new();
-   a_Dw_page_add_widget(page, bullet, html->stack[html->stack_top].style);
-   a_Dw_page_add_space(page, html->stack[html->stack_top].style);
-
-   if (tolower(tag[1]) == 'i') {
-      /* IFRAME usually comes with very long advertising/spying URLS,
-       * to not break rendering we will force name="IFRAME" */
-      a_Dw_page_add_text(page, g_strdup("IFRAME"), link_style);
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "marginwidth")))
+     marginwidth = strtol (attrbuf, NULL, 10);
+   else
+     marginwidth = 0;
 
-   } else {
-      /* FRAME:
-       * If 'name' tag is present use it, if not use 'src' value */
-      if ( !(attrbuf = Html_get_attr(html, tag, tagsize, "name")) ) {
-         a_Dw_page_add_text(page, g_strdup(src), link_style);
-      } else {
-         a_Dw_page_add_text(page, g_strdup(attrbuf), link_style);
-      }
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "marginheight")))
+     marginheight = strtol (attrbuf, NULL, 10);
+   else
+     marginheight = 0;
+
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "scrolling")))
+     scrolling = (!g_strcasecmp(attrbuf, "no") ? GTK_POLICY_NEVER :
+		  (!g_strcasecmp(attrbuf, "yes") ? GTK_POLICY_ALWAYS : GTK_POLICY_AUTOMATIC));
+   else
+     scrolling = GTK_POLICY_AUTOMATIC;
+     
+   dd = a_Doc_new();
+   a_Doc_set_parent(dd, (html)->dd);
+   /* set margins */
+   (dd->style)->margin.left = (dd->style)->margin.right = marginwidth;
+   (dd->style)->margin.top = (dd->style)->margin.bottom = marginheight;
+   /* set border */
+   if(!frameborder)
+     a_Dw_style_box_set_val(&((dd->style)->border_width), frameborder);
+
+   box = gtk_hbox_new(TRUE, 0);
+   gtk_container_set_border_width(GTK_CONTAINER(dd->docwin), 0);
+   gtk_container_set_border_width(GTK_CONTAINER(box), 0);
+   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(dd->docwin), scrolling, scrolling);
+   gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(dd->docwin), TRUE, TRUE, 0);
+   gtk_widget_show(GTK_WIDGET(box));
+
+   /* style for the embedding widget */
+   a_Dw_style_box_set_border_style(&style_attrs, DW_STYLE_BORDER_NONE);
+   a_Dw_style_box_set_val(&style_attrs.margin, 0);
+   a_Dw_style_box_set_val(&style_attrs.border_width, 0);
+   estyle = a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
+
+   embed = a_Dw_embed_gtk_new();
+   a_Dw_embed_gtk_add_gtk(DW_EMBED_GTK(embed), GTK_WIDGET(box));
+   Html_add_widget(html, (DwWidget *) embed, width_ptr, height_ptr, estyle);
+   
+   a_Dw_style_unref(estyle);   
+   g_free(width_ptr);
+   g_free(height_ptr);
+
+   /* set iframe name if specified */
+   if((attrbuf = Html_get_attr(html, tag, tagsize, "name")))
+     a_Doc_set_name(dd, (gchar *) attrbuf);
+   
+   a_Url_set_referer(url, html->linkblock->base_url);
+   a_Nav_push(dd, url);
+}
+
+/*
+ * <FRAME>
+ */
+static void Html_tag_open_frame (DilloHtml *html, gchar *tag, gint tagsize)
+{
+   const char *attrbuf;
+   DilloUrl *url;
+   GtkWidget *box;
+   DilloDoc *dd;
+   gboolean frameborder, noresize;
+   guint marginwidth, marginheight;
+   GtkPolicyType scrolling;
+   gchar *attrbuf_enc;
+
+
+   /* no link == return */
+   if ( !(attrbuf = Html_get_attr(html, tag, tagsize, "src"))) 
+      return;
+   if (strlen(attrbuf) == 0) 
+      return;
+   attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+            attrbuf, -1);
+   _MSG("      URL %s\n", (attrbuf_enc) ? attrbuf_enc : "(null)");
+   if (!(url = Html_url_new(html, attrbuf_enc, NULL, 0, 0, 0, 0))) {
+      g_free(attrbuf_enc);
+      return;
+   }
+   g_free(attrbuf_enc);
+   
+   /* block ads */
+   if(a_Adblock_isblocked(url))
+   {
+      a_Url_free(url);
+      url = Html_url_new(html, "about:blank", NULL, 0, 0, 0, 0);
    }
 
-   a_Dw_page_add_parbreak(page, 5, html->stack[(html)->stack_top].style);
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "frameborder")))
+     frameborder = (strtol (attrbuf, NULL, 10) == 0 ? FALSE : TRUE);
+   else
+     frameborder = TRUE;
+
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "noresize")))
+     noresize = TRUE;
+   else
+     noresize = FALSE;
+
+   /* if margins have not been set explicitly, use defaults */
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "marginwidth")))
+     marginwidth = strtol (attrbuf, NULL, 10);
+   else
+     marginwidth = DOC_DEFAULT_MARGIN;
+
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "marginheight")))
+     marginheight = strtol (attrbuf, NULL, 10);
+   else
+     marginheight = DOC_DEFAULT_MARGIN;
 
-   a_Dw_style_unref(link_style);
-   g_free(src);
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "scrolling")))
+     scrolling = (!g_strcasecmp(attrbuf, "no") ? GTK_POLICY_NEVER :
+		  (!g_strcasecmp(attrbuf, "yes") ? GTK_POLICY_ALWAYS : GTK_POLICY_AUTOMATIC));
+   else
+     scrolling = GTK_POLICY_AUTOMATIC;
+
+   switch(html->stack[html->stack_top].frame_mode) {
+   case DILLO_HTML_FRAME_MODE_NONE:
+     MSG_HTML(_("<frame> outside of <frameset>\n"));
+     return;
+   case DILLO_HTML_FRAME_MODE_NOFRAMES:
+     MSG_HTML(_("<frame> inside of <noframes>\n"));
+     return;
+   case DILLO_HTML_FRAME_MODE_IFRAME:
+     MSG_HTML(_("<frame> inside of <iframe>\n"));
+     return;
+   case DILLO_HTML_FRAME_MODE_FRAMESET:
+     dd = a_Doc_new();
+     a_Doc_set_parent(dd, (html)->dd);
+     /* set marginwidth & height */
+     (dd->style)->margin.left = (dd->style)->margin.right = marginwidth;
+     (dd->style)->margin.top = (dd->style)->margin.bottom = marginheight;
+     if(!frameborder) {
+       a_Dw_style_box_set_val(&((dd->style)->border_width), 0);
+       a_Dw_style_box_set_border_style(dd->style, DW_STYLE_BORDER_NONE);
+     }
+     box = gtk_hbox_new(TRUE, 0);
+     gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(dd->docwin), TRUE, TRUE, 0);
+     gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(dd->docwin), scrolling, scrolling);
+     gtk_container_set_border_width(GTK_CONTAINER(dd->docwin), 0);
+     gtk_container_set_border_width(GTK_CONTAINER(box), 0);
+     gtk_widget_show(GTK_WIDGET(box));
+     gtk_container_add_with_args(GTK_CONTAINER(html->stack[html->stack_top].frameset),
+				 GTK_WIDGET(box),
+				 "GtkFrameset::x_padding", 0,
+				 "GtkFrameset::y_padding", 0,
+				 "GtkFrameset::noresize", noresize,
+				 "GtkFrameset::border", frameborder,
+				 NULL);
+     a_Url_set_referer(url, html->linkblock->base_url);
+     a_Nav_push(dd, url);
+
+     /* set frame name if specified */
+     if((attrbuf = Html_get_attr(html, tag, tagsize, "name")))
+       a_Doc_set_name(dd, (gchar *) attrbuf);
+     break;
+     
+   default:
+     return;
+   }
 }
 
 /*
  * <FRAMESET>
- * todo: This is just a temporary fix while real frame support
- *       isn't finished. Imitates lynx/w3m's frames.
  */
 static void Html_tag_open_frameset (DilloHtml *html, gchar *tag, gint tagsize)
 {
-   a_Dw_page_add_parbreak(DW_PAGE (html->dw), 9,
-                          html->stack[(html)->stack_top].style);
-   a_Dw_page_add_text(DW_PAGE(html->dw), g_strdup("--FRAME--"),
-                      html->stack[html->stack_top].style);
-   Html_add_indented(html, 40, 0, 5);
+   const char *attrbuf;
+   GtkWidget *frameset;
+   gchar *rows, *cols;
+
+   /* (older versions of) compiler happiness */
+   frameset = NULL;
+
+   /* first, see if this frameset tag is in the right place... */
+   if(html->stack[html->stack_top].parse_mode != DILLO_HTML_PARSE_MODE_INIT) {
+     MSG_HTML(_("incorrectly placed <frameset>\n"));
+     return;
+   }
+
+   /* get frameset attributes */
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "rows")))
+     rows = g_strdup(attrbuf);
+   else
+     rows = NULL;
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "cols")))
+     cols = g_strdup(attrbuf);
+   else
+     cols = NULL;
+
+   switch(html->stack[html->stack_top].frame_mode) {
+   case DILLO_HTML_FRAME_MODE_NOFRAMES:
+     MSG_HTML(_("<frameset> inside of <noframes>\n"));
+     g_free(rows);
+     g_free(cols);
+     return;
+   case DILLO_HTML_FRAME_MODE_IFRAME:
+     MSG_HTML(_("<frameset> inside of <iframe>\n"));
+     g_free(rows);
+     g_free(cols);
+     return;
+   case DILLO_HTML_FRAME_MODE_NONE:
+     /* 'root' frameset, so add the frameset to the dd */
+     if(html->dd->frameset)
+       gtk_widget_destroy(html->dd->frameset);
+     frameset = gtk_frameset_new(rows, cols);
+     html->dd->frameset = frameset;
+     gtk_container_add(GTK_CONTAINER(GTK_WIDGET(html->dd->docwin)->parent),
+		       GTK_WIDGET(frameset));
+     /* hide the docwin, show the frameset */     
+     gtk_widget_hide(GTK_WIDGET(html->dd->docwin));
+     gtk_widget_show(GTK_WIDGET(html->dd->frameset));
+     break;
+   case DILLO_HTML_FRAME_MODE_FRAMESET:
+     /* nested frameset */
+     frameset = gtk_frameset_new(rows, cols);
+     gtk_container_add(GTK_CONTAINER(html->stack[html->stack_top].frameset), GTK_WIDGET(frameset));
+     gtk_widget_show(GTK_WIDGET(frameset));
+     break;
+   default:
+     break;
+   }
+
+   g_free(rows);
+   g_free(cols);
+
+
+   /* once set, this flag does not get reset, even when the frameset tag
+    * is closed. This is intentional. */
+   html->InFlags |= IN_FRAMESET;
+
+   /* put the current frameset state on the stack */
+   html->stack[html->stack_top].frame_mode = DILLO_HTML_FRAME_MODE_FRAMESET;
+   html->stack[html->stack_top].frameset = frameset;
 }
 
 /*
@@ -2200,13 +2687,13 @@ static void Html_tag_open_h(DilloHtml *h
 
    /* todo: combining these two would be slightly faster */
    Html_set_top_font(html, prefs.vw_fontname,
-                     Html_level_to_fontsize(FontSizesNum - (tag[2] - '0')),
+                     Html_level_to_fontsize(D_FONT_SIZE_NUM - (tag[2] - '0')),
                      1, 3);
    Html_tag_set_align_attr (html, tag, tagsize);
 
    /* First finalize unclosed H tags (we test if already named anyway) */
-   a_Menu_pagemarks_set_text(html->bw, html->Stash->str);
-   a_Menu_pagemarks_add(html->bw, DW_PAGE (html->dw),
+   a_Menu_pagemarks_set_text(html->dd, html->Stash->str);
+   a_Menu_pagemarks_add(html->dd, DW_PAGE (html->dw),
                         html->stack[html->stack_top].style, (tag[2] - '0'));
    Html_stash_init(html);
    html->stack[html->stack_top].parse_mode =
@@ -2218,10 +2705,10 @@ static void Html_tag_open_h(DilloHtml *h
  */
 static void Html_tag_close_h(DilloHtml *html, gint TagIdx)
 {
-   a_Menu_pagemarks_set_text(html->bw, html->Stash->str);
+   a_Menu_pagemarks_set_text(html->dd, html->Stash->str);
+   Html_pop_tag(html, TagIdx);
    a_Dw_page_add_parbreak(DW_PAGE (html->dw), 9,
                           html->stack[(html)->stack_top].style);
-   Html_pop_tag(html, TagIdx);
 }
 
 /*
@@ -2268,7 +2755,7 @@ static void Html_tag_open_button(DilloHt
    a_Dw_style_box_set_val(&style_attrs.margin, 0);
    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);
+   style = a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
    button = a_Dw_button_new (DW_USES_HINTS, TRUE);
 
    /* The new button is not set button-insensitive, since nested buttons
@@ -2282,7 +2769,7 @@ static void Html_tag_open_button(DilloHt
    a_Dw_style_unref (style);
 
    a_Dw_style_box_set_val(&style_attrs.margin, 5);
-   style = a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+   style = a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
    page = a_Dw_page_new ();
    a_Dw_widget_set_style (page, style);
    a_Dw_style_unref (style);
@@ -2344,12 +2831,12 @@ static void Html_tag_open_font(DilloHtml
       if ((attrbuf = Html_get_attr(html, tag, tagsize, "color"))) {
          if (prefs.contrast_visited_color && html->InVisitedLink) {
             color = html->linkblock->visited_color;
-         } else {
+         } else { 
             /* use the tag-specified color */
             color = Html_color_parse(
                        html, attrbuf, style_attrs.color->color_val);
             style_attrs.color = a_Dw_style_color_new
-               (color, html->bw->main_window->window);
+               (color, html->dd->bw->main_window->window);
          }
       }
 
@@ -2362,7 +2849,7 @@ static void Html_tag_open_font(DilloHtml
 #endif
 
       html->stack[html->stack_top].style =
-         a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+         a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
       a_Dw_style_unref (old_style);
    }
 
@@ -2534,15 +3021,19 @@ static void Html_load_image(DilloHtml *h
 {
    DilloWeb *Web;
    gint ClientKey;
+   a_Url_set_referer(url, html->linkblock->base_url);
    /* Fill a Web structure for the cache query */
+   if (URL_FLAGS(html->linkblock->base_url) && URL_MustCache)
+       URL_FLAGS(url) |= URL_MustCache; /* cache page, cache images */
+   URL_FLAGS(url) |= URL_IsImage;
    Web = a_Web_new(url);
-   Web->bw = html->bw;
+   Web->dd = html->dd;
    Web->Image = Image;
    Web->flags |= WEB_Image;
    /* Request image data from the cache */
    if ((ClientKey = a_Capi_open_url(Web, NULL, NULL)) != 0) {
-      a_Interface_add_client(html->bw, ClientKey, 0);
-      a_Interface_add_url(html->bw, url, WEB_Image);
+      a_Doc_add_client(html->dd, ClientKey, 0);
+      a_Doc_add_url(html->dd, url, WEB_Image);
    }
 }
 
@@ -2558,23 +3049,38 @@ static void Html_tag_open_img(DilloHtml 
    DwPage *page;
    DwStyle style_attrs;
    const char *attrbuf;
+   gchar *attrbuf_enc;
    gint border;
 
    /* This avoids loading images. Useful for viewing suspicious HTML email. */
    if (URL_FLAGS(html->linkblock->base_url) & URL_SpamSafe)
       return;
 
-   if (!(attrbuf = Html_get_attr(html, tag, tagsize, "src")) ||
-       !(url = Html_url_new(html, attrbuf, NULL, 0, 0, 0, 0)))
+   if (!(attrbuf = Html_get_attr(html, tag, tagsize, "src")))
+      return;
+   attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+            attrbuf, -1);
+   url = Html_url_new(html, attrbuf_enc, NULL, 0, 0, 0, 0);
+   g_free(attrbuf_enc);
+   if(!url) return;
+
+   /* block ads */
+   if(a_Adblock_isblocked(url))
+   {
+      a_Url_free(url);
       return;
+   }
 
    page = DW_PAGE (html->dw);
 
-
    usemap_url = NULL;
-   if ((attrbuf = Html_get_attr(html, tag, tagsize, "usemap")))
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "usemap"))) {
+      attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+            attrbuf, -1);
       /* todo: usemap URLs outside of the document are not used. */
-      usemap_url = Html_url_new(html, attrbuf, NULL, 0, 0, 0, 0);
+      usemap_url = Html_url_new(html, attrbuf_enc, NULL, 0, 0, 0, 0);
+      g_free(attrbuf_enc);
+   }
 
    style_attrs = *html->stack[html->stack_top].style;
 
@@ -2590,21 +3096,23 @@ static void Html_tag_open_img(DilloHtml 
          a_Dw_style_box_set_border_color
             (&style_attrs,
              a_Dw_style_shaded_color_new (style_attrs.color->color_val,
-                                          html->bw->main_window->window));
+                                          html->dd->bw->main_window->window));
       else
          a_Dw_style_box_set_border_color
             (&style_attrs,
              a_Dw_style_shaded_color_new (html->linkblock->link_color,
-                                          html->bw->main_window->window));
+                                          html->dd->bw->main_window->window));
 
       a_Dw_style_box_set_border_style (&style_attrs, DW_STYLE_BORDER_SOLID);
       a_Dw_style_box_set_val (&style_attrs.border_width, border);
    }
 
    Image = Html_add_new_image(html, tag, tagsize, &style_attrs, TRUE);
+   if (html->stack[html->stack_top].style->x_link != -1)
+     a_Dw_widget_set_button_sensitive(DW_WIDGET(Image->dw), FALSE);
    Html_connect_signals(html, GTK_OBJECT(Image->dw));
    gtk_signal_connect_after(GTK_OBJECT(Image->dw), "button_press_event",
-                            GTK_SIGNAL_FUNC(Html_image_menu), html->bw);
+                            GTK_SIGNAL_FUNC(Html_image_menu), html->dd);
 
    /* Image maps */
    if (Html_get_attr(html, tag, tagsize, "ismap")) {
@@ -2612,7 +3120,7 @@ static void Html_tag_open_img(DilloHtml 
        * being separated with a word, only the first one is ISMAPed
        */
       a_Dw_image_set_ismap (Image->dw);
-      _MSG("  Html_tag_open_img: server-side map (ISMAP)\n");
+      _MSG(_("  Html_tag_open_img: server-side map (ISMAP)\n"));
    } else if (html->stack[html->stack_top].style->x_link != -1 &&
               usemap_url == NULL)
       /* For simple links, we have to suppress the "image_pressed" signal.
@@ -2634,14 +3142,17 @@ static void Html_tag_open_img(DilloHtml 
 static void Html_tag_open_map(DilloHtml *html, char *tag, gint tagsize)
 {
    char *hash_name;
-   const char *attrbuf;
+   char *attrbuf_enc;
    DilloUrl *url;
 
    if (html->InFlags & IN_MAP) {
-      MSG_HTML("nested <map>\n");
+      MSG_HTML(_("nested <map>\n"));
    } else {
-      if ((attrbuf = Html_get_attr(html, tag, tagsize, "name"))) {
-         hash_name = g_strdup_printf("#%s", attrbuf);
+      if ((attrbuf_enc = a_I18n_convert(DILLO_CHARSET,
+                  html->linkblock->charset,
+                  Html_get_attr(html, tag, tagsize, "name"), -1))) {
+         hash_name = g_strdup_printf("#%s", attrbuf_enc);
+         g_free(attrbuf_enc);
          url = Html_url_new(html, hash_name, NULL, 0, 0, 0, 0);
          a_Dw_image_map_list_add_map (&html->linkblock->maps, url);
          a_Url_free (url);
@@ -2687,7 +3198,7 @@ static int Html_read_coords(DilloHtml *h
          pending = 0;
       } else {
          if (*newtail != ',') {
-            MSG_HTML("usemap coords MUST be separated with ','\n");
+            MSG_HTML(_("usemap coords MUST be separated with ','\n"));
          }
          tail = newtail + 1;
       }
@@ -2705,6 +3216,7 @@ static void Html_tag_open_area(DilloHtml
    GdkPoint point[1024];
    DilloUrl* url;
    const char *attrbuf;
+   gchar *attrbuf_enc;
    gint type = DW_IMAGE_MAP_SHAPE_RECT;
    gint nbpoints, link = -1;
 
@@ -2730,14 +3242,21 @@ static void Html_tag_open_area(DilloHtml
 
    if ( Html_get_attr(html, tag, tagsize, "nohref") ) {
       link = -1;
-      _MSG("nohref");
+      _MSG(_("nohref"));
    }
 
    if ((attrbuf = Html_get_attr(html, tag, tagsize, "href"))) {
-      url = Html_url_new(html, attrbuf, NULL, 0, 0, 0, 0);
+      attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+            attrbuf, -1);
+      url = Html_url_new(html, attrbuf_enc, NULL, 0, 0, 0, 0);
+      g_free(attrbuf_enc);
       g_return_if_fail ( url != NULL );
       if ((attrbuf = Html_get_attr(html, tag, tagsize, "alt")))
          a_Url_set_alt(url, attrbuf);
+      if ((attrbuf = Html_get_attr(html, tag, tagsize, "target")))
+         a_Url_set_target(url, attrbuf);
+      else if (URL_TARGET_(html->linkblock->base_url))
+	   a_Url_set_target(url, URL_TARGET_(html->linkblock->base_url));
 
       link = Html_set_new_link(html, &url);
    }
@@ -2762,7 +3281,7 @@ static const char* Html_get_javascript_l
       if ((ch == '"' || ch == '\'') &&
           (p2 = strchr(Buf->str + i + 1 , ch))) {
          p1 = Buf->str + i;
-         MSG_HTML("link depends on javascript()\n");
+         MSG_HTML(_("link depends on javascript()\n"));
          g_string_truncate(Buf, p2 - Buf->str);
          g_string_erase(Buf, 0, p1 - Buf->str + 1);
       }
@@ -2775,10 +3294,15 @@ static const char* Html_get_javascript_l
  */
 static void Html_add_anchor(DilloHtml *html, const char *name)
 {
-   _MSG("Registering ANCHOR: %s\n", name);
+   gchar *name_enc;
+
+   name_enc = a_I18n_DW_CHARSET_from_DILLO_CHARSET(name, -1);
+   _MSG(_("Registering ANCHOR: %s\n"),
+         a_I18n_DW_CHARSET_from_DILLO_CHARSET(name_enc, -1));
+   g_free(name_enc);
    if (!a_Dw_page_add_anchor(DW_PAGE(html->dw), name,
                              html->stack[html->stack_top].style))
-      MSG_HTML("Anchor names must be unique within the document\n");
+      MSG_HTML(_("Anchor names must be unique within the document\n"));
    /* According to Sec. 12.2.1 of the HTML 4.01 spec, "anchor names that
     * differ only in case may not appear in the same document", but
     * "comparisons between fragment identifiers and anchor names must be
@@ -2795,7 +3319,7 @@ static void Html_tag_open_a(DilloHtml *h
    DwStyle style_attrs, *old_style;
    DilloUrl *url;
    const char *attrbuf;
-   gchar *buf;
+   gchar *buf, *attrbuf_enc;
    gint buf_size;
 
    /* todo: add support for MAP with A HREF */
@@ -2806,9 +3330,20 @@ static void Html_tag_open_a(DilloHtml *h
       if (tolower(attrbuf[0]) == 'j')
          attrbuf = Html_get_javascript_link(html);
 
-      url = Html_url_new(html, attrbuf, NULL, 0, 0, 0, 0);
+      attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+            attrbuf, -1);
+      url = Html_url_new(html, attrbuf_enc, NULL, 0, 0, 0, 0);
+      g_free(attrbuf_enc);
       g_return_if_fail ( url != NULL );
 
+      if ((attrbuf = Html_get_attr(html, tag, tagsize, "target"))) {
+         attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+               attrbuf, -1);
+         a_Url_set_target(url, attrbuf_enc);
+         g_free(attrbuf_enc);
+      } else if (URL_TARGET_(html->linkblock->base_url))
+          a_Url_set_target(url, URL_TARGET_(html->linkblock->base_url));
+
       old_style = html->stack[html->stack_top].style;
       style_attrs = *old_style;
 
@@ -2822,20 +3357,21 @@ static void Html_tag_open_a(DilloHtml *h
                        html->linkblock->link_color,
                        html->stack[html->stack_top].current_bg_color),
 */
-            html->bw->main_window->window);
+            html->dd->bw->main_window->window);
       } else {
          style_attrs.color = a_Dw_style_color_new
-            (html->linkblock->link_color,  html->bw->main_window->window);
+            (html->linkblock->link_color,  html->dd->bw->main_window->window);
       }
 
-      if ((attrbuf = Html_get_attr(html, tag, tagsize, "title")))
+      if ((attrbuf = Html_get_attr(html, tag, tagsize, "title"))) {
          style_attrs.x_tooltip = a_Dw_tooltip_new_no_ref(attrbuf);
+      }
 
       style_attrs.text_decoration |= DW_STYLE_TEXT_DECORATION_UNDERLINE;
       style_attrs.x_link = Html_set_new_link(html, &url);
 
       html->stack[html->stack_top].style =
-         a_Dw_style_new (&style_attrs, html->bw->main_window->window);
+         a_Dw_style_new (&style_attrs, html->dd->bw->main_window->window);
       a_Dw_style_unref (old_style);
    }
 
@@ -2843,7 +3379,10 @@ static void Html_tag_open_a(DilloHtml *h
       if (prefs.show_extra_warnings)
          Html_check_name_val(html, attrbuf, "name");
       /* html->NameVal is freed in Html_process_tag */
-      html->NameVal = a_Url_decode_hex_str(attrbuf);
+      attrbuf_enc = a_Url_decode_hex_str(attrbuf);
+      html->NameVal = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+           attrbuf_enc, -1);
+      g_free(attrbuf_enc);
       Html_add_anchor(html, html->NameVal);
    }
 }
@@ -2869,7 +3408,7 @@ static void Html_tag_open_u(DilloHtml *h
    style_attrs = *style;
    style_attrs.text_decoration |= DW_STYLE_TEXT_DECORATION_UNDERLINE;
    html->stack[html->stack_top].style =
-      a_Dw_style_new(&style_attrs, html->bw->main_window->window);
+      a_Dw_style_new(&style_attrs, html->dd->bw->main_window->window);
    a_Dw_style_unref(style);
 }
 
@@ -2885,7 +3424,7 @@ static void Html_tag_open_strike(DilloHt
    style_attrs = *style;
    style_attrs.text_decoration |= DW_STYLE_TEXT_DECORATION_LINE_THROUGH;
    html->stack[html->stack_top].style =
-      a_Dw_style_new(&style_attrs, html->bw->main_window->window);
+      a_Dw_style_new(&style_attrs, html->dd->bw->main_window->window);
    a_Dw_style_unref(style);
 }
 
@@ -2970,7 +3509,7 @@ static void Html_tag_open_menu(DilloHtml
    html->stack[html->stack_top].ref_list_item = NULL;
 
    if (prefs.show_extra_warnings)
-      MSG_HTML("it is strongly recommended using <UL> instead of <MENU>\n");
+      MSG_HTML(_("it is strongly recommended using <UL> instead of <MENU>\n"));
 }
 
 /*
@@ -3032,7 +3571,7 @@ static void Html_tag_open_li(DilloHtml *
 
    switch (html->stack[html->stack_top].list_type) {
    case HTML_LIST_NONE:
-      MSG_HTML("<li> outside <ul> or <ol>\n");
+      MSG_HTML(_("<li> outside <ul> or <ol>\n"));
       list_item = a_Dw_list_item_new(NULL);
       Html_add_indented_widget(html, list_item, 0, 0, 0 /* or 1 */);
       bullet = a_Dw_bullet_new();
@@ -3107,7 +3646,7 @@ static void Html_tag_open_hr(DilloHtml *
       a_Dw_style_box_set_border_color
          (&style_attrs,
           a_Dw_style_shaded_color_new (style_attrs.color->color_val,
-                                       html->bw->main_window->window));
+                                       html->dd->bw->main_window->window));
       if (size < 1)
          size = 1;
    } else {
@@ -3116,7 +3655,7 @@ static void Html_tag_open_hr(DilloHtml *
          (&style_attrs,
           a_Dw_style_shaded_color_new
              (html->stack[html->stack_top].current_bg_color,
-              html->bw->main_window->window));
+              html->dd->bw->main_window->window));
       if (size < 2)
          size = 2;
    }
@@ -3221,14 +3760,14 @@ static void Html_tag_open_form(DilloHtml
 {
    DilloUrl *action;
    DilloHtmlMethod method;
-   DilloHtmlEnc enc;
+   gchar *accept_charset = NULL, *attrbuf_enc;
    const char *attrbuf;
 
    a_Dw_page_add_parbreak(DW_PAGE (html->dw), 9,
                           html->stack[(html)->stack_top].style);
 
    if (html->InFlags & IN_FORM) {
-      MSG_HTML("nested forms\n");
+      MSG_HTML(_("nested forms\n"));
       return;
    }
    html->InFlags |= IN_FORM;
@@ -3239,15 +3778,25 @@ static void Html_tag_open_form(DilloHtml
          method = DILLO_HTML_METHOD_POST;
       /* todo: maybe deal with unknown methods? */
    }
-   if ((attrbuf = Html_get_attr(html, tag, tagsize, "action")))
-      action = Html_url_new(html, attrbuf, NULL, 0, 0, 0, 0);
-   else
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "action"))) {
+      attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+            attrbuf, -1);
+      action = Html_url_new(html, attrbuf_enc, NULL, 0, 0, 0, 0);
+      g_free(attrbuf_enc);
+   } else
       action = a_Url_dup(html->linkblock->base_url);
-   enc = DILLO_HTML_ENC_URLENCODING;
-   if ( (attrbuf = Html_get_attr(html, tag, tagsize, "encoding")) ) {
-      /* todo: maybe deal with unknown encodings? */
+
+   if ((attrbuf = Html_get_attr(html, tag, tagsize, "target")))
+     a_Url_set_target(action, attrbuf);
+   else if (URL_TARGET_(html->linkblock->base_url))
+     a_Url_set_target(action, URL_TARGET_(html->linkblock->base_url));
+
+   if(Html_get_attr(html, tag, tagsize, "accept-charset")) {
+      accept_charset = a_I18n_fix_charset(g_strdup(
+               Html_get_attr(html, tag, tagsize, "accept-charset")));
    }
-   Html_form_new(html->linkblock, method, action, enc);
+   Html_form_new(html->linkblock, method, action, accept_charset);
+   g_free(accept_charset);
    a_Url_free(action);
 }
 
@@ -3265,9 +3814,9 @@ static void Html_tag_close_form(DilloHtm
          let's add a custom one */
       if (form->num_submit_buttons == 0) {
          if (prefs.show_extra_warnings || form->num_entry_fields != 1)
-            MSG_HTML("FORM lacks a Submit button\n");
+            MSG_HTML(_("FORM lacks a Submit button\n"));
          if (prefs.generate_submit) {
-            MSG_HTML(" (added a submit button internally)\n");
+            MSG_HTML(_(" (added a submit button internally)\n"));
             Html_tag_open_input(html, SubmitTag, strlen(SubmitTag));
             form->num_submit_buttons = 0;
          }
@@ -3294,6 +3843,27 @@ static void Html_tag_close_form(DilloHtm
    Html_pop_tag(html, TagIdx);
 }
 
+#ifdef ENABLE_META_REFRESH
+/*
+ * Helper function for meta refresh tag.
+ */
+static gboolean Html_tag_meta_refresh(gpointer data)
+{
+   DilloHtmlMetaRefreshData *rdata = (DilloHtmlMetaRefreshData *)data;
+
+   if (!rdata->html_dead) {
+      rdata->lb->meta_refresh = NULL;
+      if ( rdata->url ) {
+         a_Nav_remove_top_url(rdata->lb->dd);
+         a_Nav_push(rdata->lb->dd, rdata->url);
+      }
+   }
+   a_Url_free(rdata->url);
+   g_free(rdata);
+   return FALSE;
+}
+#endif
+
 /*
  * Handle <META>
  * We do not support http-equiv=refresh because it's non standard,
@@ -3309,6 +3879,32 @@ static void Html_tag_close_form(DilloHtm
  */
 static void Html_tag_open_meta(DilloHtml *html, char *tag, gint tagsize)
 {
+#ifdef ENABLE_META_REFRESH
+   const gchar *attrbuf;
+
+   if (!(html->InFlags & IN_HEAD) && html->linkblock->meta_refresh) {
+      return;
+   }
+   attrbuf = Html_get_attr(html, tag, tagsize, "http-equiv");
+
+   /* Is this a refresh? */
+   if (attrbuf && !g_strcasecmp(attrbuf, "refresh")) {
+      DilloHtmlMetaRefreshData *data;
+      gint delay;
+      gchar *content;
+ #ifdef SEND_HTML_MSG
+      gchar *html_msg, *url;
+ #endif
+
+      /* check for content */
+      if (!(attrbuf = Html_get_attr(html, tag, tagsize, "content")))
+         return;
+
+      /* check for delay */
+      delay = strtol(attrbuf, &content, 0);
+#else
+   const gchar *equiv, *content;
+ #ifdef SEND_HTML_MSG
    const gchar *meta_template =
 "<table width='100%%'><tr><td bgcolor='#ee0000'>Warning:</td>\n"
 " <td bgcolor='#8899aa' width='100%%'>\n"
@@ -3317,13 +3913,14 @@ static void Html_tag_open_meta(DilloHtml
 " <tr><td bgcolor='#a0a0a0' colspan='2'>The author wanted you to go\n"
 " <a href='%s'>here</a>%s</td></tr></table><br>\n";
 
-   const gchar *equiv, *content;
-   gchar *html_msg, delay_str[64];
+   gchar *html_msg;
+ #endif
+   gchar  delay_str[64];
    gint delay;
 
    /* only valid inside HEAD */
    if (!(html->InFlags & IN_HEAD)) {
-      MSG_HTML("META elements must be inside the HEAD section\n");
+      MSG_HTML(_("META elements must be inside the HEAD section\n"));
       return;
    }
 
@@ -3337,13 +3934,49 @@ static void Html_tag_open_meta(DilloHtml
                     delay, (delay > 1) ? "s" : "");
       else
          sprintf(delay_str, ".");
-
+#endif
       /* Skip to anything after "URL=" */
       while (*content && *(content++) != '=');
-
+#ifdef ENABLE_META_REFRESH
+      data = g_new(DilloHtmlMetaRefreshData, 1);
+      data->lb = html->linkblock;
+      data->html_dead = 0;
+	  
+      if (data->lb->meta_refresh) {
+         *data->lb->meta_refresh = 1;
+      }
+	  
+      data->lb->meta_refresh = &data->html_dead;
+      data->url = Html_url_new(html, *content ? content :
+                            URL_STR(a_History_get_url(NAV_TOP(data->lb->dd))),
+                            NULL, 0, 0, 0, 0);
+      a_Url_set_flags(data->url, URL_FLAGS(data->url) | URL_E2EReload);
+
+      if (!*content && delay < 7) /* don't refresh itself to often... */
+          delay = 7;
+ 
+      /* Add a timeout which will load the new location */
+      g_timeout_add(delay ? delay * 1000 : 300, Html_tag_meta_refresh,
+					(gpointer)data);
+ #ifdef SEND_HTML_MSG
+      url = URL_STR( data->url );
+      html_msg = g_strdup_printf(
+        	"<p><font color=\"red\">META REFRESH (%d sec): "
+        	"<a href=\"%s\">%s</a></p>",
+        	delay, url, url);
+ #endif
+#else
+ #ifdef SEND_HTML_MSG
       /* Send a custom HTML message
        * todo: this is a hairy hack, It'd be much better to build a widget. */
       html_msg = g_strdup_printf(meta_template, content, delay_str);
+ #endif
+#endif
+      MSG_HTML(_("The NON-STANDARD meta refresh tag."
+               " The HTML 4.01 SPEC (sec 7.4.4) recommends explicitly to avoid it."
+               " The author wanted you to go <%s>\n"), content);
+
+ #ifdef SEND_HTML_MSG
       {
          DilloHtmlProcessingState SaveFlags = html->InFlags;
          html->InFlags = IN_BODY;
@@ -3353,6 +3986,7 @@ static void Html_tag_open_meta(DilloHtml
          html->InFlags = SaveFlags;
       }
       g_free(html_msg);
+ #endif
    }
 }
 
@@ -3381,7 +4015,7 @@ static void Html_reset_input(DilloHtmlIn
    switch (input->type) {
    case DILLO_HTML_INPUT_TEXT:
    case DILLO_HTML_INPUT_PASSWORD:
-      gtk_entry_set_text(GTK_ENTRY(input->widget), input->init_str);
+      a_I18n_gtk_entry_set_text(GTK_ENTRY(input->widget), input->init_str);
       break;
    case DILLO_HTML_INPUT_CHECKBOX:
       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(input->widget),
@@ -3425,8 +4059,10 @@ static void Html_reset_input(DilloHtmlIn
       if (input->init_str != NULL) {
          int pos = 0;
          gtk_editable_delete_text(GTK_EDITABLE(input->widget), 0, -1);
-         gtk_editable_insert_text(GTK_EDITABLE(input->widget), input->init_str,
-                                  strlen(input->init_str), &pos);
+         a_I18n_gtk_editable_insert_text(GTK_EDITABLE(input->widget),
+                                         input->init_str,
+                                         strlen(input->init_str),
+                                         &pos);
       }
       break;
    default:
@@ -3522,17 +4158,34 @@ static void Html_urlencode_append(GStrin
    g_free(enc_val);
 }
 
-/*
+/* 
  * Append a name-value pair to an existing url.
  * (name and value are urlencoded before appending them)
+ * This also translates the value to the server character encoding or
+ * Accept_charset, if necessary.
  */
-static void
- Html_append_input(GString *url, const char *name, const char *value)
+static void Html_append_input(DilloHtmlLB *lb, GString *url, 
+              const char *name, char *value, GtkWidget *submit)
 {
-   if (name != NULL) {
+   if(name != NULL) {
       Html_urlencode_append(url, name);
       g_string_append_c(url, '=');
-      Html_urlencode_append(url, value);
+      if (value != NULL) {
+         int form_index;
+         char *charset, *convValue;
+         /* Search the form that generated the submit event */
+         if ((form_index = Html_find_form(submit, lb)) == -1 ) {
+            charset = lb->charset;
+         } else {
+            DilloHtmlForm *form = &lb->forms[form_index];
+            charset = (form->charset)? form->charset : lb->charset;
+         }
+         convValue = a_I18n_convert(DILLO_CHARSET, 
+                  charset, value, -1);
+         _MSG("append charset%s\n", charset);
+         Html_urlencode_append(url, convValue);
+         g_free(convValue);
+      }
       g_string_append_c(url, '&');
    }
 }
@@ -3566,6 +4219,9 @@ static void Html_submit_form(GtkWidget *
    DilloHtmlInput *input;
    DilloUrl *new_url;
    gchar *url_str, *action_str, *p, *text;
+   DilloDoc *name_dd;
+
+   name_dd = NULL;
 
    /* Search the form that generated the submit event */
    if ( (i = Html_find_form(submit, html_lb)) == -1 )
@@ -3579,29 +4235,33 @@ static void Html_submit_form(GtkWidget *
       DEBUG_MSG(3,"Html_submit_form form->action=%s\n",URL_STR_(form->action));
 
       for (input_index = 0; input_index < form->num_inputs; input_index++) {
+         gchar *enc_buf;
          input = &(form->inputs[input_index]);
          switch (input->type) {
          case DILLO_HTML_INPUT_TEXT:
          case DILLO_HTML_INPUT_PASSWORD:
-            Html_append_input(DataStr, input->name,
-                              gtk_entry_get_text(GTK_ENTRY(input->widget)));
+            enc_buf = a_I18n_gtk_entry_get_text(GTK_ENTRY(input->widget));
+            Html_append_input(html_lb, DataStr, input->name, enc_buf, submit);
+            g_free(enc_buf);
             break;
          case DILLO_HTML_INPUT_CHECKBOX:
          case DILLO_HTML_INPUT_RADIO:
             if (GTK_TOGGLE_BUTTON(input->widget)->active &&
                 input->name != NULL && input->init_str != NULL) {
-               Html_append_input(DataStr, input->name, input->init_str);
+                Html_append_input(html_lb, DataStr, input->name,
+                       input->init_str, submit);
             }
             break;
          case DILLO_HTML_INPUT_HIDDEN:
-            Html_append_input(DataStr, input->name, input->init_str);
+            Html_append_input(html_lb, DataStr, input->name,
+                    input->init_str, submit);
             break;
          case DILLO_HTML_INPUT_SELECT:
             for (i = 0; i < input->select->num_options; i++) {
                if (GTK_CHECK_MENU_ITEM(input->select->options[i].menuitem)->
                    active) {
-                  Html_append_input(DataStr, input->name,
-                                    input->select->options[i].value);
+                   Html_append_input(html_lb, DataStr, input->name,
+                                    input->select->options[i].value, submit);
                   break;
                }
             }
@@ -3610,23 +4270,26 @@ static void Html_submit_form(GtkWidget *
             for (i = 0; i < input->select->num_options; i++) {
                if (input->select->options[i].menuitem->state ==
                    GTK_STATE_SELECTED) {
-                  Html_append_input(DataStr, input->name,
-                                    input->select->options[i].value);
+                   Html_append_input(html_lb, DataStr, input->name,
+                                    input->select->options[i].value, submit);
                }
             }
             break;
          case DILLO_HTML_INPUT_TEXTAREA:
-            text = gtk_editable_get_chars(GTK_EDITABLE (input->widget),0,-1);
-            Html_append_input(DataStr, input->name, text);
+            text = a_I18n_gtk_editable_get_chars(GTK_EDITABLE (input->widget),
+                  0,-1);
+            Html_append_input(html_lb, DataStr, input->name, text, submit);
             g_free(text);
             break;
          case DILLO_HTML_INPUT_INDEX:
-            Html_urlencode_append(DataStr,
-               gtk_entry_get_text(GTK_ENTRY(input->widget)));
+            enc_buf = a_I18n_gtk_entry_get_text(GTK_ENTRY(input->widget));
+            Html_urlencode_append(DataStr, enc_buf);
+            g_free(enc_buf);
             break;
          case DILLO_HTML_INPUT_IMAGE:
             if (input->widget == submit) {
-               Html_append_input(DataStr, input->name, input->init_str);
+                Html_append_input(html_lb, DataStr, input->name,
+                        input->init_str, submit);
                Html_append_clickpos(DataStr, input->name, click_x, click_y);
             }
             break;
@@ -3634,7 +4297,8 @@ static void Html_submit_form(GtkWidget *
          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);
+                Html_append_input(html_lb, DataStr, input->name,
+                        input->init_str, submit);
             break;
          default:
             break;
@@ -3664,16 +4328,25 @@ static void Html_submit_form(GtkWidget *
          g_free(url_str);
       }
 
-      a_Nav_push(html_lb->bw, new_url);
+      a_Url_set_referer(new_url, html_lb->base_url);
+      if (URL_TARGET_(form->action)) {
+         a_Url_set_target(new_url, (gchar *) URL_TARGET_(form->action));
+         name_dd = a_Doc_get_by_name(html_lb->dd, (gchar *) URL_TARGET_(new_url));
+      }
+
+      if (name_dd)
+      	a_Nav_push(name_dd, new_url);
+      else
+	      a_Nav_push(html_lb->dd, new_url);
       g_free(action_str);
       g_string_free(DataStr, TRUE);
       a_Url_free(new_url);
    } else {
-      MSG("Html_submit_form: Method unknown\n");
+      MSG(_("Html_submit_form: Method unknown\n"));
    }
 
    /* now, make the rendered area have its focus back */
-   gtk_widget_grab_focus(GTK_BIN(html_lb->bw->docwin)->child);
+   gtk_widget_grab_focus(GTK_BIN(html_lb->dd->docwin)->child);
 }
 
 
@@ -3719,7 +4392,15 @@ static DwWidget *Html_input_image(DilloH
    const char *attrbuf;
 
    if ((attrbuf = Html_get_attr(html, tag, tagsize, "src")) &&
-       (url = Html_url_new(html, attrbuf, NULL, 0, 0, 0, 0))) {
+        (url = Html_url_new(html, attrbuf, NULL, 0, 0, 0, 0))) {
+
+      /* block ads */
+      if(a_Adblock_isblocked(url))
+      {
+         a_Url_free(url);
+         return NULL;
+      }
+   
       button = a_Dw_button_new (0, FALSE);
       a_Dw_page_add_widget (DW_PAGE (html->dw), button,
                             html->stack[html->stack_top].style);
@@ -3743,7 +4424,7 @@ static DwWidget *Html_input_image(DilloH
       }
    }
 
-   DEBUG_MSG(10, "Html_input_image: unable to create image submit.\n");
+   DEBUG_MSG(10, _("Html_input_image: unable to create image submit.\n"));
    a_Url_free(url);
    return NULL;
 }
@@ -3765,7 +4446,7 @@ static void Html_tag_open_input(DilloHtm
    gint input_index;
 
    if (!(html->InFlags & IN_FORM)) {
-      MSG_HTML("input camp outside <form>\n");
+      MSG_HTML(_("input camp outside <form>\n"));
       return;
    }
 
@@ -3782,8 +4463,9 @@ static void Html_tag_open_input(DilloHtm
       inp_type = DILLO_HTML_INPUT_PASSWORD;
       widget = gtk_entry_new();
       gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);
-      if (value)
-         init_str = g_strdup(Html_get_attr(html, tag, tagsize, "value"));
+      if (value) {
+         init_str = value;//g_strdup(Html_get_attr(html, tag, tagsize, "value"));
+      }
    } else if (!g_strcasecmp(type, "checkbox")) {
       inp_type = DILLO_HTML_INPUT_CHECKBOX;
       widget = gtk_check_button_new();
@@ -3808,19 +4490,51 @@ static void Html_tag_open_input(DilloHtm
       init_str = (value) ? value : NULL;
    } else if (!g_strcasecmp(type, "hidden")) {
       inp_type = DILLO_HTML_INPUT_HIDDEN;
-      if (value)
-         init_str = g_strdup(Html_get_attr(html, tag, tagsize, "value"));
+      if (value) {
+         /* adhock fix: keep \n */
+         int i;
+         gboolean found_value;
+         gchar *buf1, *buf2, *bufu;
+         gchar delimiter[3] = " >";
+
+         buf1 = g_strndup(tag, tagsize);
+         bufu = g_strndup(tag, tagsize);
+         g_strup(bufu);
+         found_value = (strstr(bufu, "VALUE=") != NULL);
+         buf2 = buf1 + (strstr(bufu, "VALUE=") - bufu + 6);
+         g_free(bufu);
+         if (found_value) {
+            GString *buf3;
+            delimiter[0] = (buf2[0] == '"' || buf2[0] == '\'') ? buf2[0] : ' ';
+            if (delimiter[0] != ' ') buf2++;
+            if (strpbrk(buf2, delimiter)) strpbrk(buf2, delimiter)[0] = '\0';
+            buf3 = g_string_new(buf2);
+            for (i = 0; i < buf3->len; ++i) {
+               if (buf3->str[i] == '\r') {
+                  if (buf3->str[i + 1] == '\n')
+                     g_string_erase(buf3, i, 1);
+                  else
+                     buf3->str[i] = '\n';
+               }
+            }
+            init_str = buf3->str;
+            g_string_free(buf3, FALSE);
+         } else {
+            init_str = g_strdup(Html_get_attr(html, tag, tagsize, "value"));
+         }
+         g_free(buf1);
+      }
    } else if (!g_strcasecmp(type, "submit")) {
       inp_type = DILLO_HTML_INPUT_SUBMIT;
-      init_str = (value) ? value : g_strdup("submit");
-      widget = gtk_button_new_with_label(init_str);
+      init_str = (value) ? value : g_strdup(_("submit"));
+      widget = a_I18n_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);
    } 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);
+      init_str = (value) ? value : g_strdup(_("Reset"));
+      widget = a_I18n_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);
@@ -3829,9 +4543,9 @@ static void Html_tag_open_input(DilloHtm
          /* Don't request the image, make a text submit button instead */
          inp_type = DILLO_HTML_INPUT_SUBMIT;
          attrbuf = Html_get_attr(html, tag, tagsize, "alt");
-         label = attrbuf ? attrbuf : value ? value : name ? name : "Submit";
+         label = attrbuf ? attrbuf : value ? value : name ? name : _("Submit");
          init_str = g_strdup(label);
-         widget = gtk_button_new_with_label(init_str);
+         widget = a_I18n_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);
@@ -3846,12 +4560,12 @@ static void Html_tag_open_input(DilloHtm
       /* todo: implement it! */
       inp_type = DILLO_HTML_INPUT_FILE;
       init_str = (value) ? value : NULL;
-      MSG("An input of the type \"file\" wasn't rendered!\n");
+      MSG(_("An input of the type \"file\" wasn't rendered!\n"));
    } else if (!g_strcasecmp(type, "button")) {
       inp_type = DILLO_HTML_INPUT_BUTTON;
       if (value) {
          init_str = value;
-         widget = gtk_button_new_with_label(init_str);
+         widget = a_I18n_gtk_button_new_with_label(init_str);
       }
    } else {
       /* Text input, which also is the default */
@@ -3930,7 +4644,7 @@ static void Html_tag_open_isindex(DilloH
       action = a_Url_dup(html->linkblock->base_url);
 
    Html_form_new(html->linkblock, DILLO_HTML_METHOD_GET, action,
-                 DILLO_HTML_ENC_URLENCODING);
+                 NULL);
 
    form = &(html_lb->forms[html_lb->num_forms - 1]);
 
@@ -3978,7 +4692,7 @@ static void Html_tag_close_textarea(Dill
          html->Stash = g_string_erase(html->Stash, 0, 1);
       if (html->Stash->str[0] == '\n')
          html->Stash = g_string_erase(html->Stash, 0, 1);
-
+   
       /* As the spec recommends to canonicalize line endings, it is safe
        * to replace '\r' with '\n'. It will be canonicalized anyway! */
       for (i = 0; i < html->Stash->len; ++i) {
@@ -3989,15 +4703,15 @@ static void Html_tag_close_textarea(Dill
                html->Stash->str[i] = '\n';
          }
       }
-
+   
       /* The HTML3.2 spec says it can have "text and character entities". */
       str = Html_parse_entities(html, html->Stash->str, html->Stash->len);
-
+   
       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),
+      a_I18n_gtk_text_insert(GTK_TEXT(form->inputs[form->num_inputs - 1].widget),
                       NULL, NULL, NULL, str, -1);
-
+   
       html->InFlags &= ~IN_TEXTAREA;
    }
    Html_pop_tag(html, TagIdx);
@@ -4020,12 +4734,12 @@ static void Html_tag_open_textarea(Dillo
 
    /* We can't push a new <FORM> because the 'action' URL is unknown */
    if (!(html->InFlags & IN_FORM)) {
-      MSG_HTML("<textarea> outside <form>\n");
+      MSG_HTML(_("<textarea> outside <form>\n"));
       html->ReqTagClose = TRUE;
       return;
    }
    if (html->InFlags & IN_TEXTAREA) {
-      MSG_HTML("nested <textarea>\n");
+      MSG_HTML(_("nested <textarea>\n"));
       html->ReqTagClose = TRUE;
       return;
    }
@@ -4033,6 +4747,7 @@ static void Html_tag_open_textarea(Dillo
    html->InFlags |= IN_TEXTAREA;
    html_lb = html->linkblock;
    form = &(html_lb->forms[html_lb->num_forms - 1]);
+
    Html_stash_init(html);
    html->stack[html->stack_top].parse_mode = DILLO_HTML_PARSE_MODE_VERBATIM;
 
@@ -4096,11 +4811,11 @@ static void Html_tag_open_select(DilloHt
    gint size, type, multi;
 
    if (!(html->InFlags & IN_FORM)) {
-      MSG_HTML("<select> outside <form>\n");
+      MSG_HTML(_("<select> outside <form>\n"));
       return;
    }
    if (html->InFlags & IN_SELECT) {
-      MSG_HTML("nested <select>\n");
+      MSG_HTML(_("nested <select>\n"));
       return;
    }
    html->InFlags |= IN_SELECT;
@@ -4153,7 +4868,7 @@ static void Html_option_finish(DilloHtml
    GtkWidget *menuitem;
    GSList *group;
    DilloHtmlSelect *select;
-
+   
    if (!(html->InFlags & IN_FORM))
       return;
 
@@ -4169,7 +4884,8 @@ static void Html_option_finish(DilloHtml
       else
          group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM
                                    (select->options[0].menuitem));
-      menuitem = gtk_radio_menu_item_new_with_label(group, html->Stash->str);
+      menuitem = a_I18n_gtk_radio_menu_item_new_with_label(group,
+                                                           html->Stash->str);
       select->options[select->num_options - 1].menuitem = menuitem;
       if ( select->options[select->num_options - 1].value == NULL )
          select->options[select->num_options - 1].value =
@@ -4182,7 +4898,7 @@ static void Html_option_finish(DilloHtml
                           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);
+      menuitem = a_I18n_gtk_list_item_new_with_label(html->Stash->str);
       select->options[select->num_options - 1].menuitem = menuitem;
       if (select->options[select->num_options - 1].value == NULL)
          select->options[select->num_options - 1].value =
@@ -4241,14 +4957,14 @@ static void Html_tag_close_select(DilloH
 
    if (html->InFlags & IN_SELECT) {
       html->InFlags &= ~IN_SELECT;
-
+   
       html_lb = html->linkblock;
-
+   
       form = &(html_lb->forms[html_lb->num_forms - 1]);
       input = &(form->inputs[form->num_inputs - 1]);
       if (input->type == DILLO_HTML_INPUT_SELECT) {
          Html_option_finish(html);
-
+   
          gtk_option_menu_set_menu(GTK_OPTION_MENU(input->widget),
                                   input->select->menu);
          Html_select_set_history(input);
@@ -4256,14 +4972,14 @@ static void Html_tag_close_select(DilloH
          /* gtk_option_menu_set_history(GTK_OPTION_MENU(input->widget), 1); */
 
          gtk_widget_show(input->widget);
-
+   
          embed_gtk = a_Dw_embed_gtk_new ();
          a_Dw_embed_gtk_add_gtk (DW_EMBED_GTK (embed_gtk), input->widget);
          a_Dw_page_add_widget(DW_PAGE (html->dw), embed_gtk,
                               html->stack[html->stack_top].style);
       } else if (input->type == DILLO_HTML_INPUT_SEL_LIST) {
          Html_option_finish(html);
-
+   
          if (input->select->size < input->select->num_options) {
             scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
             gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow),
@@ -4272,23 +4988,23 @@ static void Html_tag_close_select(DilloH
             gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW
                                                   (scrolledwindow),
                                                   input->widget);
-
+   
             gtk_container_set_focus_vadjustment
                (GTK_CONTAINER (input->widget),
                 gtk_scrolled_window_get_vadjustment
                 (GTK_SCROLLED_WINDOW(scrolledwindow)));
-
+   
             /* Calculate the height of the scrolled window */
             gtk_widget_size_request(input->select->options[0].menuitem, &req);
             height = input->select->size * req.height +
                2 * scrolledwindow->style->klass->ythickness;
             gtk_widget_set_usize(scrolledwindow, -1, height);
-
+   
             gtk_widget_show(input->widget);
             input->widget = scrolledwindow;
          }
          gtk_widget_show(input->widget);
-
+   
          /* note: In this next call, scrolledwindows get a g_warning from
           * gdkwindow.c:422. I'm not really going to sweat it now - the
           * embedded widget stuff is going to get massively redone anyway. */
@@ -4307,11 +5023,15 @@ static void Html_tag_close_select(DilloH
 static void Html_tag_open_base(DilloHtml *html, char *tag, gint tagsize)
 {
    const char *attrbuf;
+   gchar *attrbuf_enc;
    DilloUrl *BaseUrl;
 
    if (html->InFlags & IN_HEAD) {
       if ((attrbuf = Html_get_attr(html, tag, tagsize, "href"))) {
-         BaseUrl = Html_url_new(html, attrbuf, "", 0, 0, 0, 1);
+         attrbuf_enc = a_I18n_convert(DILLO_CHARSET, html->linkblock->charset,
+               attrbuf, -1);
+         BaseUrl = Html_url_new(html, attrbuf_enc, "", 0, 0, 0, 1);
+         g_free(attrbuf_enc);
          if (URL_SCHEME_(BaseUrl)) {
             /* Pass the URL_SpamSafe flag to the new base url */
             a_Url_set_flags(
@@ -4319,12 +5039,14 @@ static void Html_tag_open_base(DilloHtml
             a_Url_free(html->linkblock->base_url);
             html->linkblock->base_url = BaseUrl;
          } else {
-            MSG_HTML("base URI is relative (it MUST be absolute)\n");
+            MSG_HTML(_("base URI is relative (it MUST be absolute)\n"));
             a_Url_free(BaseUrl);
          }
       }
+      if ((attrbuf = Html_get_attr(html, tag, tagsize, "target")))
+	      a_Url_set_target(html->linkblock->base_url, attrbuf);
    } else {
-      MSG_HTML("the BASE element must appear in the HEAD section\n");
+      MSG_HTML(_("the BASE element must appear in the HEAD section\n"));
    }
 }
 
@@ -4467,7 +5189,6 @@ static const TagInfo Tags[] = {
  {"body", B8(011110),'O',1, Html_tag_open_body, Html_tag_close_body},
  {"br", B8(010001),'F',0, Html_tag_open_br, Html_tag_close_default},
  {"button", B8(011101),'R',2, Html_tag_open_button, Html_tag_close_default},
- /* caption */
  {"center", B8(011110),'R',2, Html_tag_open_center, Html_tag_close_div},
  {"cite", B8(010101),'R',2, Html_tag_open_cite, Html_tag_close_default},
  {"code", B8(010101),'R',2, Html_tag_open_code, Html_tag_close_default},
@@ -4484,9 +5205,9 @@ static const TagInfo Tags[] = {
  {"em", B8(010101),'R',2, Html_tag_open_em, Html_tag_close_default},
  /* fieldset */
  {"font", B8(010101),'R',2, Html_tag_open_font, Html_tag_close_default},
- {"form", B8(011110),'R',2, Html_tag_open_form, Html_tag_close_form},
- {"frame", B8(010010),'F',0, Html_tag_open_frame, Html_tag_close_default},
- {"frameset", B8(011110),'R',2,Html_tag_open_frameset, Html_tag_close_default},
+ {"form", B8(011110),'R',5, Html_tag_open_form, Html_tag_close_form},
+ {"frame", B8(000010),'F',0, Html_tag_open_frame, Html_tag_close_default},
+ {"frameset", B8(001110),'R',2,Html_tag_open_frameset, Html_tag_close_default},
  {"h1", B8(010110),'R',2, Html_tag_open_h, Html_tag_close_h},
  {"h2", B8(010110),'R',2, Html_tag_open_h, Html_tag_close_h},
  {"h3", B8(010110),'R',2, Html_tag_open_h, Html_tag_close_h},
@@ -4497,7 +5218,7 @@ static const TagInfo Tags[] = {
  {"hr", B8(010010),'F',0, Html_tag_open_hr, Html_tag_close_default},
  {"html", B8(001110),'O',1, Html_tag_open_html, Html_tag_close_html},
  {"i", B8(010101),'R',2, Html_tag_open_i, Html_tag_close_default},
- {"iframe", B8(011110),'R',2, Html_tag_open_frame, Html_tag_close_default},
+ {"iframe", B8(011110),'R',2, Html_tag_open_iframe, Html_tag_close_default},
  {"img", B8(010001),'F',0, Html_tag_open_img, Html_tag_close_default},
  {"input", B8(010001),'F',0, Html_tag_open_input, Html_tag_close_default},
  /* ins */
@@ -4511,7 +5232,8 @@ static const TagInfo Tags[] = {
  /* menu 1010 -- todo: not exactly 1010, it can contain LI and inline */
  {"menu", B8(011010),'R',2, Html_tag_open_menu, Html_tag_close_par},
  {"meta", B8(100001),'F',0, Html_tag_open_meta, Html_tag_close_default},
- /* noframes 1011 */
+ {"noframe", B8(001011),'R',2, Html_tag_open_noframe,  Html_tag_close_default}, /* Illegal tag */
+ {"noframes", B8(001011),'R',2, Html_tag_open_noframes, Html_tag_close_default},
  /* noscript 1011 */
  /* object 11xxxx */
  {"ol", B8(011010),'R',2, Html_tag_open_ol, Html_tag_close_par},
@@ -4675,7 +5397,7 @@ static void Html_stack_cleanup_at_open(D
 
       /* we have an inline (or empty) container... */
       if (Tags[oldtag_idx].EndTag == 'R') {
-         MSG_HTML("<%s> is not allowed to contain <%s>. -- closing <%s>\n",
+         MSG_HTML(_("<%1$s> is not allowed to contain <%2$s>. -- closing <%3$s>\n"),
                   Tags[oldtag_idx].name, Tags[new_idx].name,
                   Tags[oldtag_idx].name);
       }
@@ -4684,7 +5406,6 @@ static void Html_stack_cleanup_at_open(D
       if ((html->InFlags & IN_PRE) &&
           strcmp(Tags[new_idx].name, "hr") == 0)
          break;
-
       /* This call closes the top tag only. */
       Html_tag_cleanup_at_close(html, oldtag_idx);
    }
@@ -4791,7 +5512,7 @@ static void Html_process_tag(DilloHtml *
          /* todo: this is only raising a warning, take some defined action.
           * Note: apache uses IMG inside PRE (we could use its "alt"). */
          if ((html->InFlags & IN_PRE) && Html_tag_pre_excludes(ni))
-            MSG_HTML("<pre> is not allowed to contain <%s>\n", Tags[ni].name);
+            MSG_HTML(_("<pre> is not allowed to contain <%s>\n"), Tags[ni].name);
 
          /* Push the tag into the stack */
          Html_push_tag(html, ni);
@@ -4813,7 +5534,7 @@ static void Html_process_tag(DilloHtml *
             /* We compare the "id" value with the url-decoded "name" value */
             if (!html->NameVal || strcmp(html->NameVal, attrbuf)) {
                if (html->NameVal)
-                  MSG_HTML("'id' and 'name' attribute of <a> tag differ\n");
+                  MSG_HTML(_("'id' and 'name' attribute of <a> tag differ\n"));
                Html_add_anchor(html, attrbuf);
             }
          }
@@ -4869,6 +5590,7 @@ static const char *Html_get_attr2(DilloH
                                   DilloHtmlTagParsingFlags flags)
 {
    gint i, isocode, entsize, Found = 0, delimiter = 0, attr_pos = 0;
+   gchar *subst;
    GString *Buf = html->attr_data;
    DilloHtmlTagParsingState state = SEEK_ATTR_START;
 
@@ -4922,7 +5644,9 @@ static const char *Html_get_attr2(DilloH
          } else if (tag[i] == '&' && (flags & HTML_ParseEntities)) {
             if ((isocode = Html_parse_entity(html, tag+i,
                                              tagsize-i, &entsize)) >= 0) {
-               g_string_append_c(Buf, (gchar) isocode);
+               subst = Html_ucs2utf8(html, isocode);
+               g_string_append(Buf, subst);
+               g_free(subst);
                i += entsize-1;
             } else {
                g_string_append_c(Buf, tag[i]);
@@ -4996,7 +5720,12 @@ static void Html_add_widget(DilloHtml *h
       Html_parse_length (html, width_str) : DW_STYLE_LENGTH_AUTO;
    new_style_attrs.height = height_str ?
       Html_parse_length (html, height_str) : DW_STYLE_LENGTH_AUTO;
-   style = a_Dw_style_new (&new_style_attrs, (html)->bw->main_window->window);
+   if ((gulong)new_style_attrs.width*new_style_attrs.height
+         > (gulong)(G_MAXLONG >> 1)) {
+      new_style_attrs.width = DW_STYLE_LENGTH_AUTO;
+      new_style_attrs.height = DW_STYLE_LENGTH_AUTO;
+   }
+   style = a_Dw_style_new (&new_style_attrs, (html)->dd->bw->main_window->window);
    a_Dw_page_add_widget(DW_PAGE (html->dw), widget, style);
    a_Dw_style_unref (style);
 }
@@ -5030,6 +5759,11 @@ static gint Html_write_raw(DilloHtml *ht
    gint token_start, buf_index;
 
    g_return_val_if_fail ((page = DW_PAGE (html->dw)) != NULL, 0);
+   
+   if(bufsize < 0){
+      _MSG(_("Html_write_raw : bufsize is negative!\n"));
+      bufsize = strlen(buf);
+   }
 
    buf = g_strndup(buf, bufsize);
 
@@ -5105,7 +5839,7 @@ static gint Html_write_raw(DilloHtml *ht
                      if (buf[offset] == ch || !buf[offset]) {
                         buf_index = offset;
                      } else {
-                        MSG_HTML("attribute lacks closing quote\n");
+                        MSG_HTML(_("attribute lacks closing quote\n"));
                         break;
                      }
                   }
@@ -5113,7 +5847,7 @@ static gint Html_write_raw(DilloHtml *ht
                   /* unterminated tag detected */
                   p = g_strndup(buf+token_start+1,
                                 strcspn(buf+token_start+1, " <"));
-                  MSG_HTML("<%s> element lacks its closing '>'\n", p);
+                  MSG_HTML(_("<%s> element lacks its closing '>'\n"), p);
                   g_free(p);
                   --buf_index;
                   break;
@@ -5127,19 +5861,62 @@ static gint Html_write_raw(DilloHtml *ht
             }
          }
       } else {
-         /* A Word: search for whitespace or tag open */
-         while (++buf_index < bufsize) {
-            buf_index += strcspn(buf + buf_index, " <\n\r\t\f\v");
-            if ( buf[buf_index] == '<' && (ch = buf[buf_index + 1]) &&
-                 !isalpha(ch) && !strchr("/!?", ch))
-               continue;
-            break;
-         }
-         if (buf_index < bufsize || Eof) {
-            /* successfully found end of token */
-            Html_process_word(html, buf + token_start,
-                              buf_index - token_start);
-            token_start = buf_index;
+         /* A Word */
+         if (a_I18n_use_CJK_charset(html->linkblock->lang)) {
+            if (!IS_ASCII_CHAR(buf[buf_index])) {
+               /* Deal with multibyte characters, treat each character as a word. */
+               int wordnum = a_I18n_mblen(&buf[buf_index]);
+               if (wordnum != 0) {
+                  buf_index += wordnum;
+                  if (buf_index < bufsize || Eof) {
+                     Html_process_word(html, buf + token_start,
+                           buf_index - token_start);
+                     token_start = buf_index;
+                  }
+               } else {
+                  /* ignore it, unless it is a multibyte character that has not
+                   * completely arrived yet */
+                  buf_index++;
+                  if (buf_index < bufsize || Eof)
+                     token_start = buf_index;
+               }
+            } else {
+               /* search for whitespace or tag open or multibyte character*/
+               /* otherwise, fall back to ASCII */
+               while (++buf_index < bufsize) {
+                  while (buf_index < bufsize
+                        && IS_ASCII_CHAR(buf[buf_index])
+                        && !memchr(" <\n\r\t\f\v&", buf[buf_index], 8))
+                     buf_index++;
+                  if (buf[buf_index] == '<'
+                        && buf[buf_index + 1]
+                        && !isalpha(buf[buf_index + 1])
+                        && !strchr("/!?", buf[buf_index + 1]))
+                     continue; /* found a tag. */
+                  break;
+               }
+               if (buf_index < bufsize || Eof) {
+                  /* successfully found end of token */
+                  Html_process_word(html, buf + token_start,
+                        buf_index - token_start);
+                  token_start = buf_index;
+               }
+            }
+         } else {
+            /* search for whitespace or tag open or multibyte character*/
+            while (++buf_index < bufsize) {
+               buf_index += strcspn(buf + buf_index, " <\n\r\t\f\v");
+               if ( buf[buf_index] == '<' && (ch = buf[buf_index + 1]) &&
+                     !isalpha(ch) && !strchr("/!?", ch))
+                  continue;
+               break;
+            }
+            if (buf_index < bufsize || Eof) {
+               /* successfully found end of token */
+               Html_process_word(html, buf + token_start,
+                                 buf_index - token_start);
+               token_start = buf_index;
+            }
          }
       }
    }/*while*/
@@ -5150,6 +5927,60 @@ static gint Html_write_raw(DilloHtml *ht
    return token_start;
 }
 
+/* wait for </head> or <body> tag. if waiting, return TRUE*/
+static gboolean Html_wait(char *Buf, gint BufSize, gint Eof)
+{
+   char *head, *body;
+   struct timespec t = {0, 10000000L}; // 10ms
+   
+   if (Eof == 1) return FALSE;
+   
+   head = a_Misc_stristr(Buf, "</head>");
+   if (head && (BufSize - (head - Buf)) > 0) return FALSE;
+   body = a_Misc_stristr(Buf, "<body");
+   if (body && (BufSize - (body - Buf)) > 0) return FALSE;
+
+   _MSG("wait..\n");
+   nanosleep(&t, NULL);
+   return TRUE;
+}
+
+/* guess charset */
+static void
+Html_guess_charset(DilloHtml *html, char *Buf, gint BufSize)
+{
+   if (html->Start_Ofs != 0 && html->linkblock->usingMetaCharset)
+      return;
+
+   g_free(html->linkblock->charset);
+   /* 1. Server Charset */
+   if (html->server_charset) {
+      html->linkblock->charset = g_strdup(html->server_charset);
+      return;
+   }
+
+   /* 2. Meta Tag Charset */
+   html->linkblock->charset = a_I18n_get_charset_from_meta_tag(Buf, BufSize);
+   if (html->linkblock->charset) {
+#if 0
+      /* for rare case - page has many entities. */
+      gchar *charset;
+      if (g_strcasecmp(html->linkblock->charset, "ISO-8859-1") == 0) {
+         Buf = Html_parse_entities(html, Buf, BufSize);
+         charset = a_I18n_get_encoding(Buf, -1);
+         if (!html->lang) html->lang = a_I18n_get_lang_from_charset(charset);
+         g_free(charset);
+         g_free(Buf);
+      }
+#endif
+      html->linkblock->usingMetaCharset = TRUE;
+      return;
+   }
+
+   /* 3. Guess from document */
+   html->linkblock->charset = a_I18n_get_encoding(Buf, BufSize);
+}
+
 /*
  * Process the newly arrived html and put it into the page structure.
  * (This function is called by Html_callback whenever there's new data)
@@ -5157,23 +5988,51 @@ static gint Html_write_raw(DilloHtml *ht
 static void Html_write(DilloHtml *html, char *Buf, gint BufSize, gint Eof)
 {
    DwPage *page;
-   char completestr[32];
    gint token_start;
-   char *buf = Buf + html->Start_Ofs;
-   gint bufsize = BufSize - html->Start_Ofs;
 
    g_return_if_fail ( (page = DW_PAGE (html->dw)) != NULL );
-
+   if (BufSize == 0) return;
    html->Start_Buf = Buf;
-   token_start = Html_write_raw(html, buf, bufsize, Eof);
+   html->Buf_Size = BufSize;
+
+   if (!html->trans) {
+      /* wait <meta> tag. */
+      if (html->Start_Ofs == 0 && Html_wait(Buf, BufSize, Eof))
+         return;
+      /* guess charset */
+      Html_guess_charset(html, Buf, BufSize);
+      if (html->linkblock->charset) {
+         html->trans = Html_translation_new(html->linkblock->charset,
+               DILLO_CHARSET);
+         if (!html->lang)
+            html->lang = a_I18n_get_lang_from_charset(html->linkblock->charset);
+         strncpy(html->linkblock->lang, html->lang, 6);
+         Html_set_top_font(html, NULL, 0, 0, 0);
+      }
+   }
+
+   if (html->trans) {
+      int bufsize;
+
+      // translation needed and available 
+      Html_translate(html->trans, Buf, BufSize);
+      // note trans->bufsize includes the null byte 
+      bufsize = html->trans->bufsize - html->Start_Ofs;
+      if (bufsize == 0) token_start = 0;
+      else
+         token_start = Html_write_raw(html,
+               html->trans->buffer + html->Start_Ofs, bufsize, Eof);
+   } else {
+	   // translation not needed, or not available 
+      token_start = Html_write_raw(html, Buf + html->Start_Ofs,
+            BufSize - html->Start_Ofs, Eof);
+   }
    html->Start_Ofs += token_start;
 
-   if ( html->bw ) {
-      g_snprintf(
-         completestr, 32, "%s%.1f Kb",
-         PBAR_PSTR(prefs.panel_size == 1),
-         (float)html->Start_Ofs/1024);
-      a_Progressbar_update(html->bw->progress, completestr, 1);
+   if ( html->dd ) {
+      html->dd->progress = html->Start_Ofs/1024;
+      html->dd->ready = FALSE;
+      a_Doc_progress_update(html->dd);
    }
 }
 
@@ -5207,12 +6066,97 @@ static void Html_close(DilloHtml *html, 
    g_string_free(html->attr_data, TRUE);
 
    /* Remove this client from our active list */
-   a_Interface_close_client(html->bw, ClientKey);
-
-   /* Set progress bar insensitive */
-   a_Progressbar_update(html->bw->progress, NULL, 0);
+   a_Doc_close_client(html->dd, ClientKey);
 
+   /* update progress */
+   html->dd->ready = TRUE;
+   a_Doc_progress_update(html->dd);
+
+   /* close the character encoding converter, if present */
+   Html_translation_free(html->trans, FALSE);
+   g_free(html->server_charset);
+   g_free(html->lang);
+   
    g_free(html);
 }
 
+/* 
+ * This translates between character encodings. The results are put into
+ * `trans'. This call can be used repeatedly as new data arrives.
+ */
+static void Html_translate(DilloTrans *trans, char *buf, gint bufsize) {
+   char *source, *dest, *temp;
+   size_t s_left, d_left;
+   int bytesneeded;
+   
+   g_return_if_fail(trans && buf);
+   
+   /* is there nothing new? */
+   if (bufsize == trans->converted) {
+      if (bufsize == 0 && !trans->buffer) {
+         trans->buffer = g_new0(char,1); /* allocate if given empty input */
+         trans->bufsize = 0;
+      }
+      return; /* no new data */
+   }
+   
+   /* allocate a string, leaving enough space for worst-case growth */
+   
+   /* now the proper translation */
+   source = buf + trans->converted;
+   s_left = bufsize - trans->converted;
+   d_left = bufsize * D_CHAR_GROWTH;
+   temp = g_malloc(d_left + 1);
+   dest = temp;
+   a_I18n_iconv(trans->conversion,
+         &source, &s_left,
+         &dest, &d_left);
+   trans->converted = bufsize - s_left; /* note how far into the source */
+
+   /* now do the proper allocation */
+   bytesneeded = bufsize * D_CHAR_GROWTH - d_left;
+   if (!trans->buffer) {
+      trans->buffer = g_realloc(temp, bytesneeded + 1); /* cut to size */
+      trans->bufsize = bytesneeded;
+   } else {
+      trans->buffer = g_realloc(trans->buffer, trans->bufsize + bytesneeded + 1);
+      memcpy(trans->buffer + trans->bufsize, temp, bytesneeded + 1);
+      trans->bufsize += bytesneeded;
+      g_free(temp);
+   }
+}
+
+/*
+ * This sets up character encoding translation. It should be done once
+ * for each document that has to be translated.
+ * The inputs are iconv-style encoding names.
+ * This can return NULL if there is an error.
+ */
+static DilloTrans *Html_translation_new(char *source, char *dest) {
+   DilloTrans *trans;
+
+   g_return_val_if_fail(source && dest, NULL);
+   if (strncmp(source, "ASCII", 5) == 0) return NULL;
+
+   trans = g_new0(DilloTrans, 1);
+   trans->conversion = iconv_open(dest, source);
+   if (trans->conversion == (iconv_t)-1) {
+      g_warning (_("could not allocate character encoding converter"));
+      g_free(trans);
+      return NULL;
+   }
+   return trans;
+}
+
+/*
+ * This shuts down character encoding translation.
+ * Set the second parameter to true if you want to keep the translated buffer.
+ */
+static void Html_translation_free(DilloTrans *trans, gboolean keepbuf) {
+   if (!trans) return;
+   iconv_close(trans->conversion);
+   if (!keepbuf) g_free(trans->buffer);
+   g_free(trans);
+}
 
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/src/html.h dillo-0.8.6-i18n-misc-20060709/src/html.h
--- dillo-0.8.6/src/html.h	2006-01-14 01:05:20.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/html.h	2006-05-16 01:21:09.000000000 +0900
@@ -1,10 +1,11 @@
 #ifndef __HTML_H__
 #define __HTML_H__
 
+#include <iconv.h>
 #include <gdk/gdk.h>
 #include <gtk/gtkcontainer.h>
 
-#include "browser.h"         /* for BrowserWindow */
+#include "browser.h"         /* for DilloDoc */
 #include "dw_widget.h"       /* for DwWidget */
 #include "dw_image.h"        /* for DwImageMapList */
 
@@ -18,6 +19,9 @@ extern "C" {
    likely that imagemaps will go here. */
 
 typedef struct _DilloHtmlLB      DilloHtmlLB;
+#ifdef ENABLE_META_REFRESH
+typedef struct _DilloHtmlMetaRefreshData DilloHtmlMetaRefreshData;
+#endif
 
 typedef struct _DilloHtml        DilloHtml;
 typedef struct _DilloHtmlClass   DilloHtmlClass;
@@ -26,10 +30,11 @@ typedef struct _DilloHtmlForm    DilloHt
 typedef struct _DilloHtmlOption  DilloHtmlOption;
 typedef struct _DilloHtmlSelect  DilloHtmlSelect;
 typedef struct _DilloHtmlInput   DilloHtmlInput;
+typedef struct _DilloTrans       DilloTrans;
 
 
 struct _DilloHtmlLB {
-   BrowserWindow *bw;
+   DilloDoc *dd;
    DilloUrl *base_url;
 
    DilloHtmlForm *forms;
@@ -47,8 +52,22 @@ struct _DilloHtmlLB {
 
    gint num_page_bugs;
    GString *page_bugs;
+
+   gchar *charset;
+   gboolean usingMetaCharset;
+   gchar lang[6];
+#ifdef ENABLE_META_REFRESH
+   gint *meta_refresh;
+#endif
 };
 
+#ifdef ENABLE_META_REFRESH
+struct _DilloHtmlMetaRefreshData {
+   DilloHtmlLB *lb;
+   int html_dead;
+   DilloUrl *url;
+};
+#endif
 
 typedef enum {
    DT_NONE,
@@ -88,6 +107,12 @@ typedef enum {
    DILLO_HTML_TABLE_MODE_TD     /* inside of <td> */
 } DilloHtmlTableMode;
 
+typedef enum {
+   DILLO_HTML_FRAME_MODE_NONE,     /* no frameset at all */
+   DILLO_HTML_FRAME_MODE_IFRAME,   /* inside of <iframe> */
+   DILLO_HTML_FRAME_MODE_FRAMESET, /* inside of <frameset> */
+   DILLO_HTML_FRAME_MODE_NOFRAMES  /* inside of <noframes> */
+} DilloHtmlFrameMode;
 
 typedef enum {
    IN_HTML        = 1 << 0,
@@ -98,7 +123,8 @@ typedef enum {
    IN_TEXTAREA    = 1 << 5,
    IN_MAP         = 1 << 6,
    IN_PRE         = 1 << 7,
-   IN_BUTTON      = 1 << 8
+   IN_BUTTON      = 1 << 8,
+   IN_FRAMESET    = 1 << 9
 } DilloHtmlProcessingState;
 
 
@@ -107,6 +133,8 @@ struct _DilloHtmlState {
    DwStyle *style, *table_cell_style;
    DilloHtmlParseMode parse_mode;
    DilloHtmlTableMode table_mode;
+   DilloHtmlFrameMode frame_mode;
+   GtkWidget *frameset;
    gboolean cell_text_align_set;
    enum { HTML_LIST_NONE, HTML_LIST_UNORDERED, HTML_LIST_ORDERED } list_type;
    gint list_number;
@@ -135,14 +163,10 @@ typedef enum {
    DILLO_HTML_METHOD_POST
 } DilloHtmlMethod;
 
-typedef enum {
-   DILLO_HTML_ENC_URLENCODING
-} DilloHtmlEnc;
-
 struct _DilloHtmlForm {
    DilloHtmlMethod method;
    DilloUrl *action;
-   DilloHtmlEnc enc;
+   gchar *charset;
 
    DilloHtmlInput *inputs;
    gint num_inputs;
@@ -196,12 +220,24 @@ struct _DilloHtmlInput {
    gboolean init_val; /* only meaningful for buttons */
 };
 
+/* This is used when converting from one character encoding to another */
+struct _DilloTrans {
+   iconv_t conversion; /* iconv conversion handler */
+   char *buffer; /* The converted string. This moves about!! */
+   int bufsize; /* Current length of the buffer, excluding NULL. */
+   int converted; /* number of input bytes converted */
+};
+
 struct _DilloHtml {
    DwWidget *dw;          /* this is duplicated in the stack (page) */
+   DilloTrans *trans;    /* handle for character set conversion */
+   gchar *server_charset;
+   gchar *lang;
 
    DilloHtmlLB *linkblock;
    gchar *Start_Buf;
    size_t Start_Ofs;
+   size_t Buf_Size;
    size_t CurrTagOfs;
    size_t OldTagOfs, OldTagLine;
 
@@ -235,7 +271,7 @@ struct _DilloHtml {
 
    GString *attr_data;
 
-   BrowserWindow *bw;
+   DilloDoc *dd;
 };
 
 #ifdef __cplusplus
diff -pruN dillo-0.8.6/src/i18n.c dillo-0.8.6-i18n-misc-20060709/src/i18n.c
--- dillo-0.8.6/src/i18n.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/i18n.c	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,662 @@
+/*
+ * File: i18n.c
+ *
+ * Copyright (C) 2003 Kiyo <kiyo@teki.jpn.ph>
+ * This code referred to Mr. Robert Thomson's code. and created it.
+ * 
+ * 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.
+ */
+
+/*
+ * guess encoding charset and convert
+ */
+
+#include <config.h>
+#include <ctype.h>
+#include <string.h>
+#include <glib.h>
+#include <errno.h>    /* for iconv error codes */
+#include <iconv.h>
+
+#include "intl.h"
+#include "misc.h"
+#include "msg.h"
+#include "i18n.h"
+
+//#define DEBUG_LEVEL 10
+#include "debug.h"
+
+#define MIN_HEADER_LENGTH (gint)(sizeof("<head><meta http-equiv=\"content-type\"" \
+                                       " content=\"text/html\"; charset=></head>") - 1)
+#define MAX_HEADER_LENGTH 10240
+
+typedef enum {
+   AD_NONE,
+   AD_CHINESE,
+   AD_KOREAN,
+   AD_JAPANESE,
+   AD_ALL
+} I18nAutoDetectionType;
+   
+static gchar *default_lang;
+static gchar *dw_charset;
+static I18nAutoDetectionType detect_type;
+static gboolean use_CJK_charset;
+
+typedef struct {
+   gchar *lang;
+   gchar *charset;
+} lang_charset;
+
+#define LANG_TBL_N 59
+static lang_charset lang_tbl[LANG_TBL_N] = {
+   {"ZH_TW",	"BIG5"},
+   {"ZH_HK",	"BIG5HKSCS"},
+   {"ZH_CN",	"GBK"},
+   {"YI",	"CP1255"},
+   {"VI",	"TCVN"},
+   {"UR",	"CP1256"},
+   {"UK",	"KOI8-U"},
+   {"TURKISH",	"ISO8859-9"},
+   {"TT",	"TATAR-CYR"},
+   {"TR",	"ISO8859-9"},
+   {"TG",	"KOI8-C"},
+   {"TA",	"TSCII-0"},
+   {"SR_SP",	"ISO8859-2"},
+   {"SR",	"ISO8859-5"},
+   {"SQ",	"ISO8859-2"},
+   {"SP",	"ISO8859-5"},
+   {"SL",	"ISO8859-2"},
+   {"SK",	"ISO8859-2"},
+   {"SH",	"ISO8859-2"},
+   {"SE_NO",	"UTF-8"},
+   {"SERBOCROATIAN",	"ISO8859-2"},
+   {"RU_UA",	"KOI8-U"},
+   {"RU_RU",	"KOI8-R"},
+   {"RUSSIAN",	"ISO8859-5"},
+   {"RUMANIAN",	"ISO8859-2"},
+   {"RU",	"KOI8-R"},
+   {"RO",	"ISO8859-2"},
+   {"POSIX",	"C"},
+   {"POLISH",	"ISO8859-2"},
+   {"PL",	"ISO8859-2"},
+   {"MT",	"ISO8859-3"},
+   {"MK",	"ISO8859-5"},
+   {"LO",	"MULELAO-1"},
+   {"KO",	"EUCKR"},
+   {"KA",	"GEORGIAN-ACADEMY"},
+   {"JP_JP",	"EUCJP"},
+   {"JA",	"EUCJP"},
+   {"IW",	"ISO8859-8"},
+   {"IU",	"NUNACOM-8"},
+   {"HY",	"ARMSCII-8"},
+   {"HU",	"ISO8859-2"},
+   {"HR",	"ISO8859-2"},
+   {"HI",	"ISCII-DEV"},
+   {"HE",	"ISO8859-8"},
+   {"GREEK",	"ISO8859-7"},
+   {"FA",	"UTF-8"},
+   {"EO",	"ISO8859-3"},
+   {"EL",	"ISO8859-7"},
+   {"EE",	"ISO8859-4"},
+   {"CZ",	"ISO8859-2"},
+   {"CS",	"ISO8859-2"},
+   {"CROATIAN",	"ISO8859-2"},
+   {"CHINESE-T",	"EUCTW"},
+   {"CHINESE-S",	"EUCCN"},
+   {"BE",	"CP1251"},
+   {"AZ",	"ISO8859-9E"},
+   {"AR",	"ISO8859-6"},
+   {"AM",	"UTF-8"},
+   {"A3",	"KOI8-C"},
+};
+
+static gchar *I18n_get_charset_from_lang(const gchar *lang)
+{
+   gint i;
+   gchar u_lang[64];
+
+   strncpy(u_lang, lang, 64);
+   g_strup(u_lang);
+   if (strstr(u_lang, "EURO")) return g_strdup("ISO8859-15");
+   for (i = 0; i < LANG_TBL_N; i++) {
+      if (strncmp(u_lang, lang_tbl[i].lang, strlen(lang_tbl[i].lang)) == 0)
+         return g_strdup(lang_tbl[i].charset);
+   }
+   return g_strdup("ISO8859-1");
+}
+
+void a_I18n_detect_DW_locale()
+{
+   char *lang;
+
+   lang = getenv("LC_CTYPE");
+   if (!lang || !*lang) lang = getenv("LC_ALL");
+   if (!lang || !*lang) lang = getenv("LANG");
+
+   detect_type = AD_NONE;
+   use_CJK_charset = FALSE;
+   if (!lang) {
+      dw_charset = g_strdup("ISO8859-1");
+      default_lang = g_strdup("en");
+      return;
+   }
+   if (g_strncasecmp(lang, "ZH", 2) == 0) {
+      detect_type = AD_CHINESE;
+      use_CJK_charset = TRUE; 
+   } else if (g_strncasecmp(lang, "KO", 2) == 0) {
+      detect_type = AD_KOREAN;
+      use_CJK_charset = TRUE; 
+   } else if (g_strncasecmp(lang, "JA", 2) == 0) {
+      detect_type = AD_JAPANESE;
+      use_CJK_charset = TRUE; 
+   }
+   if (strchr(lang, '.')) {
+      default_lang = g_strdup(lang);
+      strchr(default_lang, '.')[0] = 0;
+   } else {
+      default_lang = g_strdup(lang);
+   }
+   if (strchr(default_lang, '_')) {
+      strchr(default_lang, '_')[0] = '-';
+   }
+   
+   dw_charset = (strchr(lang, '.'))
+           ? a_I18n_fix_charset(g_strdup(strchr(lang, '.') + 1))
+           : I18n_get_charset_from_lang(lang);
+   if (!dw_charset) dw_charset = g_strdup(DILLO_CHARSET);
+}
+
+const gchar *a_I18n_get_DW_charset()
+{
+   return dw_charset;
+}
+
+/* If charset has latin1, return TRUE. */
+gboolean a_I18n_has_latin1_charset(gchar *lang)
+{
+   return (g_strncasecmp(lang, "ja", 2) != 0);
+}
+
+gchar *a_I18n_get_lang_from_charset(const gchar *charset)
+{
+   gchar *buf, *lang;
+   if (!charset) return NULL;
+
+   buf = g_strdup(charset);
+   g_strup(buf);
+   if (strcmp(buf, "ISO-8859-1") == 0 ||
+         strcmp(buf, "WINDOWS-1252") == 0) {
+      lang ="en"; /* af,sq,eu,ca,da,nl,fo,fi,fr,gl,de,is,ga,it */
+   } else if (strncmp(buf, "BIG", 3) == 0 ||
+         strcmp(buf, "EUC-TW") == 0) { 
+      lang ="zh-TW"; /* Traditional */
+   } else if (strncmp(buf, "GB", 2) == 0 ||
+         strcmp(buf, "EUC-CN") == 0) {
+      lang ="zh-CN"; /* Simplified */
+   } else if (strcmp(buf, "SJIS") == 0 ||
+         strncmp(buf, "SHIFT", 5) == 0 ||
+         strcmp(buf, "EUC-JP") == 0 ||
+         strcmp(buf, "ISO-2022-JP") == 0) {
+      lang ="ja";
+   } else if (strcmp(buf, "EUC-KR") == 0 ||
+         strcmp(buf, "ISO-2022-KR") == 0) {
+      lang ="ko";
+   } else if (strcmp(buf, "ISO-8859-2") == 0 ||
+         strcmp(buf, "WINDOWS-1250") == 0) {
+      lang ="hr"; /* sl */
+   } else if (strcmp(buf, "ISO-8859-3") == 0) {
+      lang ="eo"; /* mt */
+   } else if (strcmp(buf, "WINDOWS-874") == 0) {
+      lang ="th";
+   } else if (strcmp(buf, "WINDOWS-1251") == 0 ||
+         strcmp(buf, "KOI8-R") == 0) {
+      lang ="ru";
+   } else if (strcmp(buf, "ISO-8859-5") == 0 ||
+         strcmp(buf, "KOI8-U") == 0) {
+      lang ="uk";
+   } else if (strcmp(buf, "ISO-8859-6") == 0 ||
+         strcmp(buf, "WINDOWS-1256") == 0) {
+      lang ="ar";
+   } else if (strcmp(buf, "ISO-8859-7") == 0) {
+      lang ="el";
+   } else if (strcmp(buf, "ISO-8859-8") == 0) {
+      lang ="he";
+   } else if (strcmp(buf, "ISO-8859-9") == 0 ||
+         strcmp(buf, "WINDOWS-1254") == 0) {
+      lang ="tr";
+   } else if (strcmp(buf, "ISO-8859-13") == 0 ||
+         strcmp(buf, "WINDOWS-1257") == 0) {
+      lang ="lt"; /* lv */
+   } else if (strcmp(buf, "ISO-8859-15") == 0) {
+      lang = "et";
+/* eo es la ms ...
+   } else if (strncmp(buf, "", 1) == 0) {
+      lang = "";
+*/
+   } else {
+      lang = default_lang;
+   }
+   g_free(buf);
+
+   return g_strdup(lang);;
+}
+
+gboolean a_I18n_use_CJK_charset(gchar *lang)
+{
+   return (g_strncasecmp(lang, "zh", 2) == 0 ||
+         g_strncasecmp(lang, "ko", 2) == 0 ||
+         g_strncasecmp(lang, "ja", 2) == 0);
+}
+
+/* fix name Html_charset to iconv_charset. for example "x-sjis" to "SJIS"... */
+/* TODO: remake this code! */
+gchar *a_I18n_fix_charset(gchar *charset)
+{
+   iconv_t it;
+   
+   if (!charset) return NULL;
+   g_strup(charset);
+   if (strchr(charset, '@'))
+      strchr(charset, '@')[0] = '\0';
+   if (strncmp(charset, "X-", 2) == 0) {
+      gchar *old_charset = charset;
+      charset = g_strdup(charset + 2);
+      g_free(old_charset);
+   }
+   /* Japan Only */
+   if (strcmp(charset, "SHIFTJIS") == 0) {
+      g_free(charset);
+      return g_strdup("SJIS");
+   }
+   /* Korea Only */
+   if (strcmp(charset, "KS_C_5601-1987") == 0) {
+      g_free(charset);
+      return g_strdup("EUC-KR");
+   }
+   if (strcmp(charset, "UNICODE-1-1-UTF-8") == 0) {
+      g_free(charset);
+      return g_strdup("UTF-8");
+   }
+   if (strchr(charset, '_')) {
+      strchr(charset, '_')[0] = '-';
+   }
+   if ((it = iconv_open(charset, charset)) == (iconv_t)-1) {
+      g_free(charset);
+      return NULL;
+   }
+   iconv_close(it);
+   return charset;
+}
+
+/* auto detect Chinese charset. -- GB2312,GBK,GB18030,HZ,ISO-2022-CN,
+ * Big5,Big5-HKSCS,EUC-CN,EUC-TW*/
+gchar *I18n_detect_chinese_charset(const gchar *buf, gint bufsize)
+{
+   /* TODO: implement this! */
+   return g_strdup(DW_CHARSET);
+}
+
+/* auto detect Korean charset. -- EUC-KR,UHC,JOHAB,ISO-2022-KR */
+gchar *I18n_detect_korean_charset(const gchar *buf, gint bufsize)
+{
+   /* TODO: implement this! */
+   return g_strdup(DW_CHARSET);
+}
+
+/* auto detect Japanese charset. -- Shift_JIS,EUC-JP,ISO-2022-JP */
+gchar *I18n_detect_japanese_charset(const gchar *buf, gint bufsize)
+{
+   gint i, got_sjis = 0, got_euc = 0, got_jis = 0;
+   if (!buf || bufsize == 0)
+      return g_strdup("SJIS");
+   
+   /* check CR code. */
+   if (strstr(buf, "\r"))
+      got_sjis += 2;
+         
+   for (i = 0; i < bufsize; i++) {
+      if (got_sjis > got_euc && got_sjis >= 40)
+         return g_strdup("SJIS");
+      else if (got_euc > got_sjis && got_euc >= 40)
+         return g_strdup("EUC-JP");
+      else if (got_jis > 3)
+         return g_strdup("ISO-2022-JP");
+      if (buf[i] == 0x1b) {
+         if (buf[i+1] == '$' || buf[i+1] == '(')
+            got_jis++;
+         else
+            got_jis--;
+      } else if (IS_ASCII_CHAR(buf[i])) continue;
+      _MSG("e=%d s=%d j=%d %d\n", got_euc, got_sjis, got_jis, i);
+      if (IS_SJIS_CHAR1(buf[i])) {
+         if(IS_SJIS_CHAR2(buf[i+1])) {
+            i++;
+            got_sjis += 2;
+            continue;
+         } else
+            got_euc += 2;
+      }
+      if (IS_EUC_CHAR(buf[i])) {
+         if (IS_EUC_CHAR(buf[i+1])) {
+            got_euc += 2;
+            i++;
+         } else got_sjis += 2;
+      }
+      if (i >= 1)
+         if (IS_HANKANA_CHAR(buf[i - 2])
+               && IS_HANKANA_CHAR(buf[i - 1])
+               && IS_HANKANA_CHAR(buf[i])) {
+            got_sjis++;
+            if (IS_HANKANA_CHAR(buf[i+1]))
+               got_sjis++;
+      }
+   }
+
+   _MSG(_("charset detect may mistake...\n"));
+   if (got_jis > 1)
+      return g_strdup("ISO-2022-JP");
+   if (got_sjis > got_euc)
+      return g_strdup("SJIS");
+   if (got_euc >= 1)
+      return g_strdup("EUC-JP");
+   
+   /* check CR code again... */
+   if (strstr(buf, "\r"))
+      return g_strdup("SJIS");
+   else
+      return g_strdup("EUC-JP");
+}
+
+static gchar *I18n_detect_utf8(const gchar *buf, gint bufsize)
+{
+   gint i, utf_count;
+
+   utf_count = 0;
+   for (i = 0; i < bufsize; i++) {
+      if (IS_UTF8_FIRST_CHAR(buf[i])) {
+         if (IS_ASCII_CHAR(buf[i + 1])) {
+            utf_count -= 8;
+         } else if (IS_UTF8_2BYTE_FIRST_CHAR(buf[i])) {
+            if (IS_UTF8_NON_FIRST_CHAR(buf[i + 1])
+                  && (IS_UTF8_FIRST_CHAR(buf[i + 2])
+                     || IS_ASCII_CHAR(buf[i + 2])))
+               utf_count++;
+            else
+               utf_count -= 8;
+         } else if (IS_UTF8_3BYTE_FIRST_CHAR(buf[i])) {
+            if (IS_UTF8_NON_FIRST_CHAR(buf[i + 1])
+                  && IS_UTF8_NON_FIRST_CHAR(buf[i + 2])
+                  && (IS_UTF8_FIRST_CHAR(buf[i + 3])
+                     || IS_ASCII_CHAR(buf[i + 3])))
+               utf_count += 2;
+            else
+               utf_count -= 8;
+         } else if (IS_UTF8_4BYTE_FIRST_CHAR(buf[i])
+               && IS_UTF8_NON_FIRST_CHAR(buf[i + 1])
+               && IS_UTF8_NON_FIRST_CHAR(buf[i + 2])
+               && IS_UTF8_NON_FIRST_CHAR(buf[i + 3])
+               && (IS_UTF8_FIRST_CHAR(buf[i + 4])
+                  || IS_ASCII_CHAR(buf[i + 4])))
+            utf_count += 3;
+         else
+            utf_count -= 8;
+         if (utf_count <= -16 || utf_count >= 16)
+            break;
+      }
+   }
+   if (utf_count >= 9)
+      return g_strdup("UTF-8");
+   return NULL;
+}
+
+gchar *a_I18n_get_charset_from_meta_tag(
+      const gchar *buf, gint bufsize)
+{
+   gchar *meta_buf, *meta_tag, *head_end, *meta_charset, *charset = NULL;
+   gint meta_buf_size, charset_len;
+
+   if (!buf || bufsize < MIN_HEADER_LENGTH)
+      return NULL;
+   
+   /* crate upper string */
+   if (bufsize > MAX_HEADER_LENGTH)
+      meta_buf_size = MAX_HEADER_LENGTH;
+   else
+      meta_buf_size = bufsize;
+   meta_buf = g_strndup(buf, meta_buf_size);
+   meta_buf[meta_buf_size - 1] = '\0';
+   g_strup(meta_buf);
+   
+   /* find meta-charset */
+   if (!((meta_tag = strstr(meta_buf, "<META "))
+      && (meta_tag += sizeof("<META ") - 1)
+      && (meta_charset = strstr(meta_tag, "CHARSET="))
+      && (strstr(meta_tag, "HTTP-EQUIV=\"CONTENT-TYPE")
+         || strstr(meta_tag, "HTTP-EQUIV=CONTENT-TYPE")))) {
+      g_free(meta_buf);
+      return NULL;
+   }
+   head_end = strstr(meta_tag, "</HEAD>");
+
+   /* check HTML code. */
+   if (meta_charset > head_end) {
+      MSG(_("<meta> outside of <head>!\n"));
+      //g_free(meta_buf);
+      //return NULL;
+   }
+
+   meta_charset += sizeof("CHARSET=") - 1;
+   if (meta_charset[0] == '"' || meta_charset[0] == '\'')
+      meta_charset++;
+   charset_len = strpbrk(meta_charset, "\"'/> ") - meta_charset;
+   if (charset_len > 0)
+      charset = g_strndup(meta_charset, charset_len);
+   g_free(meta_buf);
+   if (charset)
+      charset = a_I18n_fix_charset(charset);
+   if (charset && strncmp(charset, "UTF", 3) == 0
+         && (strncmp(charset, "UTF16", 5) == 0
+         || strncmp(charset, "UTF-16", 6) == 0
+         || strncmp(charset,  "UTF32", 5) == 0
+         || strncmp(charset, "UTF-32", 6) == 0))
+      return NULL;
+   return charset;
+}
+
+/** get encoding charset.
+ * buf     : check target buffer.
+ * bufsize : buf's size.
+ * return  : charset
+ */
+gchar *a_I18n_get_encoding(const gchar *buf, gint bufsize)
+{
+   gchar *charset;
+
+   if (!buf) return NULL;
+   if (bufsize == 0) return g_strdup("");
+
+   /* skip ascii char */
+   {
+      gint i, old_bufsize = bufsize;
+      for (i = 0; i < old_bufsize; i++) {
+         if (IS_ASCII_CHAR(buf[0])
+               && buf[0] != 0x1b) { //for ISO-2022-* detect
+            buf++;
+            bufsize--;
+         } else break;
+      }
+      if (bufsize == 0) {
+         _MSG(_("all ascii code\n"));
+         return g_strdup("ASCII");
+      }
+   }
+
+   /* Check UTF-8 code. */
+   charset = I18n_detect_utf8(buf, bufsize);
+   if (charset) return charset;
+
+   switch (detect_type) {
+      case AD_ALL:
+         /* TODO: implement this! */
+      case AD_CHINESE:
+         return I18n_detect_chinese_charset(buf, bufsize);
+      case AD_KOREAN:
+         return I18n_detect_korean_charset(buf, bufsize);
+      case AD_JAPANESE:
+         return I18n_detect_japanese_charset(buf, bufsize);
+      case AD_NONE:
+      default:
+         return g_strdup(DW_CHARSET);
+   }
+}
+
+/* [hack] iconv with error recovery */
+size_t a_I18n_iconv(iconv_t cd,
+      char **inbuf, size_t *inbytesleft,
+      char **outbuf, size_t *outbytesleft)
+{
+   size_t error_count = 0;
+   
+   if (iconv(cd, inbuf, inbytesleft, outbuf, outbytesleft)
+       == (size_t)-1 && errno != EINVAL) {
+      _MSG(_("unable to fully convert between character encodings\n"));
+      /*
+       * This just skips past unconvertable characters, putting white square
+       * in the output, then retries the conversion.
+       */
+      while ((int)*inbytesleft > 0 && (int)*outbytesleft > 0
+            && errno == EILSEQ) {
+         error_count++;
+         (*outbuf)[0]   = '['; /* white square */
+         (*outbuf)[1]   = ']';
+         *outbuf       += 2;
+         *outbytesleft -= 2;
+         *inbuf        += 2;
+         *inbytesleft  -= 2;
+         if ((int)*inbytesleft > 0 && (int)*outbytesleft > 0)
+            iconv(cd, inbuf, inbytesleft, outbuf, outbytesleft);
+      }
+   }
+   *outbuf[0] = '\0';
+   return error_count;
+}
+
+
+/* Charset Transrate. for the part which gives priority to speed.*/
+gchar *a_I18n_convert_raw(iconv_t *it, const gchar* buf, size_t bufsize)
+{
+   size_t outLeft, outSize;
+   gchar *outStart, *in, *out;
+
+   outLeft = bufsize * D_CHAR_GROWTH;
+   outSize = outLeft + 1;
+   if (!buf) return NULL;
+   if (bufsize == 0) return g_strdup("");
+
+   outStart = (gchar *)g_malloc(outSize);
+   in  = (gchar *)buf;
+   out = outStart;
+
+   if (!*it || *it==(iconv_t)-1) {
+      g_warning(_("no support enc\n"));
+      *it = iconv_open("ASCII", DILLO_CHARSET);
+   }
+   a_I18n_iconv(*it, &in, &bufsize, &out, &outLeft);
+   _MSG("free %d bytes.\n", outSize - outLeft);
+   return outStart = g_realloc(outStart, outSize - outLeft);
+}
+
+/* Charset Transrate. for simple text or string.
+ * if buf is nul-terminated, can set bufsize -1 */
+gchar *a_I18n_convert(
+      const gchar* from, const gchar* to,
+      const gchar* buf, gint bufsize)
+{
+   iconv_t it;
+   gchar *outBuf;
+   gint len;
+
+   if (!buf) return NULL;
+   if (bufsize == 0) return g_strdup("");
+   g_return_val_if_fail(from && to, g_strndup(buf, bufsize));
+   len = (bufsize == -1) ? (gint)strlen(buf) : bufsize;
+   if (len < 0) {
+      MSG("a_I18n_convert: bufsize < 0\n");
+      return g_strdup(buf);
+   }
+   it = iconv_open(to, from);
+   outBuf = a_I18n_convert_raw(&it, buf, len);
+   iconv_close(it);
+   return outBuf;
+}
+
+/* Convert to Toolkit's charset. */
+gchar *a_I18n_DW_CHARSET_from_DILLO_CHARSET(const gchar* buf, gint bufsize)
+{
+   return a_I18n_convert(DILLO_CHARSET, DW_CHARSET, buf, bufsize);
+}
+
+/* Convert to internal charset. */
+gchar *a_I18n_DW_CHARSET_to_DILLO_CHARSET(const gchar* buf, gint bufsize)
+{
+   return a_I18n_convert(DW_CHARSET, DILLO_CHARSET, buf, bufsize);
+}
+
+/* For gettext string. */
+gchar *a_I18n_locale_to_DILLO_CHARSET(const gchar* buf)
+{
+   return a_I18n_convert(LOCALE_CHARSET, DILLO_CHARSET, buf, -1);
+}
+
+/* mblen() only for UTF-8 stream.
+ * return multibyte char size. */
+gint a_I18n_mblen(gchar *str)
+{
+   if (IS_UTF8_3BYTE_FIRST_CHAR(str[0])) {
+      if (IS_UTF8_NON_FIRST_CHAR(str[1]))
+         if (IS_UTF8_NON_FIRST_CHAR(str[2]))
+            return 3;
+   } else if(IS_UTF8_2BYTE_FIRST_CHAR(str[0])) {
+      if (IS_UTF8_NON_FIRST_CHAR(str[1]))
+         return 2;
+   } else if(IS_UTF8_4BYTE_FIRST_CHAR(str[0])) {
+      if (IS_UTF8_NON_FIRST_CHAR(str[1]))
+         if (IS_UTF8_NON_FIRST_CHAR(str[2]))
+            if (IS_UTF8_NON_FIRST_CHAR(str[3]))
+               return 4;
+   }
+   return 0;
+}
+
+/*
+ * check invalid string, and repair.
+ */
+gchar *a_I18n_string_check(const gchar *input, const gchar *charset)
+{
+   gint i, len;
+   gchar *ret, *str;
+   GString *out = g_string_new("");
+   
+   /* convert to same charset.
+    * invalid chars will be replaced to white square. */
+   str = a_I18n_convert(charset, charset, input, -1);
+   len = (str) ? strlen(str) : 0;
+
+   /* skip white square. */
+   for(i = 0; i < len; i++) {
+      if ((guchar)str[i] == '[' && (guchar)str[i+1] == ']')
+         i++;
+      else
+         g_string_append_c(out, str[i]);
+   }
+   g_free(str);
+   ret = out->str;
+   g_string_free(out, FALSE);
+   return ret;
+}
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/src/i18n.h dillo-0.8.6-i18n-misc-20060709/src/i18n.h
--- dillo-0.8.6/src/i18n.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/i18n.h	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,71 @@
+#ifndef __I18N_H__
+#define __I18N_H__
+
+#include <gtk/gtk.h>
+#include <stdlib.h> /* for getenv() */
+#include <iconv.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define IS_ASCII_CHAR(c) (!(((unsigned char)(c)) & 0x80))
+
+#define IS_UTF8_FIRST_CHAR(c) ((((unsigned char)(c)) >> 6) == 0x03)
+#define IS_UTF8_NON_FIRST_CHAR(c) ((((unsigned char)(c)) >> 6) == 0x02)
+#define IS_UTF8_2BYTE_FIRST_CHAR(c) ((((unsigned char)(c)) >> 5) == 0x06)
+#define IS_UTF8_3BYTE_FIRST_CHAR(c) ((((unsigned char)(c)) >> 4) == 0x0E)
+#define IS_UTF8_4BYTE_FIRST_CHAR(c) ((((unsigned char)(c)) >> 3) == 0x1E)
+
+#define IS_HANKANA_CHAR(c) \
+   (((unsigned char)(c))>=0xa1 && ((unsigned char)(c))<=0xdf)
+
+#define IS_EUC_CHAR(c) \
+((((unsigned char)(c))>=0xa0 && ((unsigned char)(c))<=0xfe) \
+   || ((unsigned char)(c) == 0x8E)) //half width katakana
+
+#define IS_SJIS_CHAR1(c) \
+   ((((unsigned char)(c))>=0x81 && ((unsigned char)(c))<=0x9f) \
+    || (((unsigned char)(c))>=0xe0 && ((unsigned char)(c))<=0xef))
+#define IS_SJIS_CHAR2(c) \
+   (((unsigned char)(c))>=0x40 && ((unsigned char)(c))<=0xfc)
+
+#define DILLO_CHARSET "UTF-8"
+#define D_CHAR_GROWTH 3
+#define LOCALE_CHARSET (a_I18n_get_DW_charset())
+#define DW_CHARSET LOCALE_CHARSET
+#ifndef DISABLE_ANTI_ALIAS
+ #define RENDER_CHARSET "UTF-8"
+#else
+ #define RENDER_CHARSET DW_CHARSET
+#endif
+
+void   a_I18n_detect_DW_locale();
+const gchar *a_I18n_get_DW_charset();
+gboolean a_I18n_has_latin1_charset(gchar *lang);
+gboolean a_I18n_use_CJK_charset(gchar *lang);
+gchar *a_I18n_get_lang_from_charset(const gchar *charset);
+gchar *a_I18n_fix_charset(gchar *charset);
+gchar *a_I18n_get_charset_from_meta_tag(const gchar *buf, gint bufsize);
+gchar *a_I18n_get_encoding(const gchar *buf, gint bufsize);
+size_t a_I18n_iconv(iconv_t cd,
+      char **inbuf, size_t *inbytesleft,
+      char **outbuf, size_t *outbytesleft);
+gchar *a_I18n_convert_raw(iconv_t *it, const gchar* buf, size_t bufsize);
+gchar *a_I18n_convert(const gchar* from, const gchar* to, const gchar* buf, gint bufsize);
+gint a_I18n_mblen(gchar *str);
+gchar *a_I18n_string_check(const gchar *input, const gchar *charset);
+gchar *a_I18n_DW_CHARSET_from_DILLO_CHARSET(const gchar* buf, gint bufsize);
+gchar *a_I18n_DW_CHARSET_to_DILLO_CHARSET(const gchar* buf, gint bufsize);
+gchar *a_I18n_locale_to_DILLO_CHARSET(const gchar* buf);
+#define a_I18n_locale_from_DILLO_CHARSET \
+        a_I18n_DW_CHARSET_from_DILLO_CHARSET
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /* __I18N_H__ */
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/src/i18n_gtk.c dillo-0.8.6-i18n-misc-20060709/src/i18n_gtk.c
--- dillo-0.8.6/src/i18n_gtk.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/i18n_gtk.c	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,128 @@
+/*
+ * File: i18n_gtk.c
+ *
+ * Copyright (C) 2003 Kiyo <kiyo@teki.jpn.ph>
+ *
+ * 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.
+ */
+/* gtk+ UTF-8 wrapper. */
+#include <string.h>
+#include <gtk/gtk.h>
+#include "i18n_gtk.h"
+#include "i18n.h"
+
+#ifndef DISABLE_I18N
+GtkWidget*  a_I18n_gtk_label_new (const gchar *str) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(str, -1);
+    GtkWidget* widget = gtk_label_new(locale_str);
+    g_free(locale_str);
+    return widget;
+}
+
+void a_I18n_gtk_label_set_text(GtkLabel *label, const gchar *str) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(str, -1);
+    gtk_label_set_text(label, locale_str);
+    g_free(locale_str);
+}
+
+void a_I18n_gtk_window_set_title(GtkWindow *window, const gchar *title) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(title, -1);
+    gtk_window_set_title(window, locale_str);
+    g_free(locale_str);
+}
+
+gchar* a_I18n_gtk_editable_get_chars(GtkEditable *editable,
+					gint start_pos, gint end_pos) {
+    gchar *locale_str = gtk_editable_get_chars(editable, start_pos, end_pos);
+    gchar *utf8_str = a_I18n_locale_to_DILLO_CHARSET(locale_str);
+    g_free(locale_str);
+    return utf8_str;
+}
+
+void a_I18n_gtk_editable_insert_text(GtkEditable *editable,
+					const gchar *new_text, gint new_text_length,
+					gint *position) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(new_text,
+            new_text_length);
+    gtk_editable_insert_text(editable,
+            locale_str, (!locale_str) ? 0 : strlen(locale_str), position);
+    g_free(locale_str);
+}
+
+GtkWidget* a_I18n_gtk_radio_menu_item_new_with_label(GSList *group,
+        const gchar *label) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(label, -1);
+    GtkWidget* widget = gtk_radio_menu_item_new_with_label(group, locale_str);
+    g_free(locale_str);
+    return widget;
+}
+
+GtkWidget* a_I18n_gtk_list_item_new_with_label(const gchar *label) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(label, -1);
+    GtkWidget* widget = gtk_list_item_new_with_label(locale_str);
+    g_free(locale_str);
+    return widget;
+}
+
+void a_I18n_gtk_text_insert(GtkText *text, GdkFont *font,
+				     GdkColor *fore, GdkColor *back,
+				     const char *chars, gint length) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(chars, length);
+    gtk_text_insert(text, font, fore, back, locale_str,
+            (!locale_str) ? 0 : strlen(locale_str));
+    g_free(locale_str);
+}
+
+GtkWidget* a_I18n_gtk_button_new_with_label(const gchar *label) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(label, -1);
+    GtkWidget* widget = gtk_button_new_with_label(locale_str);
+    g_free(locale_str);
+    return widget;
+}
+
+void a_I18n_gtk_entry_set_text(GtkEntry *entry, const gchar *text) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(text, -1);
+    gtk_entry_set_text(entry, (locale_str)? locale_str : "");
+    g_free(locale_str);
+}
+
+gchar* a_I18n_gtk_entry_get_text(GtkEntry *entry) {
+    gchar *locale_str = gtk_entry_get_text(entry);
+    gchar *utf8_str = a_I18n_locale_to_DILLO_CHARSET(locale_str);
+    return utf8_str;
+}
+
+GtkWidget* a_I18n_gtk_menu_item_new_with_label(const gchar *label) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(label, -1);
+    GtkWidget* widget = gtk_menu_item_new_with_label(locale_str);
+    g_free(locale_str);
+    return widget;
+}
+
+void a_I18n_gdk_draw_string (GdkDrawable *drawable,
+        GdkFont *font,
+        GdkGC *gc,
+        gint x,
+        gint y,
+        const gchar *string) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(string, -1);
+    gdk_draw_string (drawable, font, gc, x, y, locale_str);   
+    g_free(locale_str);
+}
+
+gint a_I18n_gdk_text_width (GdkFont *font,
+        const gchar *text, gint text_length) {
+    gchar *locale_str = a_I18n_locale_from_DILLO_CHARSET(text,
+            text_length);
+    gint len;
+    if (!locale_str) return 0;
+    len = gdk_text_width(font, locale_str, strlen(locale_str));
+    g_free(locale_str);
+    return len;
+}
+
+#endif /* DISABLE_I18n */
+
diff -pruN dillo-0.8.6/src/i18n_gtk.h dillo-0.8.6-i18n-misc-20060709/src/i18n_gtk.h
--- dillo-0.8.6/src/i18n_gtk.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/i18n_gtk.h	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,67 @@
+#ifndef __GTK_I18N__
+#define __GTK_I18N__
+
+#include <gtk/gtk.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+//#define DISABLE_I18N
+#ifndef DISABLE_I18N
+
+/* GTK */
+GtkWidget*  a_I18n_gtk_label_new (const gchar *str);
+void a_I18n_gtk_label_set_text (GtkLabel *label, const gchar *str);
+void a_I18n_gtk_window_set_title (GtkWindow *window, const gchar *title);
+gchar* a_I18n_gtk_editable_get_chars (GtkEditable *editable,
+					gint start_pos, gint end_pos);
+void a_I18n_gtk_editable_insert_text (GtkEditable *editable,
+					const gchar *new_text, gint new_text_length,
+					gint *position);
+GtkWidget* a_I18n_gtk_radio_menu_item_new_with_label (GSList *group,
+        const gchar *label);
+GtkWidget* a_I18n_gtk_list_item_new_with_label (const gchar *label);
+void a_I18n_gtk_text_insert (GtkText *text, GdkFont *font,
+				     GdkColor *fore, GdkColor *back,
+				     const char *chars, gint length);
+GtkWidget* a_I18n_gtk_button_new_with_label (const gchar *label);
+void a_I18n_gtk_entry_set_text (GtkEntry *entry, const gchar *text);
+gchar* a_I18n_gtk_entry_get_text (GtkEntry *entry);
+GtkWidget* a_I18n_gtk_menu_item_new_with_label (const gchar *label);
+
+/* GDK */
+void a_I18n_gdk_draw_string (GdkDrawable *drawable,
+        GdkFont *font,
+        GdkGC *gc,
+        gint x,
+        gint y,
+        const gchar *string);
+gint a_I18n_gdk_text_width (GdkFont *font,
+        const gchar *text, gint text_length);
+
+#else
+#define a_I18n_gtk_label_new gtk_label_new
+#define a_I18n_gtk_label_set_text gtk_label_set_text
+#define a_I18n_gtk_window_set_title gtk_window_set_title
+#define a_I18n_gtk_editable_get_chars gtk_editable_get_chars
+#define a_I18n_gtk_editable_insert_text gtk_editable_insert_text
+#define a_I18n_gtk_radio_menu_item_new_with_label \
+        gtk_radio_menu_item_new_with_label
+#define a_I18n_gtk_list_item_new_with_label gtk_list_item_new_with_label
+#define a_I18n_gtk_text_insert gtk_text_insert
+#define a_I18n_gtk_button_new_with_label gtk_button_new_with_label
+#define a_I18n_gtk_entry_set_text gtk_entry_set_text
+#define a_I18n_gtk_entry_get_text gtk_entry_get_text
+#define a_I18n_gtk_menu_item_new_with_label gtk_menu_item_new_with_label
+#define a_I18n_gdk_draw_string gdk_draw_string 
+#define a_I18n_gdk_text_width gdk_text_width
+#endif /* DISABLE_I18n */
+
+#define a_I18n_gtk_label_set a_I18n_gtk_label_set_text
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __GTK_I18N__ */
diff -pruN dillo-0.8.6/src/image.c dillo-0.8.6-i18n-misc-20060709/src/image.c
--- dillo-0.8.6/src/image.c	2005-10-28 01:20:13.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/image.c	2006-05-16 01:21:09.000000000 +0900
@@ -51,7 +51,7 @@ DilloImage *a_Image_new(gint width,
    Image->State = IMG_Empty;
 
    Image->RefCount = 1;
-
+ 
    return Image;
 }
 
diff -pruN dillo-0.8.6/src/interface.c dillo-0.8.6-i18n-misc-20060709/src/interface.c
--- dillo-0.8.6/src/interface.c	2005-12-02 21:40:44.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/interface.c	2006-07-09 00:46:26.000000000 +0900
@@ -20,18 +20,24 @@
 #include <sys/time.h>
 #include <fcntl.h>
 
+#include "intl.h"
 #include "msg.h"
 #include "list.h"
 #include "misc.h"
+#include "i18n.h"
+#include "i18n_gtk.h"
 #include "dillo.h"
 #include "history.h"
 #include "nav.h"
+#include "doc.h"
 #include "IO/Url.h"
 #include "IO/IO.h"
 #include "interface.h"
+#ifndef DISABLE_TABS
+#include "tab.h"
+#endif /* !DISABLE_TABS */
 #include "commands.h"
 #include "menu.h"
-#include "bookmark.h"
 #include "prefs.h"
 #include "url.h"
 #include "capi.h"
@@ -52,6 +58,7 @@
 #include "debug.h"
 
 
+void Interface_add_search_dialog(BrowserWindow *bw);
 /*
  * Local Data
  */
@@ -69,6 +76,8 @@ static gchar *open_dialog_last_dirname =
 /* save dialog last dir */
 static gchar *save_dialog_last_dirname = NULL;
 
+/* Keep to close find_text_dialog. */
+static GtkWidget *find_text_window;
 
 /*
  * Initialize global data
@@ -83,93 +92,8 @@ void a_Interface_init(void)
    save_dialog_last_dirname = NULL;
 }
 
-/*
- * Stop all active connections in the browser window (except downloads)
- */
-void a_Interface_stop(BrowserWindow *bw)
-{
-   DEBUG_MSG(3, "a_Interface_stop: hi!\n");
-
-   /* Remove root clients */
-   while ( bw->NumRootClients ) {
-      a_Cache_stop_client(bw->RootClients[0]);
-      a_List_remove(bw->RootClients, 0, bw->NumRootClients);
-   }
-   /* Remove image clients */
-   while ( bw->NumImageClients ) {
-      a_Cache_stop_client(bw->ImageClients[0]);
-      a_List_remove(bw->ImageClients, 0, bw->NumImageClients);
-   }
-}
-
-/*
- * Empty RootClients, ImageClients and PageUrls lists and
- * reset progress bar data.
- */
-void a_Interface_clean(BrowserWindow *bw)
-{
-   g_return_if_fail ( bw != NULL );
-
-   while ( bw->NumRootClients )
-      a_List_remove(bw->RootClients, 0, bw->NumRootClients);
-
-   while ( bw->NumImageClients )
-      a_List_remove(bw->ImageClients, 0, bw->NumImageClients);
-
-   while ( bw->NumPageUrls ) {
-      a_Url_free(bw->PageUrls[0].Url);
-      a_List_remove(bw->PageUrls, 0, bw->NumPageUrls);
-   }
-
-   /* Zero image-progressbar data */
-   bw->NumImages = 0;
-   bw->NumImagesGot = 0;
-}
-
 /*=== Browser Window Interface Updating =====================================*/
 /*
- * Remove the cache-client from the bw list
- * (client can be a image or a html page)
- */
-void a_Interface_remove_client(BrowserWindow *bw, gint ClientKey)
-{
-   gint i;
-   gboolean Found = FALSE;
-
-   for ( i = 0; !Found && i < bw->NumRootClients; ++i)
-      if ( bw->RootClients[i] == ClientKey ) {
-         a_List_remove(bw->RootClients, i, bw->NumRootClients);
-         Found = TRUE;
-      }
-
-   for ( i = 0; !Found && i < bw->NumImageClients; ++i)
-      if ( bw->ImageClients[i] == ClientKey ) {
-         a_List_remove(bw->ImageClients, i, bw->NumImageClients);
-         bw->NumImagesGot++;
-         Found = TRUE;
-      }
-
-   a_Interface_set_button_sens(bw);
-}
-
-/*
- * Remove the cache-client from the bw list
- * (client can be a image or a html page)
- */
-void a_Interface_close_client(BrowserWindow *bw, gint ClientKey)
-{
-   gchar numstr[32];
-
-   a_Interface_remove_client(bw, ClientKey);
-
-   /* --Progress bars stuff-- */
-   g_snprintf(numstr, 32, "%s%d of %d", PBAR_ISTR(prefs.panel_size == 1),
-              bw->NumImagesGot, bw->NumImages);
-   a_Progressbar_update(bw->imgprogress, numstr,
-                        (bw->NumImagesGot == bw->NumImages) ? 0 : 1 );
-}
-
-/*
  * Set the sensitivity on back/forw buttons and menu entries.
  */
 static gint Interface_sens_idle_func(BrowserWindow *bw)
@@ -177,16 +101,27 @@ static gint Interface_sens_idle_func(Bro
    gboolean back_sensitive, forw_sensitive, stop_sensitive;
 
    /* Stop button */
-   stop_sensitive = (bw->NumRootClients > 0);
+   stop_sensitive = (bw->dd->NumRootClients > 0);
    gtk_widget_set_sensitive(bw->stop_button, stop_sensitive);
 
+
    /* Back and Forward buttons */
-   back_sensitive = a_Nav_stack_ptr(bw) > 0;
+   back_sensitive = a_Nav_stack_ptr(bw->dd) > 0;
    gtk_widget_set_sensitive(bw->back_button, back_sensitive);
-   forw_sensitive = (a_Nav_stack_ptr(bw) < a_Nav_stack_size(bw) - 1 &&
-                     !bw->nav_expecting);
+   forw_sensitive = (a_Nav_stack_ptr(bw->dd) < a_Nav_stack_size(bw->dd) - 1 &&
+                     !bw->dd->nav_expecting);
    gtk_widget_set_sensitive(bw->forw_button, forw_sensitive);
 
+   if(prefs.show_popup_navigation) {
+     /* adjust popup menu buttons */
+     if (GTK_IS_WIDGET(bw->stop_op_menu_button))
+        gtk_widget_set_sensitive(bw->stop_op_menu_button, stop_sensitive);
+     if (GTK_IS_WIDGET(bw->back_op_menu_button))
+        gtk_widget_set_sensitive(bw->back_op_menu_button, back_sensitive);
+     if (GTK_IS_WIDGET(bw->forw_op_menu_button))
+        gtk_widget_set_sensitive(bw->forw_op_menu_button, forw_sensitive);
+   }
+
    bw->sens_idle_id = 0;
    return FALSE;
 }
@@ -202,85 +137,18 @@ void a_Interface_set_button_sens(Browser
 }
 
 /*
- * Add a reference to the cache-client in the browser window's list.
- * This helps us keep track of which are active in the window so that it's
- * possible to abort them.
- * (Root: Flag, whether a Root URL or not)
- */
-void a_Interface_add_client(BrowserWindow *bw, gint Key, gint Root)
-{
-   gint nc;
-   char numstr[32];
-
-   g_return_if_fail ( bw != NULL );
-
-   if ( Root ) {
-      nc = bw->NumRootClients;
-      a_List_add(bw->RootClients, nc, bw->MaxRootClients);
-      bw->RootClients[nc] = Key;
-      bw->NumRootClients++;
-      a_Interface_set_button_sens(bw);
-   } else {
-      nc = bw->NumImageClients;
-      a_List_add(bw->ImageClients, nc, bw->MaxImageClients);
-      bw->ImageClients[nc] = Key;
-      bw->NumImageClients++;
-      bw->NumImages++;
-      a_Interface_set_button_sens(bw);
-
-      /* --Progress bar stuff-- */
-      g_snprintf(numstr, 32, "%s%d of %d", PBAR_ISTR(prefs.panel_size == 1),
-                 bw->NumImagesGot, bw->NumImages);
-      a_Progressbar_update(bw->imgprogress, numstr, 1);
-   }
-}
-
-/*
- * Add an URL to the browser window's list.
- * This helps us keep track of page requested URLs so that it's
- * possible to stop, abort and reload them.)
- *   Flags: Chosen from {BW_Root, BW_Image, BW_Download}
- */
-void a_Interface_add_url(BrowserWindow *bw, const DilloUrl *Url, gint Flags)
-{
-   gint nu, i;
-   gboolean found = FALSE;
-
-   g_return_if_fail ( bw != NULL && Url != NULL );
-
-   nu = bw->NumPageUrls;
-   for ( i = 0; i < nu; i++ ) {
-      if ( !a_Url_cmp(Url, bw->PageUrls[i].Url) ) {
-         found = TRUE;
-         break;
-      }
-   }
-   if ( !found ) {
-      a_List_add(bw->PageUrls, nu, bw->MaxPageUrls);
-      bw->PageUrls[nu].Url = a_Url_dup(Url);
-      bw->PageUrls[nu].Flags = Flags;
-      bw->NumPageUrls++;
-   }
-
-   /* test:
-   MSG("Urls:\n");
-   for (i = 0; i < bw->NumPageUrls; i++)
-      MSG("%s\n", bw->PageUrls[i].Url);
-   MSG("---\n");
-   */
-}
-
-/*
- * Remove a single browser window. This includes all its open childs,
+ * Remove a single browser window. This includes all its open documents,
  * freeing all resources associated with them, and exiting gtk
  * if no browser windows are left.
  */
 static gboolean Interface_quit(GtkWidget *widget, BrowserWindow *bw)
 {
    gint i;
-
-   /* stop/abort open connections. */
-   a_Interface_stop(bw);
+   a_Interface_findtext_dialog_close();
+   /* destroy the container. It should take all its contents with
+    * it, relying on callbacks to destroy non-widget data
+    */
+   gtk_widget_destroy(GTK_WIDGET(bw->container));
 
    g_slist_free(bw->PanelHandles);
 
@@ -290,14 +158,16 @@ static gboolean Interface_quit(GtkWidget
       gtk_widget_destroy(bw->openfile_dialog_window);
    if (bw->quit_dialog_window != NULL)
       gtk_widget_destroy(bw->quit_dialog_window);
-   if (bw->findtext_dialog_window != NULL)
-      gtk_widget_destroy(bw->findtext_dialog_window);
+   if (bw->findtext_dialog != NULL)
+      gtk_widget_destroy(bw->findtext_dialog);
    if (bw->search_dialog_window != NULL)
       gtk_widget_destroy(bw->search_dialog_window);
    if (bw->proxy_passwd_dialog_window != NULL)
       gtk_widget_destroy(bw->proxy_passwd_dialog_window);
    if (bw->question_dialog_window != NULL)
       gtk_widget_destroy(bw->question_dialog_window);
+   if (bw->passwd_dialog_window != NULL)
+      gtk_widget_destroy(bw->passwd_dialog_window);
 
    if (bw->menu_popup.over_page)
       gtk_widget_destroy(bw->menu_popup.over_page);
@@ -310,29 +180,25 @@ static gboolean Interface_quit(GtkWidget
       gtk_widget_destroy(bw->menu_popup.over_forw);
    if (bw->menu_popup.over_bug)
       gtk_widget_destroy(bw->menu_popup.over_bug);
+#ifndef DISABLE_TABS
+   if (bw->menu_popup.over_tab)
+      gtk_widget_destroy(bw->menu_popup.over_tab);
+#endif /* !DISABLE_TABS */
    if (bw->menu_popup.url)
       a_Url_free(bw->menu_popup.url);
    if (bw->menu_popup.url2)
       a_Url_free(bw->menu_popup.url2);
-
+  
    if (bw->sens_idle_id)
       gtk_idle_remove(bw->sens_idle_id);
 
+
    for (i = 0; i < num_bw; i++)
       if (browser_window[i] == bw) {
          browser_window[i] = browser_window[--num_bw];
          break;
       }
 
-   /* free nav_stack and nav_expect stuff */
-   a_Nav_free(bw);
-
-   g_free(bw->RootClients);
-   g_free(bw->ImageClients);
-
-   for (i = 0; i < bw->NumPageUrls; i++)
-      a_Url_free(bw->PageUrls[i].Url);
-   g_free(bw->PageUrls);
    g_free(bw);
 
    if (num_bw == 0)
@@ -349,7 +215,7 @@ static gboolean Interface_quit(GtkWidget
  */
 static void Interface_entry_clear(GtkEntry *entry)
 {
-   gtk_entry_set_text(entry, "");
+   a_I18n_gtk_entry_set_text(entry, "");
    gtk_widget_grab_focus(GTK_WIDGET(entry));
 }
 
@@ -380,13 +246,14 @@ static void Interface_cub_selection_rece
    _MSG("Interface_cub_selection_received:\n");
 
    if (selection_data->length < 0) {
-       DEBUG_MSG (1, "Selection retrieval failed\n");
+       DEBUG_MSG (1, _("Selection retrieval failed\n"));
        return;
    }
-
-   damn_string = g_strndup((gchar *)selection_data->data,
+   
+   damn_string = a_I18n_locale_from_DILLO_CHARSET(
+                           (gchar *)selection_data->data,
                            selection_data->length);
-   gtk_entry_set_text(GTK_ENTRY(bw->location), damn_string);
+   a_I18n_gtk_entry_set_text(GTK_ENTRY(bw->location), damn_string);
    gtk_widget_activate(GTK_WIDGET(bw->location));
    g_free(damn_string);
 
@@ -453,21 +320,6 @@ static GtkWidget *Interface_toolbox_ext_
 }
 
 /*
- * Set the bw's cursor type
- */
-void a_Interface_set_cursor(BrowserWindow *bw, GdkCursorType CursorType)
-{
-   GdkCursor *cursor;
-
-   if ( bw->CursorType != CursorType ) {
-      cursor = gdk_cursor_new(CursorType);
-      gdk_window_set_cursor(bw->docwin->window, cursor);
-      gdk_cursor_destroy(cursor);
-      bw->CursorType = CursorType;
-   }
-}
-
-/*
  * Connect button's "clicked" event with (key, key_mod) pair.
  */
 static void Interface_set_button_accel(GtkButton *button,
@@ -508,8 +360,8 @@ static GtkWidget *Interface_locbar_new(B
    a_Gtk_ext_button_set_command(GTK_EXT_BUTTON(bw->clear_url_button), 2);
 
    gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar_l), bw->clear_url_button,
-                             "Clear the URL box (middle-click to paste an "
-                             "URL).", "Toolbar/Clear");
+                             _("Clear the URL box (middle-click to paste an "
+                             "URL)."), "Toolbar/Clear");
    gtk_signal_connect_object(GTK_OBJECT(bw->clear_url_button), "clicked",
                              GTK_SIGNAL_FUNC (Interface_entry_clear),
                              GTK_OBJECT(bw->location));
@@ -530,7 +382,7 @@ static GtkWidget *Interface_locbar_new(B
 
    bw->search_button = gtk_toolbar_append_item(
                           GTK_TOOLBAR(toolbar_r),
-                          NULL, "Search the Web", "Toolbar/New",
+                          NULL, _("Search the Web"), "Toolbar/New",
                           Interface_pixmap_new(bw->main_window, search_xpm),
                           GTK_SIGNAL_FUNC(a_Interface_search_dialog),
                           bw);
@@ -562,11 +414,11 @@ static GtkWidget *Interface_toolbar_new(
 
    /* back button */
    bw->back_button =
-      Interface_toolbox_ext_button_new(bw->main_window, label ? "Back" : NULL,
+      Interface_toolbox_ext_button_new(bw->main_window, label ? _("Back") : NULL,
                                        s ? s_left_xpm : left_xpm,
                                        &label_widget, &icon_widget);
    gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), bw->back_button,
-                             "Go to previous page (right-click for menu).",
+                             _("Go to previous page (right-click for menu)."),
                              "Toolbar/Back");
    gtk_widget_set_sensitive(bw->back_button, FALSE);
    Interface_set_button_accel(GTK_BUTTON(bw->back_button), GDK_comma,
@@ -595,11 +447,11 @@ static GtkWidget *Interface_toolbar_new(
    /* forward button */
    bw->forw_button =
       Interface_toolbox_ext_button_new(bw->main_window,
-                                       label ? "Forward" : NULL,
+                                       label ? _("Forward") : NULL,
                                        s ? s_right_xpm : right_xpm,
                                        &label_widget, &icon_widget);
    gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), bw->forw_button,
-                             "Go to next page (right-click for menu).",
+                             _("Go to next page (right-click for menu)."),
                              "Toolbar/Forward");
    gtk_widget_set_sensitive(bw->forw_button, FALSE);
    Interface_set_button_accel(GTK_BUTTON(bw->forw_button), GDK_period,
@@ -624,67 +476,81 @@ static GtkWidget *Interface_toolbar_new(
    toolbar_child->label = label_widget;
 
    /* home button */
-   bw->home_button = gtk_toolbar_append_item(
-                        GTK_TOOLBAR(toolbar),
-                        label ? "Home" : NULL,
-                        "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);
-   /*
-    * SG: This had never any effect, was it there for future extensions?
-    * gtk_signal_connect(GTK_OBJECT(bw->home_button), "button-press-event",
-    *                    GTK_SIGNAL_FUNC(a_Commands_navpress_callback), bw);
-    */
+   bw->home_button =
+      Interface_toolbox_ext_button_new(bw->main_window,
+                                       label ? _("Home") : NULL,
+                                       s ? s_home_xpm : home_xpm,
+                                       &label_widget, &icon_widget);
+   gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), bw->home_button,
+                             _("Go to the Home page"),
+                             "Toolbar/Home");
+   a_Gtk_ext_button_set_command(GTK_EXT_BUTTON(bw->home_button), 1);
+   a_Gtk_ext_button_set_command(GTK_EXT_BUTTON(bw->home_button), 2);
+   gtk_signal_connect(GTK_OBJECT(bw->home_button), "clicked",
+                      GTK_SIGNAL_FUNC(a_Commands_home_callback), (gpointer)bw);
+   gtk_signal_connect(GTK_OBJECT(bw->home_button), "clicked1",
+                      GTK_SIGNAL_FUNC(a_Commands_home_callback), (gpointer)bw);
+   gtk_signal_connect(GTK_OBJECT(bw->home_button), "clicked2",
+                      GTK_SIGNAL_FUNC(a_Commands_home_nw_callback), (gpointer)bw);
 
    /* reload button */
    bw->reload_button = gtk_toolbar_append_item(
                           GTK_TOOLBAR(toolbar),
-                          label ? "Reload" : NULL,
-                          "Reload this page", "Toolbar/Reload",
+                          label ? _("Reload") : NULL,
+                          _("Reload this page"), "Toolbar/Reload",
                           Interface_pixmap_new(bw->main_window,
                                                s ? s_reload_xpm : reload_xpm),
                           (GtkSignalFunc) a_Commands_reload_callback, bw);
    Interface_set_button_accel(GTK_BUTTON(bw->reload_button), GDK_r,
                               GDK_CONTROL_MASK, bw->accel_group);
+   Interface_set_button_accel(GTK_BUTTON(bw->reload_button), GDK_F5,
+                              0, bw->accel_group);
 
    /* save button */
    bw->save_button = gtk_toolbar_append_item(
                         GTK_TOOLBAR(toolbar),
-                        label ? "Save" : NULL,
-                        "Save this page", "Toolbar/Save",
+                        label ? _("Save") : NULL,
+                        _("Save this page"), "Toolbar/Save",
                         Interface_pixmap_new(bw->main_window,
                                              s ? s_save_xpm : save_xpm),
                         (GtkSignalFunc) a_Commands_save_callback, bw);
    /* stop button */
    bw->stop_button = gtk_toolbar_append_item(
                         GTK_TOOLBAR(toolbar),
-                        label ? "Stop" : NULL,
-                        "Stop the current transfer", "Toolbar/Stop",
+                        label ? _("Stop") : NULL,
+                        _("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_widget_set_sensitive(bw->stop_button, FALSE);
+   /*
+   Interface_set_button_accel(GTK_BUTTON(bw->stop_button), GDK_Escape,
+                              0, bw->accel_group);
+   */
 
    /* bookmarks button */
-   bw->bookmarks_button = gtk_toolbar_append_item(
-                             GTK_TOOLBAR(toolbar),
-                             label ? "Book" : NULL,
-                             "View bookmarks", "Toolbar/Bookmarks",
-                             Interface_pixmap_new(bw->main_window,
-                                                  s ? s_bm_xpm : bm_xpm),
-                             (GtkSignalFunc) a_Commands_viewbm_callback, bw);
+   bw->bookmarks_button =
+      Interface_toolbox_ext_button_new(bw->main_window,
+                                       label ? _("Book") : NULL,
+                                       s ? s_bm_xpm : bm_xpm,
+                                       &label_widget, &icon_widget);
+   gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), bw->bookmarks_button,
+                             _("View bookmarks"),
+                             "Toolbar/Bookmarks");
    gtk_widget_set_sensitive(bw->bookmarks_button, TRUE);
    Interface_set_button_accel(GTK_BUTTON(bw->bookmarks_button), GDK_semicolon,
                               0, bw->accel_group);
    Interface_set_button_accel(GTK_BUTTON(bw->bookmarks_button), GDK_b,
                               GDK_CONTROL_MASK, bw->accel_group);
-   /*
-    * SG: This had never any effect, was it there for future extensions?
-    * gtk_signal_connect(GTK_OBJECT(bw->bookmarks_button),
-    *                    "button-press-event",
-    *                    GTK_SIGNAL_FUNC(a_Commands_navpress_callback), bw);
-    */
+   a_Gtk_ext_button_set_command(GTK_EXT_BUTTON(bw->bookmarks_button), 1);
+   a_Gtk_ext_button_set_command(GTK_EXT_BUTTON(bw->bookmarks_button), 2);
+   gtk_signal_connect(GTK_OBJECT(bw->bookmarks_button), "clicked",
+                      GTK_SIGNAL_FUNC(a_Commands_viewbm_callback), (gpointer)bw);
+   gtk_signal_connect(GTK_OBJECT(bw->bookmarks_button), "clicked1",
+                      GTK_SIGNAL_FUNC(a_Commands_viewbm_callback), (gpointer)bw);
+   gtk_signal_connect(GTK_OBJECT(bw->bookmarks_button), "clicked2",
+                      GTK_SIGNAL_FUNC(a_Commands_viewbm_nw_callback),
+                      (gpointer)bw);
 
    gtk_widget_show(toolbar);
    return toolbar;
@@ -712,7 +578,7 @@ static GtkWidget *Interface_progressbox_
  * Hide/Unhide this bw's control panels.
  * toggle: Flag [toggle or set].
  */
-static void Interface_toggle_panel(BrowserWindow *bw, gint toggle)
+void a_Interface_toggle_panel(BrowserWindow *bw, gint toggle)
 {
    if (toggle)
       bw->fullwindow = !bw->fullwindow;
@@ -721,12 +587,16 @@ static void Interface_toggle_panel(Brows
       g_slist_foreach(bw->PanelHandles, (GFunc)gtk_widget_hide, NULL);
       gtk_widget_hide(bw->status_box);
       gtk_widget_show (bw->full_screen_off_button);
-      gtk_widget_grab_focus(GTK_BIN(bw->docwin)->child);
+      gtk_widget_grab_focus(GTK_BIN(bw->dd->docwin)->child);
    } else {
       g_slist_foreach(bw->PanelHandles, (GFunc)gtk_widget_show, NULL);
       gtk_widget_show(bw->status_box);
       gtk_widget_hide (bw->full_screen_off_button);
    }
+#ifndef DISABLE_TABS
+   a_Tab_visibility_update(bw);
+#endif /* !DISABLE_TABS */
+
 }
 
 /*
@@ -760,50 +630,7 @@ static void Interface_browser_window_cus
       gtk_widget_hide(bw->progress_box);
 
    bw->fullwindow = prefs.fullwindow_start;
-   Interface_toggle_panel(bw, FALSE);
-}
-
-static void Interface_full_screen_callback (BrowserWindow *bw)
-{
-   Interface_toggle_panel(bw, TRUE);
-}
-
-/*
- * Handler for double-mouse-clicks that don't belong to the viewport.
- */
-static gint Interface_click_callback(BrowserWindow *bw, GdkEventButton *event)
-{
-   if (event->type == GDK_2BUTTON_PRESS && event->button == 1)
-      Interface_toggle_panel(bw, TRUE);
-   return TRUE;
-}
-
-/*
- * Handler for key presses that don't belong to the viewport.
- * (Used to customize the interface a bit)
- */
-static void Interface_key_press_handler(GtkWidget *widget,
-                                        GdkEventKey *event,
-                                        gpointer client_data)
-{
-   BrowserWindow *bw = client_data;
-
-   switch (event->keyval) {
-   case GDK_BackSpace:
-      /* This key is handled here because GTK accel group ignores it */
-      if (event->state & GDK_SHIFT_MASK)
-         a_Commands_forw_callback(NULL, bw);
-      else
-         a_Commands_back_callback(NULL, bw);
-      break;
-   case GDK_slash:
-      /* This key is handled here because GTK accel group ignores it */
-      a_Commands_findtext_callback(NULL, bw);
-      break;
-   default:
-      _MSG(">> Key pressed!\n");
-      break;
-   }
+   a_Interface_toggle_panel(bw, FALSE);
 }
 
 /*
@@ -825,7 +652,7 @@ static void Interface_add_full_screen_bu
    gtk_widget_show (dummy);
 
    button = gtk_button_new ();
-   gtk_tooltips_set_tip (tooltips, button, "Hide Controls", "Show Controls");
+   gtk_tooltips_set_tip (tooltips, button, _("Hide Controls"), _("Show Controls"));
    GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS);
    gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
    gtk_widget_show (button);
@@ -836,9 +663,13 @@ static void Interface_add_full_screen_bu
 
    gtk_signal_connect_object
       (GTK_OBJECT (button), "clicked",
-       GTK_SIGNAL_FUNC (Interface_full_screen_callback), (gpointer)bw);
+       GTK_SIGNAL_FUNC (a_Commands_full_screen_callback), (gpointer)bw);
 }
 
+/*******************
+ * browser windows *
+ *******************/
+
 /*
  * Create a new browser window and return it.
  * (the new window is stored in browser_window[])
@@ -848,6 +679,9 @@ a_Interface_browser_window_new(gint widt
 {
    GtkWidget *box1, *hbox, *button, *label,
              *progbox, *toolbar, *handlebox, *menubar, *locbox, *pixmap;
+#ifdef DISABLE_TABS
+   GtkWidget *box2;
+#endif /* DISABLE_TABS */
    BrowserWindow *bw;
    char buf[64];
 
@@ -856,14 +690,17 @@ a_Interface_browser_window_new(gint widt
    a_List_add(browser_window, num_bw, num_bw_max);
    browser_window[num_bw++] = bw;
 
-   /* initialize nav_stack struct in browser_window struct */
-   a_Nav_init(bw);
-
    if (!xid)
        bw->main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    else
        bw->main_window = gtk_plug_new(xid);
 
+   /* set tooltips.
+    * TODO: this is a global, change to browser-window local?
+    */
+   bw->tooltips = tooltips;
+   gtk_tooltips_enable(bw->tooltips);
+
    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);
@@ -873,6 +710,8 @@ a_Interface_browser_window_new(gint widt
 
    gtk_window_set_wmclass(GTK_WINDOW(bw->main_window), "dillo", "Dillo");
 
+   gtk_widget_set_usize(bw->main_window, width, height);
+
    /* -RL :: I must realize the window to see it correctly */
    gtk_widget_realize(bw->main_window);
 
@@ -880,10 +719,6 @@ a_Interface_browser_window_new(gint widt
    bw->accel_group = gtk_accel_group_new();
    gtk_window_add_accel_group(GTK_WINDOW(bw->main_window), bw->accel_group);
 
-   /* set window title */
-   g_snprintf(buf, 64, "Version %s", VERSION);
-   a_Interface_set_page_title(bw, buf);
-
    box1 = gtk_vbox_new(FALSE, 0);
 
    /* setup the control panel */
@@ -912,7 +747,6 @@ a_Interface_browser_window_new(gint widt
       gtk_widget_show(hbox);
       gtk_box_pack_start(GTK_BOX(box1), handlebox, FALSE, FALSE, 0);
       gtk_widget_show(handlebox);
-
    } else if (prefs.panel_size == 2 || prefs.panel_size == 3) {
       handlebox = gtk_handle_box_new();
       bw->PanelHandles = g_slist_append(bw->PanelHandles, handlebox);
@@ -969,9 +803,12 @@ a_Interface_browser_window_new(gint widt
 
       handlebox = gtk_handle_box_new();
       bw->PanelHandles = g_slist_append(bw->PanelHandles, handlebox);
+      hbox = gtk_hbox_new(FALSE, 0);
       locbox = Interface_locbar_new(bw);
-      gtk_container_add(GTK_CONTAINER(handlebox), locbox);
+      gtk_box_pack_start(GTK_BOX(hbox), locbox, TRUE, TRUE, 0);
       gtk_widget_show(locbox);
+      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);
    }
@@ -979,58 +816,87 @@ a_Interface_browser_window_new(gint widt
    /* Add box1 */
    gtk_container_add(GTK_CONTAINER(bw->main_window), box1);
 
-   /* Now the main document window */
-   bw->docwin = a_Dw_gtk_scrolled_window_new();
-   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(bw->docwin),
-                                  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-   gtk_box_pack_start(GTK_BOX(box1), bw->docwin, TRUE, TRUE, 0);
-   gtk_widget_show(bw->docwin);
+   /* Create the full_screen_off_button. This button is shared between all
+    * documents in a tabbed browser. On switching tabs it is reparented
+    * to the new current tab */
+   bw->full_screen_off_button = gtk_button_new ();
+   gtk_button_set_relief (GTK_BUTTON (bw->full_screen_off_button),
+                          GTK_RELIEF_NONE);
+   gtk_tooltips_set_tip (tooltips, bw->full_screen_off_button,
+                         _("Show Controls"), _("Hide Controls"));
+   GTK_WIDGET_UNSET_FLAGS (bw->full_screen_off_button, GTK_CAN_FOCUS);
+
+   pixmap = Interface_pixmap_new(bw->main_window, full_screen_off_xpm);
+   gtk_container_add (GTK_CONTAINER (bw->full_screen_off_button), pixmap);
+   gtk_widget_show (pixmap);
+
+   gtk_signal_connect_object
+      (GTK_OBJECT (bw->full_screen_off_button), "clicked",
+       GTK_SIGNAL_FUNC (a_Commands_full_screen_callback), (gpointer)bw);
+
+#ifndef DISABLE_TABS
+   /* add tab browser */
+   bw->container = a_Tab_browser_new(bw);
+   /* Add initial tab*/
+   a_Tab_new(bw);
+#else
+   /* add document container */
+   bw->dd = a_Doc_new();
+   a_Doc_set_browserwindow(bw->dd, bw);
+   /* add box2, which will contain the docwin and the frameset.
+    * Usually, only one of these is visible at any time */
+   box2 = gtk_hbox_new(TRUE, 0);
+   gtk_container_set_border_width(GTK_CONTAINER(box2), 0);
+   gtk_box_pack_start(GTK_BOX(box2), GTK_WIDGET(bw->dd->docwin), TRUE, TRUE, 0);
+   /* as this is a new document, the frameset will be empty so there
+    * is no need to pack it in the box */
+   gtk_widget_show(box2);
+
+   /* point bw->container at the box containing dd's docwin. 
+    * This ensures that the docwin (and, through its callback,
+    * the associated DilloDoc) is destroyed when the window is closed */
+   bw->container = GTK_CONTAINER(box2);
 
    /* todo (GTK2): this call is a bit of a workaround to missing focus
     * between the location box and the docwin. It's fixed in GTK2:
     * http://mail.gnome.org/archives/gtk-list/2003-June/msg00307.html  */
-   gtk_widget_grab_focus(GTK_BIN(bw->docwin)->child);
+   gtk_widget_grab_focus(GTK_BIN(bw->dd->docwin)->child);
 
+#if 0
    /* Full screen mode via double click is done in two ways: First,
     * a feature of the selection is used, since in complex pages,
     * getting events back to the viewport is quite difficult. Second,
     * a simple callback, called e.g. when viewing image resources. */
    a_Selection_set_dclick_callback(
-      GTK_DW_VIEWPORT(GTK_BIN(GTK_BIN(bw->docwin)->child)->child)->selection,
-      (void(*)(gpointer))Interface_full_screen_callback, bw);
+      GTK_DW_VIEWPORT(GTK_BIN(GTK_BIN(bw->dd->docwin)->child)->child)->selection,
+      (void(*)(gpointer))a_Commands_full_screen_callback, bw);
    /* Selection requires an owner widget */
    a_Selection_set_owner(
-      GTK_DW_VIEWPORT(GTK_BIN(GTK_BIN(bw->docwin)->child)->child)->selection,
-      GTK_BIN(bw->docwin)->child);
+      GTK_DW_VIEWPORT(GTK_BIN(GTK_BIN(bw->dd->docwin)->child)->child)->selection,
+      GTK_BIN(bw->dd->docwin)->child);
+#endif
 
-   gtk_signal_connect_object_after(GTK_OBJECT(GTK_BIN(bw->docwin)->child),
+#if 0
+   gtk_signal_connect_object_after(GTK_OBJECT(GTK_BIN(bw->dd->docwin)->child),
                                    "button_press_event",
-                                   GTK_SIGNAL_FUNC(Interface_click_callback),
+                                   GTK_SIGNAL_FUNC(a_Commands_click_callback),
                                    (gpointer)bw);
+#endif
 
    /* full screen button: actually there're two buttons, one in the scrolled
     * window (fs off) and one in the status bar (fs on). They look as one. */
-   bw->full_screen_off_button = gtk_button_new ();
-   gtk_tooltips_set_tip (tooltips, bw->full_screen_off_button,
-                         "Show Controls", "Hide Controls");
-   GTK_WIDGET_UNSET_FLAGS (bw->full_screen_off_button, GTK_CAN_FOCUS);
-   a_Dw_gtk_scrolled_window_add_gadget (GTK_DW_SCROLLED_WINDOW (bw->docwin),
-                                        bw->full_screen_off_button);
-   pixmap = Interface_pixmap_new(bw->main_window, full_screen_off_xpm);
-   gtk_container_add (GTK_CONTAINER (bw->full_screen_off_button), pixmap);
-   gtk_widget_show (pixmap);
-   gtk_signal_connect_object
-      (GTK_OBJECT (bw->full_screen_off_button), "clicked",
-       GTK_SIGNAL_FUNC (Interface_full_screen_callback), (gpointer)bw);
+   a_Dw_gtk_scrolled_window_add_gadget(GTK_DW_SCROLLED_WINDOW (bw->dd->docwin),
+                                       bw->full_screen_off_button);
    Interface_set_button_accel(GTK_BUTTON(bw->full_screen_off_button), GDK_h,
                               GDK_CONTROL_MASK, bw->accel_group);
 
    /* Catch key_press event */
-   gtk_signal_connect(GTK_OBJECT(GTK_BIN(bw->docwin)->child),
+   gtk_signal_connect(GTK_OBJECT(GTK_BIN(bw->dd->docwin)->child),
                       "key_press_event",
-                      GTK_SIGNAL_FUNC(Interface_key_press_handler), bw);
-
-   gtk_widget_set_usize(bw->main_window, width, height);
+                      GTK_SIGNAL_FUNC(a_Commands_key_press_handler), bw);
+#endif /* !DISABLE_TABS */
+   gtk_box_pack_start(GTK_BOX(box1), GTK_WIDGET(bw->container), TRUE, TRUE, 0);
+   gtk_widget_show(GTK_WIDGET(bw->container));
 
    /* status widget */
    /* create the over-bug-meter menu */
@@ -1060,11 +926,12 @@ a_Interface_browser_window_new(gint widt
    gtk_container_add (GTK_CONTAINER (button), hbox);
    gtk_widget_show(hbox);
    gtk_tooltips_set_tip (tooltips, button,
-                         "Show HTML bugs (right-click for menu).", "");
+                         _("Show HTML bugs (right-click for menu)."), "");
 
    bw->status_box = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(bw->status_box), bw->status, TRUE, TRUE, 2);
    gtk_widget_show(bw->status);
+   Interface_add_search_dialog(bw);
    gtk_box_pack_start(GTK_BOX(bw->status_box), button, FALSE, FALSE, 0);
    gtk_widget_show(button);
 
@@ -1076,47 +943,15 @@ a_Interface_browser_window_new(gint widt
    gtk_widget_show(bw->main_window);
    gtk_widget_show(box1);
 
+#if 0 //already initialize by g_new0().
    /* initialize the rest of the bw's data. */
-   bw->pagemarks_menuitem = NULL;
-   bw->pagemarks_menu = NULL;
-   bw->pagemarks_last = NULL;
-   bw->viewbugs_menuitem = NULL;
-
-   /* the image menu is created first because it is used by the link menu */
-   bw->menu_popup.over_image = a_Menu_popup_oi_new(bw);
-   bw->menu_popup.over_link = a_Menu_popup_ol_new(bw);
-   bw->menu_popup.over_page = a_Menu_popup_op_new(bw);
-   bw->menu_popup.over_back = NULL;
-   bw->menu_popup.over_forw = NULL;
-   bw->menu_popup.url = NULL;
-   bw->menu_popup.url2 = NULL;
-
-   bw->redirect_level = 0;
-   bw->sens_idle_id = 0;
-
-   bw->CursorType = -1;
-
-   bw->RootClients = NULL;
-   bw->NumRootClients = 0;
-   bw->MaxRootClients = 8;
-
-   bw->ImageClients = NULL;
-   bw->NumImageClients = 0;
-   bw->MaxImageClients = 8;
-   bw->NumImages = 0;
-   bw->NumImagesGot = 0;
-
-   bw->PageUrls = NULL;
-   bw->NumPageUrls = 0;
-   bw->MaxPageUrls = 8;
-
    bw->open_dialog_window = NULL;
    bw->open_dialog_entry = NULL;
    bw->openfile_dialog_window = NULL;
    bw->quit_dialog_window = NULL;
    bw->save_dialog_window = NULL;
    bw->save_link_dialog_window = NULL;
-   bw->findtext_dialog_window = NULL;
+   bw->findtext_dialog = NULL;
    bw->findtext_dialog_check = NULL;
    bw->findtext_dialog_entry = NULL;
    bw->search_dialog_window = NULL;
@@ -1125,15 +960,61 @@ a_Interface_browser_window_new(gint widt
    bw->proxy_passwd_dialog_entry = NULL;
    bw->question_dialog_window = NULL;
    bw->question_dialog_data = NULL;
+   bw->passwd_dialog_window = NULL;
+   bw->passwd_dialog_uentry = NULL;
+   bw->passwd_dialog_pentry = NULL;
    bw->viewsource_window = NULL;
    bw->pagebugs_window = NULL;
 
+   bw->pagemarks_menuitem = NULL;
+   bw->viewbugs_menuitem = NULL;
+   bw->frame_menuitem = NULL;
+   bw->frameset_menuitem = NULL;
+   bw->menu_popup.over_frame = NULL;
+   bw->back_op_menu_button = NULL;
+   bw->forw_op_menu_button = NULL;
+   bw->stop_op_menu_button = NULL;
+#endif
+   /* the image menu is created first because it is used by the link menu */
+   bw->menu_popup.over_image = a_Menu_popup_oi_new(bw);
+   bw->menu_popup.over_page = a_Menu_popup_op_new(bw);
+   bw->menu_popup.over_link = a_Menu_popup_ol_new(bw);
+#if 0 //already initialize by g_new0().
+   bw->menu_popup.over_back = NULL;
+   bw->menu_popup.over_forw = NULL;
+
+#ifndef DISABLE_TABS
+   bw->menu_popup.over_tab = NULL;
+#endif /* !DISABLE_TABS */
+   bw->menu_popup.url = NULL;
+   bw->menu_popup.url2 = NULL;
+#endif
+
+
+   bw->found = FALSE;
+   bw->dd_list = NULL;
+   bw->dd_list_index = 0;
+
+   bw->sens_idle_id = 0;
+
+   /* set focus to location bar */
+   if(prefs.focus_location_on_new)
+      gtk_widget_grab_focus(bw->location);
+   else
+      gtk_widget_grab_focus(GTK_BIN(bw->dd->docwin)->child);
+
+   /* set document (and window) title */
+   g_snprintf(buf, 64, "Version %s", VERSION);
+   a_Doc_title_set(bw->dd, buf);
+
    /* now that the bw is made, let's customize it.. */
    Interface_browser_window_customize(bw);
 
    return bw;
 }
 
+
+
 /*
  * Set the title of the browser window to start with "Dillo: "
  * prepended to it.
@@ -1146,7 +1027,7 @@ void a_Interface_set_page_title(BrowserW
 
    buf = g_string_new("");
    g_string_sprintfa(buf, "Dillo: %s", title);
-   gtk_window_set_title(GTK_WINDOW(bw->main_window), buf->str);
+   a_I18n_gtk_window_set_title(GTK_WINDOW(bw->main_window), buf->str);
    g_string_free(buf, TRUE);
 }
 
@@ -1155,7 +1036,7 @@ void a_Interface_set_page_title(BrowserW
  */
 void a_Interface_set_location_text(BrowserWindow *bw, char *text)
 {
-   gtk_entry_set_text(GTK_ENTRY(bw->location), text);
+   a_I18n_gtk_entry_set_text(GTK_ENTRY(bw->location), text);
 }
 
 /*
@@ -1163,7 +1044,7 @@ void a_Interface_set_location_text(Brows
  */
 gchar *a_Interface_get_location_text(BrowserWindow *bw)
 {
-   return gtk_entry_get_text(GTK_ENTRY(bw->location));
+   return a_I18n_gtk_entry_get_text(GTK_ENTRY(bw->location));
 }
 
 /*
@@ -1181,13 +1062,16 @@ void a_Interface_reset_progress_bars(Bro
 void a_Interface_msg(BrowserWindow *bw, const char *format, ... )
 {
    static char msg[1024];
+   char *msg_fix;
    va_list argp;
 
    if ( bw ) {
       va_start(argp, format);
       g_vsnprintf(msg, 1024, format, argp);
       va_end(argp);
-      gtk_label_set_text(GTK_LABEL(bw->status), msg);
+      msg_fix = a_I18n_string_check(msg, DILLO_CHARSET);
+      a_I18n_gtk_label_set_text(GTK_LABEL(bw->status), msg_fix);
+      g_free(msg_fix);
       bw->status_is_link = 0;
    }
 }
@@ -1255,7 +1139,7 @@ void a_Interface_quit_all(void)
       gtk_widget_destroy(bws[i]->main_window);
 
    g_free(bws);
-
+   
    g_free(open_dialog_last_dirname);
    g_free(save_dialog_last_dirname);
 }
@@ -1312,7 +1196,7 @@ static void
    Cfn = (s = a_Misc_escape_chars(fn, "% ")) ? s : fn;
    g_string_sprintf(UrlStr, "file:%s", Cfn);
    url = a_Url_new(UrlStr->str, NULL, 0, 0, 0);
-   a_Nav_push(bw, url);
+   a_Nav_push(bw->dd, url);
    a_Url_free(url);
    g_string_free(UrlStr, TRUE);
    g_free(s);
@@ -1330,10 +1214,12 @@ static void
  */
 static gchar *Interface_make_search_url(const gchar *str)
 {
-   gchar *keys = a_Url_encode_hex_str(str), *c = prefs.search_url;
+   gchar *enc_str = a_I18n_convert(DILLO_CHARSET, prefs.search_charset, str, -1);
+   gchar *keys = a_Url_encode_hex_str(enc_str), *c = prefs.search_url;
    GString *newstr = g_string_sized_new(strlen(c)+strlen(keys));
    gchar *search_url;
 
+   g_free(enc_str);
    for (; *c; c++)
       if (*c == '%')
          switch(*++c) {
@@ -1342,9 +1228,9 @@ static gchar *Interface_make_search_url(
          case '%':
             g_string_append_c(newstr, '%'); break;;
          case 0:
-            MSG("Warning: search_url ends with '%%'\n"); c--; break;;
+            MSG(_("Warning: search_url ends with '%%'\n")); c--; break;;
          default:
-            MSG("Warning: illegal specifier '%%%c' in search_url\n", *c);
+            MSG(_("Warning: illegal specifier '%%%c' in search_url\n"), *c);
          }
       else
          g_string_append_c(newstr, *c);
@@ -1372,14 +1258,14 @@ static void Interface_open_url_string(gc
 
       url = a_Url_new(new_text, NULL, 0, 0, 0);
       if (url) {
-         a_Nav_push(bw, url);
+         a_Nav_push(bw->dd, url);
          a_Url_free(url);
       }
       g_free(new_text);
    }
 
    /* let the rendered area have focus */
-   gtk_widget_grab_focus(GTK_BIN(bw->docwin)->child);
+   gtk_widget_grab_focus(GTK_BIN(bw->dd->docwin)->child);
 }
 
 /*
@@ -1409,7 +1295,7 @@ void a_Interface_openfile_dialog(Browser
    if (!bw->openfile_dialog_window) {
       Interface_make_choose_file_dialog(
          &(bw->openfile_dialog_window),
-         "openfile_dialog", "Dillo", "Dillo: Open File",
+         "openfile_dialog", "Dillo", _("Dillo: Open File"),
          (GtkSignalFunc) Interface_openfile_ok_callback, (void *)bw);
    }
 
@@ -1485,7 +1371,7 @@ static void
                              (GtkSignalFunc) gtk_widget_grab_default,
                              GTK_OBJECT(button));
 
-   button = gtk_button_new_with_label("Clear");
+   button = gtk_button_new_with_label(_("Clear"));
    gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
                              (GtkSignalFunc) Interface_entry_clear,
                              GTK_OBJECT(entry));
@@ -1493,7 +1379,7 @@ static void
    gtk_box_pack_start(GTK_BOX(box2), button, FALSE, TRUE, 0);
    gtk_widget_show(button);
 
-   button = gtk_button_new_with_label("Cancel");
+   button = gtk_button_new_with_label(_("Cancel"));
    gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
                              (GtkSignalFunc) gtk_widget_destroy,
                              GTK_OBJECT(*DialogWindow));
@@ -1522,7 +1408,7 @@ static void Interface_question_dialog_se
  * (0 means the window was cancelled, and 1 to 5 the respective alternatives)
  */
 static void Interface_make_question_dialog(
-        BrowserWindow *bw,
+        DilloDoc *dd,
         GtkWidget **DialogWindow, char *WmName, char *WmClass,
         char *WTitle, char *Question, gint modal_flag,
         char *alt1, char *alt2, char *alt3, char *alt4, char *alt5,
@@ -1540,7 +1426,7 @@ static void Interface_make_question_dial
    gtk_window_set_modal(GTK_WINDOW(*DialogWindow), modal_flag);
    /* attach AnswerCallback to "destroy" so appropriate actions can be taken */
    gtk_signal_connect_object(GTK_OBJECT(*DialogWindow), "destroy",
-      (GtkSignalFunc) AnswerCallback, (gpointer)bw);
+      (GtkSignalFunc) AnswerCallback, (gpointer)dd);
    gtk_signal_connect(GTK_OBJECT(*DialogWindow), "destroy",
       (GtkSignalFunc) Interface_destroy_window, DialogWindow);
 
@@ -1559,7 +1445,7 @@ static void Interface_make_question_dial
     * (it looks clumsy, but provides a handy interface for the caller) */
    answer = g_new(DialogAnswer, 6);
    for (i = 0; i < 6; ++i) {
-      answer[i].bw = bw;
+      answer[i].bw = dd->bw;
       answer[i].alt_num = i;
       answer[i].this = answer;
    }
@@ -1567,7 +1453,7 @@ static void Interface_make_question_dial
    answer[2].alt_str = alt2; answer[3].alt_str = alt3;
    answer[4].alt_str = alt4; answer[5].alt_str = alt5;
    /* Set the default answer */
-   bw->question_dialog_answer = &answer[0];
+   dd->bw->question_dialog_answer = &answer[0];
 
    /* pack the alternatives */
    box2 = gtk_hbox_new(TRUE, 5);
@@ -1592,23 +1478,117 @@ static void Interface_make_question_dial
 }
 
 /*
+ * Make a password-dialog with two entries, OK and Cancel.
+ */
+void Interface_make_passwd_dialog(
+        GtkWidget **DialogWindow, char *WmName, char *WmClass,
+        char *WTitle, char *Context,
+        GtkWidget **passwd_dialog_uentry,
+        GtkWidget **passwd_dialog_pentry,
+        GtkSignalFunc OkCallback, void *OkCbData,
+        GtkSignalFunc CancelCallback, void *CancelCbData)
+{
+   GtkWidget *label,
+      *label_user,
+      *label_pass,
+      *button,
+      *box_l,
+      *box_u,
+      *box_p,
+      *box_b;
+
+   *DialogWindow = gtk_window_new(GTK_WINDOW_DIALOG);
+   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);
+
+   box_l = gtk_vbox_new(FALSE, 5);
+   label = gtk_label_new(Context);
+   gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_FILL);
+   gtk_box_pack_start(GTK_BOX(box_l), label, FALSE, FALSE, 0);
+   gtk_widget_show(label);
+   box_u = gtk_hbox_new(FALSE, 5);
+   label_user = gtk_label_new(_("User Name:"));
+   gtk_box_pack_start(GTK_BOX(box_u), label_user, FALSE, FALSE, 0);
+   gtk_widget_show(label_user);
+   *passwd_dialog_uentry=gtk_entry_new();
+   gtk_box_pack_start(GTK_BOX(box_u),*passwd_dialog_uentry, TRUE, TRUE, 0);
+   gtk_widget_show(*passwd_dialog_uentry);
+   box_p = gtk_hbox_new(FALSE, 5);
+   label_pass = gtk_label_new(_("Password:"));
+   gtk_box_pack_start(GTK_BOX(box_p), label_pass, FALSE, FALSE, 0);
+   gtk_widget_show(label_pass);
+   *passwd_dialog_pentry=gtk_entry_new();
+   gtk_entry_set_visibility(GTK_ENTRY(*passwd_dialog_pentry), FALSE);
+   gtk_box_pack_start(GTK_BOX(box_p),*passwd_dialog_pentry, TRUE, TRUE, 0);
+   gtk_widget_show(*passwd_dialog_pentry);
+
+   box_b = 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);
+   gtk_widget_show(button);
+   gtk_box_pack_start(GTK_BOX(box_b), 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);
+   gtk_widget_show(button);
+   gtk_box_pack_start(GTK_BOX(box_b), button, TRUE, TRUE, 0);
+   gtk_box_pack_start(GTK_BOX(box_l), box_u, TRUE, FALSE, 0);
+   gtk_box_pack_start(GTK_BOX(box_l), box_p, TRUE, FALSE, 0);
+   gtk_box_pack_start(GTK_BOX(box_l), box_b, TRUE, FALSE, 0);
+   gtk_container_add(GTK_CONTAINER(*DialogWindow), box_l);
+
+   gtk_widget_show(box_b);
+   gtk_widget_show(box_p);
+   gtk_widget_show(box_u);
+   gtk_widget_show(box_l);
+   gtk_widget_grab_focus(GTK_WIDGET(*passwd_dialog_uentry));
+   gtk_widget_show(*DialogWindow);
+}
+
+/*
+ * Create and show a user/passwd dialog
+ */
+void a_Interface_passwd_dialog(
+        BrowserWindow *bw, gchar *Context,
+        GtkSignalFunc OkCallback, void *OkCbData,
+        GtkSignalFunc CancelCallback, void *CancelCbData)
+{
+   if (!bw->passwd_dialog_window) {
+      Interface_make_passwd_dialog(&(bw->passwd_dialog_window),
+         "passwd_dialog", "Dillo", _("Dillo: Enter Authentication"), Context,
+         &(bw->passwd_dialog_uentry), &(bw->passwd_dialog_pentry),
+         OkCallback, OkCbData, CancelCallback, CancelCbData);
+   } else {
+      gtk_widget_destroy(bw->passwd_dialog_window);
+   }
+}
+
+/*
  * Create and show an [OK|Cancel] question dialog
  */
 void a_Interface_question_dialog(
-        BrowserWindow *bw, gchar *QuestionTxt, gint modal_flag,
+        DilloDoc *dd, gchar *QuestionTxt, gint modal_flag,
         char *alt1, char *alt2, char *alt3, char *alt4, char *alt5,
         GtkSignalFunc AnswerCallback)
 {
-   if (!bw->question_dialog_window) {
+   if (!dd->bw->question_dialog_window) {
       Interface_make_question_dialog(
-         bw,
-         &(bw->question_dialog_window), "question_dialog", "Dillo",
-         "Dillo: Question", QuestionTxt, modal_flag,
+         dd,
+         &(dd->bw->question_dialog_window), "question_dialog", "Dillo",
+         _("Dillo: Question"), QuestionTxt, modal_flag,
          alt1, alt2, alt3, alt4, alt5,
          AnswerCallback);
    } else {
       /* should not reach here */
-      gtk_widget_destroy(bw->question_dialog_window);
+      gtk_widget_destroy(dd->bw->question_dialog_window);
    }
 }
 
@@ -1619,9 +1599,9 @@ void a_Interface_open_dialog(GtkWidget *
 {
    if (!bw->open_dialog_window) {
       Interface_make_dialog(&(bw->open_dialog_window),
-         "open_dialog", "Dillo", "Dillo: Open URL",
+         "open_dialog", "Dillo", _("Dillo: Open URL"),
          &(bw->open_dialog_entry), "", 1, NULL, NULL,
-         "OK", (GtkSignalFunc) a_Interface_entry_open_url, (void *)bw);
+         _("OK"), (GtkSignalFunc) 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));
@@ -1643,11 +1623,13 @@ static void Interface_save_callback(int 
 
    if ( Op ){
       struct stat st;
+      gchar *msg_enc = a_I18n_locale_to_DILLO_CHARSET(_("File saved (%d Bytes)"));
 
       fflush(Web->stream);
       fstat(fileno(Web->stream), &st);
       fclose(Web->stream);
-      a_Interface_msg(Web->bw, "File saved (%d Bytes)", st.st_size);
+      a_Interface_msg(Web->dd->bw, msg_enc, st.st_size);
+      g_free(msg_enc);
    } else {
       if ( (Bytes = Client->BufSize - Web->SavedBytes) > 0 ) {
          Bytes = fwrite(Client->Buf + Web->SavedBytes, 1, Bytes, Web->stream);
@@ -1670,11 +1652,11 @@ static void Interface_file_save_url(GtkW
    choosefile = GTK_FILE_SELECTION(bw->save_dialog_window);
    entry_url = GTK_ENTRY(bw->location);
    name = gtk_file_selection_get_filename(choosefile);
-   url = a_Url_dup(a_History_get_url(NAV_TOP(bw)));
+   url = a_Url_dup(a_History_get_url(NAV_TOP(bw->dd)));
 
    if ( strlen(name) && (out = fopen(name, "w")) != NULL ) {
       DilloWeb *Web = a_Web_new(url);
-      Web->bw = bw;
+      Web->dd = bw->dd;
       Web->stream = out;
       Web->flags |= WEB_Download;
       /* todo: keep track of this client */
@@ -1710,20 +1692,20 @@ static void Interface_file_save_link(Gtk
       /* Not cached, ask the downloads server to get it */
       cmd = a_Dpip_build_cmd("cmd=%s url=%s destination=%s",
                              "download", URL_STR(url), name);
-      a_Capi_dpi_send_cmd(NULL, bw, cmd, "downloads", 1);
+      a_Capi_dpi_send_cmd(NULL, bw->dd, cmd, "downloads", 1);
       g_free(cmd);
 
    } else {
       /* Cached! Save from the cache */
       if ( strlen(name) && (out = fopen(name, "w")) != NULL ) {
          DilloWeb *Web = a_Web_new(url);
-         Web->bw = bw;
+         Web->dd = bw->dd;
          Web->stream = out;
          Web->flags |= WEB_Download;
          /* todo: keep track of this client */
          a_Capi_open_url(Web, Interface_save_callback, Web);
       } else
-         g_printerr("Error trying to save: %s\n", name);
+         g_printerr(_("Error trying to save: %s\n"), name);
    }
 
    gtk_widget_destroy(bw->save_link_dialog_window);
@@ -1776,7 +1758,7 @@ void a_Interface_save_dialog(GtkWidget *
    if (!bw->save_dialog_window) {
       Interface_make_choose_file_dialog(
          &bw->save_dialog_window,
-         "save_dialog", "Dillo", "Dillo: Save URL as File...",
+         "save_dialog", "Dillo", _("Dillo: Save URL as File..."),
          (GtkSignalFunc) Interface_file_save_url, (void *)bw );
    }
    url = a_Url_new(a_Interface_get_location_text(bw), NULL, 0, 0, 0);
@@ -1803,7 +1785,7 @@ void a_Interface_save_link_dialog(GtkWid
       Interface_make_choose_file_dialog(
          &bw->save_link_dialog_window,
          "save_link_dialog", "Dillo",
-         "Dillo: Save link as File...",
+         _("Dillo: Save link as File..."),
          (GtkSignalFunc) Interface_file_save_link,
          (void *)bw);
    }
@@ -1834,55 +1816,189 @@ static void Interface_entry_search(GtkWi
 {
    char *string;
    gboolean case_sens;
+   DilloDoc *dd;
 
-   string = gtk_editable_get_chars(GTK_EDITABLE(bw->findtext_dialog_entry),
-                                   0, -1);
+   string = a_I18n_gtk_editable_get_chars(GTK_EDITABLE(bw->findtext_dialog_entry),
+				   0, -1);
+   if (!string || strlen(string) == 0) return;
    case_sens = gtk_toggle_button_get_active
-      (GTK_TOGGLE_BUTTON(bw->findtext_dialog_check));
-   switch(a_Dw_gtk_scrolled_window_search(GTK_DW_SCROLLED_WINDOW(bw->docwin),
-                                          string, case_sens)) {
+     (GTK_TOGGLE_BUTTON(bw->findtext_dialog_check));
+
+   /* get the document to search from dd_list */
+   dd = g_list_nth_data(bw->dd_list, bw->dd_list_index);
+   if (!dd) return;
+   
+   switch(a_Dw_gtk_scrolled_window_search(GTK_DW_SCROLLED_WINDOW(dd->docwin),
+					  string, case_sens)) {
    case FINDTEXT_RESTART:
-      a_Interface_message_window("Dillo: Find text",
-                                 "No further occurence of \"%s\". "
-                                 "Restarting from the beginning.", string);
-      break;
    case FINDTEXT_NOT_FOUND:
-      a_Interface_message_window("Dillo: Find text",
-                                 "Cannot find \"%s\".", string);
-      break;
+     a_Dw_gtk_scrolled_window_reset_search((void *) dd->docwin);
+     if(++(bw->dd_list_index) < g_list_length(bw->dd_list)) {
+       /* recursively repeat search in next document */
+       Interface_entry_search(widget, bw);
+     } else {
+       if (!bw->found) {
+          if (prefs.popup_dialogs) {
+             gchar *title, *msg;
+             title = a_I18n_locale_to_DILLO_CHARSET(_("Dillo: Find text"));
+             msg = a_I18n_locale_to_DILLO_CHARSET(_("Cannot find \"%s\"."));
+             a_Interface_message_window(title, msg, string);
+             g_free(title);
+             g_free(msg);
+          } else {
+             gchar *format;
+             format = a_I18n_locale_to_DILLO_CHARSET(_("Cannot find \"%s\"."));
+             a_Interface_msg(bw, format, string);
+             g_free(format);
+          }
+       } else {
+          if (prefs.popup_dialogs) {
+             gchar *title, *msg;
+             title = a_I18n_locale_to_DILLO_CHARSET(_("Dillo: Find text"));
+             msg = a_I18n_locale_to_DILLO_CHARSET(_("No further occurence of \"%s\". "
+                      "Restarting from the beginning."));
+             a_Interface_message_window(title, msg, string);
+             g_free(title);
+             g_free(msg);
+          } else {
+             gchar *format;
+             format = a_I18n_locale_to_DILLO_CHARSET(
+                   _("(Find) \"%s\": restart from beginning"));
+             a_Interface_msg(bw, format, string);
+             g_free(format);
+          }
+       }
+       bw->found = FALSE;
+       bw->dd_list_index = 0;
+     }
+     break;
+   case FINDTEXT_SUCCESS:
+     bw->found = TRUE;
+     if (!prefs.popup_dialogs) {
+        gchar *format;
+        format = a_I18n_locale_to_DILLO_CHARSET(_("(Find) \"%s\""));
+        a_Interface_msg(bw, format, string);
+        g_free(format);
+     }
+     break;
+   default:
+     _MSG(_("Unexpected return from a_Dw_gtk_scrolled_window_search()\n"));
+     break;
    }
+
    g_free(string);
 }
 
 /*
+ * Callback for findtext destroy, resets search and destroys dd_list
+ */
+void a_Interface_findtext_dialog_destroy(BrowserWindow *bw)
+{
+   DilloDoc *dd = NULL;
+
+   if (!find_text_window) return;
+   dd = g_list_nth_data(bw->dd_list, bw->dd_list_index);
+   /* reset the search */
+   a_Dw_gtk_scrolled_window_reset_search((void *) dd->docwin);
+   /* destroy the list */
+   g_list_free(bw->dd_list);
+   bw->dd_list = NULL;
+   bw->dd_list_index = 0;
+   bw->found = FALSE;
+   find_text_window = NULL;
+   if (!prefs.popup_dialogs) 
+      a_Interface_msg(bw, "");
+   gtk_widget_grab_focus(GTK_WIDGET(GTK_BIN(bw->dd->docwin)->child));
+}
+
+/* 
+ * Close the dialog interface for finding text in a page
+ */
+void a_Interface_findtext_dialog_close(){
+   if (!find_text_window) return;
+   if (prefs.popup_dialogs) 
+      gtk_widget_destroy(find_text_window);
+   else {
+      gtk_widget_hide(find_text_window);
+   }
+}
+
+void Interface_add_search_dialog(BrowserWindow *bw)
+{
+   if (prefs.popup_dialogs) return;
+   if (bw->findtext_dialog) return;
+   bw->findtext_dialog = gtk_hbox_new(FALSE, 0);
+   bw->findtext_dialog_entry = gtk_entry_new();
+   bw->findtext_dialog_check = gtk_check_button_new_with_label("aA");
+   gtk_widget_set_usize(bw->findtext_dialog, 100, 0);
+   gtk_widget_show(bw->findtext_dialog_entry);
+   gtk_widget_show(bw->findtext_dialog_check);
+   gtk_tooltips_set_tip(tooltips, bw->findtext_dialog_entry,
+         _("press <Enter> to (repeat) search, <Esc> to close search"),
+         _("Search"));
+   gtk_tooltips_set_tip(tooltips, bw->findtext_dialog_check,
+         _("Case sensitive"),
+         _("Case sensitive"));
+   gtk_box_pack_start(GTK_BOX(bw->findtext_dialog),
+         bw->findtext_dialog_check, FALSE, FALSE, 0);
+   gtk_box_pack_start(GTK_BOX(bw->findtext_dialog),
+         bw->findtext_dialog_entry, TRUE, TRUE, 0);
+   gtk_box_pack_start(GTK_BOX(bw->status_box),
+         bw->findtext_dialog, TRUE, TRUE, 2);
+   gtk_signal_connect(GTK_OBJECT(bw->findtext_dialog_entry), "activate",
+         Interface_entry_search, (void *) bw);
+   gtk_signal_connect_object
+      (GTK_OBJECT(bw->findtext_dialog), "hide",
+       (GtkSignalFunc) a_Interface_findtext_dialog_destroy,
+       (void*) bw);
+   gtk_widget_add_accelerator(bw->findtext_dialog, "hide",
+         bw->accel_group, GDK_Escape, 0, 0);
+}
+
+/*
  * Show the dialog interface for finding text in a page
  */
 void a_Interface_findtext_dialog(BrowserWindow *bw)
 {
-   if (!bw->findtext_dialog_window) {
-      Interface_make_dialog(&(bw->findtext_dialog_window),
-         "findtext_dialog", "Dillo", "Dillo: Find text in page",
-         &(bw->findtext_dialog_entry), "", 1,
-         &(bw->findtext_dialog_check), "Case sensitive",
-         "Find", (GtkSignalFunc) 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));
-      gtk_signal_connect_object
-         (GTK_OBJECT(bw->findtext_dialog_window), "destroy",
-          (GtkSignalFunc) a_Dw_gtk_scrolled_window_reset_search,
-          (void*)bw->docwin);
-      gtk_window_set_position(GTK_WINDOW(bw->findtext_dialog_window),
-                              GTK_WIN_POS_NONE);
-   }
+   /* make search list if it has not been defined yet */
+   if(bw->dd_list == NULL)
+     bw->dd_list = a_Doc_get_visible_children(bw->dd);
+   bw->dd_list_index = 0;
+   /* reset found state */
+   bw->found = FALSE;
+
+   /* does the user want popup windows? */
+   if (prefs.popup_dialogs) {
+      /* YES: create search dialog popup */
+      if (!bw->findtext_dialog) {
+         Interface_make_dialog(&(bw->findtext_dialog),
+               "findtext_dialog", "Dillo", _("Dillo: Find text in page"),
+               &(bw->findtext_dialog_entry), "", 1,
+               &(bw->findtext_dialog_check), _("Case sensitive"),
+               _("Find"), (GtkSignalFunc) Interface_entry_search, (void *)bw);
+         if (prefs.transient_dialogs)
+            gtk_window_set_transient_for(GTK_WINDOW(bw->findtext_dialog),
+                  GTK_WINDOW(bw->main_window));
+         gtk_signal_connect_object
+            (GTK_OBJECT(bw->findtext_dialog), "destroy",
+             (GtkSignalFunc) a_Interface_findtext_dialog_destroy,
+             (void*) bw);
+         gtk_window_set_position(GTK_WINDOW(bw->findtext_dialog),
+               GTK_WIN_POS_NONE);
+      }
 
-   a_Interface_set_nice_window_pos(bw->findtext_dialog_window,
-                                   bw->main_window);
+      a_Interface_set_nice_window_pos(bw->findtext_dialog,
+            bw->main_window);
 
-   if (!GTK_WIDGET_VISIBLE(bw->findtext_dialog_window))
-      gtk_widget_show(bw->findtext_dialog_window);
-   else
-      gdk_window_raise(bw->findtext_dialog_window->window);
+      if (!GTK_WIDGET_VISIBLE(bw->findtext_dialog))
+         gtk_widget_show(bw->findtext_dialog);
+      else
+         gdk_window_raise(bw->findtext_dialog->window);
+   } else {
+      gtk_widget_show(bw->findtext_dialog);
+      gtk_widget_grab_focus(bw->findtext_dialog_entry);
+   }
+   find_text_window = bw->findtext_dialog;
 }
 
 /*
@@ -1892,7 +2008,7 @@ static void Interface_search_callback(Gt
 {
    gchar *keyw, *url_str;
 
-   keyw = gtk_editable_get_chars(GTK_EDITABLE(bw->search_dialog_entry), 0, -1);
+   keyw = a_I18n_gtk_editable_get_chars(GTK_EDITABLE(bw->search_dialog_entry), 0, -1);
    if (keyw) {
       url_str = Interface_make_search_url(keyw);
       Interface_open_url_string(url_str, bw);
@@ -1910,9 +2026,9 @@ void a_Interface_search_dialog(GtkWidget
 {
    if (!bw->search_dialog_window) {
       Interface_make_dialog(&(bw->search_dialog_window),
-         "search_dialog", "Dillo", "Dillo: Search the Web",
+         "search_dialog", _("Dillo"), _("Dillo: Search the Web"),
          &(bw->search_dialog_entry), "", 1, NULL, NULL,
-         "Search", (GtkSignalFunc)Interface_search_callback, (void *)bw);
+         _("Search"), (GtkSignalFunc)Interface_search_callback, (void *)bw);
       if (prefs.transient_dialogs)
          gtk_window_set_transient_for(GTK_WINDOW(bw->search_dialog_window),
                                       GTK_WINDOW(bw->main_window));
@@ -1931,7 +2047,7 @@ static void Interface_entry_proxy_passwd
 {
    gchar *text;
 
-   text = gtk_editable_get_chars(GTK_EDITABLE(bw->proxy_passwd_dialog_entry),
+   text = a_I18n_gtk_editable_get_chars(GTK_EDITABLE(bw->proxy_passwd_dialog_entry),
                                  0, -1);
    a_Http_set_proxy_passwd(text);
    g_free(text);
@@ -1947,14 +2063,14 @@ void a_Interface_proxy_passwd_dialog(Bro
 {
    GString *buf = g_string_new("");
 
-   g_string_sprintf(buf, "Dillo: Enter proxy password for '%s'",
+   g_string_sprintf(buf, _("Dillo: Enter proxy password for '%s'"),
                     prefs.http_proxyuser);
 
    if (!bw->proxy_passwd_dialog_window) {
       Interface_make_dialog(&(bw->proxy_passwd_dialog_window),
          "proxy_passwd_dialog", "Dillo", buf->str,
          &(bw->proxy_passwd_dialog_entry), "", 0, NULL, NULL,
-         "OK", (GtkSignalFunc)Interface_entry_proxy_passwd, (void *)bw);
+         _("OK"), (GtkSignalFunc)Interface_entry_proxy_passwd, (void *)bw);
       if (prefs.transient_dialogs)
          gtk_window_set_transient_for(
             GTK_WINDOW(bw->proxy_passwd_dialog_window),
@@ -2011,7 +2127,7 @@ void a_Interface_message_window(const ch
 
    window = gtk_window_new(GTK_WINDOW_DIALOG);
    gtk_window_set_wmclass(GTK_WINDOW(window), "question_dialog", "dillo");
-   gtk_window_set_title(GTK_WINDOW(window), title);
+   a_I18n_gtk_window_set_title(GTK_WINDOW(window), title);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_container_border_width(GTK_CONTAINER(window), 10);
    gtk_signal_connect_object(GTK_OBJECT(window), "delete_event",
@@ -2024,7 +2140,7 @@ void a_Interface_message_window(const ch
    box = gtk_vbox_new(FALSE, 5);
    frame = gtk_frame_new(NULL);
    gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
-   label = gtk_label_new(msg);
+   label = a_I18n_gtk_label_new(msg);
    gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_FILL);
    gtk_misc_set_padding(GTK_MISC(label), 20, 20);
    gtk_container_add(GTK_CONTAINER(frame), label);
@@ -2032,7 +2148,7 @@ void a_Interface_message_window(const ch
    gtk_widget_show(frame);
    gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 0);
 
-   button = gtk_button_new_with_label("Close");
+   button = gtk_button_new_with_label(_("Close"));
    gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
                              (GtkSignalFunc)gtk_widget_destroy, (void*)window);
    gtk_widget_add_accelerator(button, "clicked",
@@ -2057,6 +2173,7 @@ void a_Interface_text_window (GtkWidget 
 {
    gint xsize, ysize;
    GtkWidget *window, *box1, *button, *scrolled_window, *text;
+   char *enc_buf, *charset;
 
    if (*text_widget)
       gtk_widget_destroy (*text_widget);
@@ -2075,7 +2192,7 @@ void a_Interface_text_window (GtkWidget 
                           GTK_SIGNAL_FUNC(gtk_widget_destroyed),
                           text_widget);
 
-      gtk_window_set_title (GTK_WINDOW (window), title);
+      a_I18n_gtk_window_set_title (GTK_WINDOW (window), title);
       gtk_container_border_width (GTK_CONTAINER (window), 0);
 
       box1 = gtk_vbox_new (FALSE, 0);
@@ -2095,10 +2212,18 @@ void a_Interface_text_window (GtkWidget 
       gtk_widget_show (text);
 
       gtk_text_freeze (GTK_TEXT (text));
-      gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL, buf, buf_size);
+
+      charset = a_I18n_get_charset_from_meta_tag(buf, buf_size);
+      if (!charset) charset = a_I18n_get_encoding(buf, buf_size);
+      enc_buf = a_I18n_convert(charset, DW_CHARSET, buf, buf_size);
+      g_free(charset);
+      
+      if (enc_buf) 
+         gtk_text_insert (GTK_TEXT (text),
+               NULL, NULL, NULL, enc_buf, strlen(enc_buf));
       gtk_text_thaw (GTK_TEXT (text));
 
-      button = gtk_button_new_with_label ("close");
+      button = gtk_button_new_with_label (_("close"));
       gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
                                  GTK_SIGNAL_FUNC(gtk_widget_destroy),
                                  GTK_OBJECT (window));
@@ -2156,3 +2281,5 @@ void a_Interface_set_nice_window_pos(Gtk
          gtk_widget_set_uposition(win1, (sh - h1) / 2, 0);
    }
 }
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/src/interface.h dillo-0.8.6-i18n-misc-20060709/src/interface.h
--- dillo-0.8.6/src/interface.h	2005-10-28 01:20:13.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/interface.h	2006-05-16 01:21:09.000000000 +0900
@@ -6,7 +6,7 @@
 /*
  * This struct is used with custom dialogs.
  * It can be extended to provide extra widgets (e.g. check buttons).
- *
+ * 
  */
 typedef struct _DialogAnswer DialogAnswer;
 struct _DialogAnswer {
@@ -18,14 +18,8 @@ struct _DialogAnswer {
 
 
 void a_Interface_init(void);
-void a_Interface_stop(BrowserWindow *bw);
-void a_Interface_clean(BrowserWindow *bw);
-void a_Interface_quit_all(void);
 
-void a_Interface_add_client(BrowserWindow *bw, gint Key, gint Root);
-void a_Interface_remove_client(BrowserWindow *bw, gint ClientKey);
-void a_Interface_add_url(BrowserWindow *bw, const DilloUrl *Url, gint Flags);
-void a_Interface_close_client(BrowserWindow *bw, gint ClientKey);
+void a_Interface_quit_all(void);
 
 void a_Interface_msg(BrowserWindow *bw, const char *format, ... );
 void a_Interface_bug_meter_update(BrowserWindow *bw, gint num_err);
@@ -36,6 +30,8 @@ void a_Interface_save_dialog(GtkWidget *
 void a_Interface_save_link_dialog(GtkWidget *widget, BrowserWindow *bw);
 void a_Interface_offer_link_download(BrowserWindow *bw, const DilloUrl *url);
 void a_Interface_search_dialog(GtkWidget *widget, BrowserWindow *bw);
+void Interface_findtext_dialog_destroy(BrowserWindow *bw);
+void a_Interface_findtext_dialog_close();
 void a_Interface_findtext_dialog(BrowserWindow *bw);
 void a_Interface_proxy_passwd_dialog(BrowserWindow *bw);
 void a_Interface_quit_dialog(BrowserWindow *bw);
@@ -45,7 +41,12 @@ void a_Interface_set_location_text(Brows
 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);
-void a_Interface_set_cursor(BrowserWindow *bw, GdkCursorType CursorType);
+
+void a_Interface_toggle_panel(BrowserWindow *bw, gboolean toggle);
+
+/* content (scrolled_frame and everything in it) focus callback */
+void a_Interface_content_focus_callback(BrowserWindow *bw);
+
 BrowserWindow *
 a_Interface_browser_window_new(gint width, gint height, guint32 xid);
 
@@ -54,7 +55,7 @@ void a_Interface_set_button_sens(Browser
 void a_Interface_scroll_popup(GtkWidget *widget);
 
 void a_Interface_question_dialog(
-        BrowserWindow *bw, gchar *QuestionTxt, gint modal_flag,
+        DilloDoc *dd, gchar *QuestionTxt, gint modal_flag,
         char *alt1, char *alt2, char *alt3, char *alt4, char *alt5,
         GtkSignalFunc AnswerCallback);
 void a_Interface_message_window(const char *title, const char *format, ... );
@@ -65,5 +66,10 @@ void a_Interface_text_window (GtkWidget 
 
 void a_Interface_set_nice_window_pos(GtkWidget *win1, GtkWidget *win2);
 
+void a_Interface_passwd_dialog(BrowserWindow *bw,
+        gchar *Context,
+        GtkSignalFunc OkCallback, void *OkCbData,
+        GtkSignalFunc CancelCallback, void *CancelCbData);
+ 
 
 #endif /* __INTERFACE_H__ */
diff -pruN dillo-0.8.6/src/intl.h dillo-0.8.6-i18n-misc-20060709/src/intl.h
--- dillo-0.8.6/src/intl.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/intl.h	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,24 @@
+#ifndef __INTL_H__
+#define __INTL_H__
+
+#ifdef ENABLE_NLS
+#  include <libintl.h>
+#  include <locale.h>
+#  define _(String) dgettext(PACKAGE,String)
+#  ifdef gettext_noop
+#    define N_(String) gettext_noop(String)
+#  else
+#    define N_(String) (String)
+#  endif /* gettext_noop */
+#else
+#  define _(String) (String)
+#  define N_(String) (String)
+#  define textdomain(String) (String)
+#  define gettext(String) (String)
+#  define dgettext(Domain,String) (String)
+#  define dcgettext(Domain,String,Type) (String)
+#  define bindtextdomain(Domain,Directory) (Domain) 
+#  define bind_textdomain_codeset(Domain,Codeset) (Domain) 
+#endif /* ENABLE_NLS */
+
+#endif /* __INTL_H__ */
diff -pruN dillo-0.8.6/src/menu.c dillo-0.8.6-i18n-misc-20060709/src/menu.c
--- dillo-0.8.6/src/menu.c	2005-10-28 01:20:13.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/menu.c	2006-05-16 01:21:09.000000000 +0900
@@ -20,11 +20,16 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+#include <config.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
+#include "intl.h"
+#include "i18n.h"
+#include "i18n_gtk.h"
+#include "prefs.h"
 #include "history.h"
 #include "nav.h"
 #include "commands.h"
@@ -38,6 +43,8 @@
 #include "gtk_ext_menu_item.h"
 #include "gtk_menu_title.h"
 
+/* NOTE: default charset is DW_CHARSET */
+
 /*
  * Forward declarations
  */
@@ -156,31 +163,54 @@ GtkWidget *a_Menu_mainbar_new(BrowserWin
 {
    GtkWidget *menubar;
    GtkWidget *file_menu;
+   GtkWidget *view_menu;
+
    /* GtkWidget *help_menu; */
 
    bw->menubar = menubar = gtk_menu_bar_new();
 
    /* FILE MENU */
-   file_menu = Menu_new(menubar, tiny ? "_F" : "_File", FALSE, bw);
-   Menu_add(file_menu, "_New Browser", "<ctrl>N", bw,
+   file_menu = Menu_new(menubar, tiny ? "_F" : _("_File"), FALSE, bw);
+   Menu_add(file_menu, _("_New Window"), "<ctrl>N", bw,
             a_Commands_new_callback, bw);
-   Menu_add(file_menu, "_Open File...", "<ctrl>O", bw,
+#ifndef DISABLE_TABS
+   Menu_add(file_menu, _("New _Tab"), "<ctrl>T", bw,
+            a_Commands_new_tab_callback, bw);
+   Menu_sep(file_menu);
+#endif /* !DISABLE_TABS */
+   Menu_add(file_menu, _("_Open File..."), "<ctrl>O", bw,
             a_Commands_openfile_callback, bw);
-   Menu_add(file_menu, "Open _URL...", "<ctrl>L", bw,
+   Menu_add(file_menu, _("Open _URL..."), "<ctrl>L", bw,
             a_Commands_openurl_callback, bw);
    /*
-   Menu_add(file_menu, "_Preferences", "<ctrl>E", bw,
+   Menu_add(file_menu, _("_Preferences"), "<ctrl>E", bw,
             a_Commands_prefs_callback, bw);
    */
-   Menu_add(file_menu, "Close Window", "<ctrl>Q", bw,
+   Menu_add(file_menu, _("Close Window"), "<ctrl>Q", bw,
             a_Commands_close_callback, bw);
+#ifndef DISABLE_TABS
+   Menu_add(file_menu, _("Close Tab"), "<ctrl>W", bw,
+            a_Commands_close_current_tab_callback, bw);
+#endif /* !DISABLE_TABS */
    Menu_sep(file_menu);
-   Menu_add(file_menu, "Exit Dillo", "<alt>Q", bw,
+   Menu_add(file_menu, _("Exit Dillo"), "<alt>Q", bw,
             a_Commands_exit_callback, bw);
 
+   /* VIEW MENU */
+   view_menu = Menu_new(menubar, tiny? "_V" : _("_View"), FALSE, bw);
+#ifndef DISABLE_TABS
+   Menu_add(view_menu, _("Previous tab"), "<ctrl>comma", bw,
+            a_Commands_tab_prev_callback, bw);
+   Menu_add(view_menu, _("Next tab"), "<ctrl>period", bw,
+            a_Commands_tab_next_callback, bw);
+   Menu_sep(view_menu);
+#endif /* !DISABLE_TABS */
+   Menu_add(view_menu, _("_Options..."), NULL, bw,
+            a_Commands_prefs_callback, bw);
+
    /* HELP MENU
-   help_menu = Menu_new(menubar, "_Help", TRUE, bw);
-   Menu_add(help_menu, "Dillo _Home", NULL, bw,
+   help_menu = Menu_new(menubar, _("_Help"), TRUE, bw);
+   Menu_add(help_menu, _("Dillo _Home"), NULL, bw,
             a_Commands_helphome_callback, bw);
    */
    return menubar;
@@ -195,28 +225,149 @@ GtkWidget *a_Menu_popup_op_new(BrowserWi
 
    menu = gtk_menu_new();
    Menu_sep(menu);
-   Menu_add_title(menu, "PAGE OPTIONS");
+   Menu_add_title(menu, _("PAGE OPTIONS"));
    Menu_sep(menu);
-   Menu_add(menu, "View page Source", NULL, bw,
+   if(prefs.show_popup_navigation) {
+     bw->back_op_menu_button = Menu_add(menu, _("Back"), NULL, bw,
+					a_Commands_back_callback, bw);
+     bw->forw_op_menu_button = Menu_add(menu, _("Forward"), NULL, bw,
+					a_Commands_forw_callback, bw);
+     bw->stop_op_menu_button = Menu_add(menu, _("Stop"), NULL, bw,
+					a_Commands_stop_callback, bw);
+     Menu_add(menu, _("_Reload"), "<ctrl>r", bw,
+	      a_Commands_reload_callback, bw);
+     Menu_sep(menu);
+   }
+   Menu_add(menu, _("View page So_urce"), NULL, bw,
             a_Commands_viewsource_callback, bw);
-   bw->viewbugs_menuitem = Menu_add(menu, "View page Bugs", NULL,bw, NULL,bw);
-
-   Menu_add(menu, "Bookmark this page", NULL, bw,
+   bw->viewbugs_menuitem = Menu_add(menu, _("View page Bugs"), NULL,bw, NULL,bw);
+   Menu_add(menu, _("_Bookmark this Page"), NULL, bw,
             a_Commands_addbm_callback, bw);
    Menu_sep(menu);
-   Menu_add(menu, "_Find Text", "<ctrl>F", bw,
+   Menu_add(menu, _("Duplicate this Page"), "<alt>n", bw,
+            a_Commands_duplicate_callback, bw);
+#ifndef DISABLE_TABS
+   Menu_add(menu, _("Duplicate this tab"), "<alt>t", bw,
+            a_Commands_duplicate_tab_callback, bw);
+#endif /* !DISABLE_TABS */
+   Menu_sep(menu);
+   Menu_add(menu, _("_Find Text"), "<ctrl>F", bw,
             a_Commands_findtext_callback, bw);
 
-   bw->pagemarks_menuitem = Menu_add(menu, "Jump to...", NULL, bw, NULL, bw);
+   bw->pagemarks_menuitem = Menu_add(menu, _("Jump to..."), NULL, bw, NULL, NULL);
+   bw->frame_menuitem = Menu_add(menu, _("This Frame..."), NULL, bw, NULL, NULL);
+   bw->frameset_menuitem = Menu_add(menu, _("This Frameset..."), NULL, bw, NULL, NULL);
 
    Menu_sep(menu);
-   Menu_add(menu, "Save page As...", NULL, bw,
+   Menu_add(menu, _("Save Page As..."), "<ctrl>s", bw,
             a_Commands_save_callback, bw);
 
    return menu;
 }
 
 /*
+ * Make a new frame menu and return it
+ */
+GtkWidget *a_Menu_popup_of_new(DilloDoc *dd)
+{
+  GtkWidget *menu;
+
+  menu = gtk_menu_new();
+  Menu_sep(menu);
+  Menu_add_title(menu, _("FRAME OPTIONS"));
+  Menu_sep(menu);
+  if (prefs.show_popup_navigation) {
+     dd->bw->back_op_menu_button = Menu_add(menu, _("Back"), NULL, dd->bw,
+					a_Commands_back_callback, dd->bw);
+     dd->bw->forw_op_menu_button = Menu_add(menu, _("Forward"), NULL, dd->bw,
+					a_Commands_forw_callback, dd->bw);
+     dd->bw->stop_op_menu_button = Menu_add(menu, _("Stop"), NULL, dd->bw,
+					a_Commands_stop_callback, dd->bw);
+     Menu_add(menu, _("_Reload"), NULL, dd->bw,
+	      a_Commands_reload_callback, dd->bw);
+     Menu_sep(menu);
+  }
+  Menu_add(menu, _("View frame Source"), NULL, dd->bw,
+	   a_Commands_viewsource_doc_callback, dd);
+  Menu_add(menu, _("Bookmark this Frame"), NULL, dd->bw,
+	   a_Commands_addbm_doc_callback, dd);
+  Menu_add(menu, _("Reload this Frame"), NULL, dd->bw,
+	   a_Commands_reload_doc_callback, dd);
+  Menu_sep(menu);
+  Menu_add(menu, _("Show only this Frame"), NULL, dd->bw,
+	   a_Commands_showonly_doc_callback, dd);
+  Menu_add(menu, _("Open Frame in new Window"), NULL, dd->bw,
+	   a_Commands_open_link_nw_callback, dd->bw);
+#ifndef DISABLE_TABS
+  Menu_add(menu, _("Open Frame in new Tab"), NULL, dd->bw,
+	   a_Commands_open_link_nw_tab_callback, dd->bw);
+#endif /* !DISABLE_TABS */
+  Menu_sep(menu);
+  Menu_add(menu, _("_Find Text in this Frame..."), NULL, dd->bw,
+	   a_Commands_findtext_doc_callback, dd);
+  Menu_sep(menu);
+  Menu_add(menu, _("Save Frame As..."), NULL, dd->bw,
+	   a_Commands_save_doc_callback, dd);
+  
+  return menu;
+}
+
+/*
+ * Make a new frameset menu and return it
+ *
+ */
+GtkWidget *a_Menu_popup_ofs_new(DilloDoc *dd)
+{
+  GtkWidget *frameset_menu;
+
+  frameset_menu = gtk_menu_new();
+  Menu_sep(frameset_menu);
+  Menu_add_title(frameset_menu, _("FRAMESET OPTIONS"));
+  Menu_sep(frameset_menu);
+  Menu_add(frameset_menu, _("View Frameset Source"), NULL, dd->bw,
+	   a_Commands_viewsource_doc_callback, dd->parent);
+  Menu_add(frameset_menu, _("Bookmark this Frameset"), NULL, dd->bw,
+	   a_Commands_addbm_doc_callback, dd->parent);
+  Menu_add(frameset_menu, _("Reload this Frameset"), NULL, dd->bw,
+	   a_Commands_reload_doc_callback, dd->parent);
+  Menu_sep(frameset_menu);
+  Menu_add(frameset_menu, _("Show only this Frameset"), NULL, dd->bw,
+	   a_Commands_showonly_doc_callback, dd->parent);
+  Menu_sep(frameset_menu);
+  Menu_add(frameset_menu, _("_Find Text in this Frameset..."), NULL, dd->bw,
+	   a_Commands_findtext_doc_callback, dd->parent);
+  Menu_sep(frameset_menu);
+  Menu_add(frameset_menu, _("Save Frame As..."), NULL, dd->bw,
+	   a_Commands_save_doc_callback, dd->parent);
+
+  return frameset_menu;
+}
+
+
+#ifndef DISABLE_TABS
+/*
+ * Make a new popup menu for when the mouse is over a tab
+ */
+GtkWidget *a_Menu_popup_tab_new(DilloDoc *dd)
+{
+   GtkWidget *menu;
+
+   menu = gtk_menu_new();
+   Menu_sep(menu);
+   Menu_add_title(menu, _("TAB OPTIONS"));
+   Menu_sep(menu);
+   Menu_add(menu, _("Close Tab"), NULL, dd->bw,
+            a_Commands_close_tab_callback, dd);
+   Menu_add(menu, _("New Tab"), NULL, dd->bw,
+            a_Commands_new_tab_callback, dd->bw);
+   Menu_add(menu, _("Reload Tab"), NULL, dd->bw,
+            a_Commands_reload_doc_callback, dd);
+   return menu;
+}
+
+#endif /* !DISABLE_TABS */
+
+/*
  * Set the popup's primary DilloUrl
  */
 void a_Menu_popup_set_url(BrowserWindow *bw, const DilloUrl *url)
@@ -267,8 +418,8 @@ Menu_popup_history_select_callback(GtkWi
    BrowserWindow *bw = data;
 
    idx = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT (widget), "nav_idx"));
-   if (idx >= 0 && idx < a_Nav_stack_size(bw)) {
-      a_Interface_msg(bw, "%s", URL_STR_(a_History_get_url(NAV_IDX(bw,idx))));
+   if (idx >= 0 && idx < a_Nav_stack_size(bw->dd)) {
+      a_Interface_msg(bw, "%s", URL_STR_(a_History_get_url(NAV_IDX(bw->dd,idx))));
       bw->status_is_link = 1;
    }
 }
@@ -284,6 +435,15 @@ Menu_popup_history_deselect_callback(Gtk
 }
 
 /*
+ * Called when the user selects "Copy Link Location" in the link menu.
+ */
+void a_Menu_popup_select_url_callback(GtkWidget *widget, gpointer client_data)
+{
+   BrowserWindow *bw = (BrowserWindow *)client_data;
+   a_Selection_set_selection(widget, URL_STR(a_Menu_popup_get_url(bw)));
+}
+
+/*
  * Make a new popup menu for history browsing
  * direction: {backward = -1, forward = 1}
  */
@@ -292,31 +452,39 @@ GtkWidget *a_Menu_popup_history_new(Brow
    int i;
    GtkWidget *menu, *menu_item;
    GString *text = g_string_sized_new(128);
+   gchar *text_enc;
 
    menu = a_Gtk_ext_menu_new();
    Menu_sep(menu);
    if (direction>0) {
-      Menu_add_title(menu, "FOLLOWING PAGES");
-      i = a_Nav_stack_ptr(bw) + 1;
+      Menu_add_title(menu, _("FOLLOWING PAGES"));
+      i = a_Nav_stack_ptr(bw->dd) + 1;
    } else {
-      Menu_add_title(menu, "PREVIOUS PAGES");
-      i = a_Nav_stack_ptr(bw) - 1;
+      Menu_add_title(menu, _("PREVIOUS PAGES"));
+      i = a_Nav_stack_ptr(bw->dd) - 1;
    }
    Menu_sep(menu);
 
-   for ( ; i >= 0 && i < a_Nav_stack_size(bw); i+=direction ) {
-      if (a_History_get_title(NAV_IDX(bw,i))) {
-         g_string_assign(text, a_History_get_title(NAV_IDX(bw,i)));
+   for ( ; i >= 0 && i < a_Nav_stack_size(bw->dd); i+=direction ) {
+      if (a_History_get_title(NAV_IDX(bw->dd,i))) {
+         g_string_assign(text, a_History_get_title(NAV_IDX(bw->dd,i)));
       } else {
-         g_string_assign(text, URL_STR(a_History_get_url(NAV_IDX(bw,i))));
+         g_string_assign(text, URL_STR(a_History_get_url(NAV_IDX(bw->dd,i))));
       }
       if ( text->len > 64 ) {
-         g_string_truncate(text, 64);
+		 int max_len = 64;
+		 while (IS_UTF8_NON_FIRST_CHAR(text->str[max_len - 1]))
+			 max_len--;
+		 if (IS_UTF8_FIRST_CHAR(text->str[max_len - 1]))
+			 max_len--;
+         g_string_truncate(text, max_len);
          g_string_append(text, "...");
       }
-      menu_item = a_Gtk_ext_menu_item_new_with_label(text->str);
+	  text_enc = a_I18n_DW_CHARSET_from_DILLO_CHARSET(text->str, text->len);
+      menu_item = a_Gtk_ext_menu_item_new_with_label(text_enc);
       gtk_menu_append(GTK_MENU(menu), menu_item);
       gtk_widget_show(menu_item);
+	  g_free(text_enc);
       /* attach the nav_stack index to the menu item */
       gtk_object_set_data(GTK_OBJECT (menu_item), "nav_idx",
                           GINT_TO_POINTER(i));
@@ -360,23 +528,29 @@ GtkWidget *a_Menu_popup_ol_new(BrowserWi
 
    menu = gtk_menu_new();
    Menu_sep(menu);
-   Menu_add_title(menu, "LINK OPTIONS");
+   Menu_add_title(menu, _("LINK OPTIONS"));
    Menu_sep(menu);
-   Menu_add(menu, "Open Link in New Window", NULL, bw,
+   Menu_add(menu, _("Open Link in New Window"), NULL, bw,
             a_Commands_open_link_nw_callback, bw);
-   Menu_add(menu, "Bookmark this Link", NULL, bw,
-            a_Commands_addbm_callback, bw);
-
-   copy = Menu_add(menu, "Copy Link location", NULL, bw,
-                   a_Commands_select_popup_url_callback, bw);
+#ifndef DISABLE_TABS
+   Menu_add(menu, _("Open Link in New Tab"), NULL, bw,
+            a_Commands_open_link_nw_tab_callback, bw);
+#endif /* !DISABLE_TABS */
+   Menu_add(menu, _("Open Link"), NULL, bw,
+            a_Commands_open_link_callback, bw);
+   Menu_sep(menu);
+   Menu_add(menu, _("Bookmark this Link"), NULL, bw,
+            a_Commands_addbm_link_callback, bw);
+    copy = Menu_add(menu, _("Copy Link location"), NULL, bw,
+                    a_Menu_popup_select_url_callback, bw);
    a_Selection_init_selection(copy);
 
    Menu_sep(menu);
-   Menu_add(menu, "Save Link As...", NULL, bw,
+   Menu_add(menu, _("Save Link As..."), NULL, bw,
             a_Commands_save_link_callback, bw);
 
    Menu_sep(menu);
-   menuitem = Menu_add(menu, "Image Menu...", NULL, bw, NULL, bw);
+   menuitem = Menu_add(menu, _("Image Menu..."), NULL, bw, NULL, bw);
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem),
                              bw->menu_popup.over_image);
    bw->menu_popup.ol_oi_submenu = menuitem;
@@ -394,20 +568,27 @@ GtkWidget *a_Menu_popup_oi_new (BrowserW
 
    menu = gtk_menu_new();
    Menu_sep(menu);
-   Menu_add_title(menu, "IMAGE OPTIONS");
+   Menu_add_title(menu, _("IMAGE OPTIONS"));
    Menu_sep(menu);
-   Menu_add(menu, "Isolate Image", NULL, bw,
+   Menu_add(menu, _("Isolate Image"), NULL, bw,
             a_Commands_open_link_callback, bw);
-   Menu_add(menu, "Open Image in New Window", NULL, bw,
+   Menu_add(menu, _("Open Image in New Window"), NULL, bw,
             a_Commands_open_link_nw_callback, bw);
-   Menu_add(menu, "Bookmark this Image", NULL, bw,
-            a_Commands_addbm_callback, bw);
-   copy = Menu_add(menu, "Copy Image location", NULL, bw,
-                   a_Commands_select_popup_url_callback, bw);
+#ifndef DISABLE_TABS
+   Menu_add(menu, _("Open Image in New Tab"), NULL, bw,
+            a_Commands_open_link_nw_tab_callback, bw);
+#endif /* !DISABLE_TABS */
+   Menu_add(menu, _("Open Image"), NULL, bw,
+           a_Commands_open_link_callback, bw);
+   Menu_sep(menu);
+   Menu_add(menu, _("Bookmark this Image"), NULL, bw,
+            a_Commands_addbm_link_callback, bw);
+   copy = Menu_add(menu, _("Copy Image location"), NULL, bw,
+                   a_Menu_popup_select_url_callback, bw);
    a_Selection_init_selection(copy);
 
    Menu_sep(menu);
-   Menu_add(menu, "Save Image As...", NULL, bw,
+   Menu_add(menu, _("Save Image As..."), NULL, bw,
             a_Commands_save_link_callback, bw);
    return menu;
 }
@@ -421,14 +602,14 @@ GtkWidget *a_Menu_popup_ob_new (BrowserW
 
    menu = gtk_menu_new();
    Menu_sep(menu);
-   Menu_add_title(menu, "BUG METER OPTIONS");
+   Menu_add_title(menu, _("BUG METER OPTIONS"));
    Menu_sep(menu);
-   Menu_add(menu, "Validate URL with W3C", NULL, bw,
+   Menu_add(menu, _("Validate URL with W3C"), NULL, bw,
             a_Commands_ob_w3c_callback, bw);
-   Menu_add(menu, "Validate URL with WDG", NULL, bw,
+   Menu_add(menu, _("Validate URL with WDG"), NULL, bw,
             a_Commands_ob_wdg_callback, bw);
    Menu_sep(menu);
-   Menu_add(menu, "About Bug Meter...", NULL, bw,
+   Menu_add(menu, _("About Bug Meter..."), NULL, bw,
             a_Commands_ob_info_callback, bw);
    return menu;
 }
@@ -455,28 +636,46 @@ void a_Menu_popup_ol_show_oi(BrowserWind
 static void Menu_pagemarks_goto_pagemark(GtkWidget *widget,
                                          gpointer client_data)
 {
-   BrowserWindow *bw = (BrowserWindow *) client_data;
+   DilloDoc *dd = (DilloDoc *) client_data;
    char anchor[32];
 
    g_snprintf (anchor, 32, "#%ld", (long int)widget);
-   a_Dw_gtk_scrolled_window_set_anchor(GTK_DW_SCROLLED_WINDOW(bw->docwin),
+   a_Dw_gtk_scrolled_window_set_anchor(GTK_DW_SCROLLED_WINDOW(dd->docwin),
                                        anchor);
 }
 
 /*
- * Deallocate the memory used by a pagemarks menu and create a new one
+ * Deallocate memory used by a pagemark menu
  */
-void a_Menu_pagemarks_new(BrowserWindow *bw)
+void a_Menu_pagemarks_destroy(DilloDoc *dd)
 {
-   gtk_widget_set_sensitive(bw->pagemarks_menuitem, FALSE);
-
-   if (bw->pagemarks_menu)
-      gtk_widget_destroy(bw->pagemarks_menu);
-   bw->pagemarks_menu = gtk_menu_new();
-   bw->pagemarks_last = NULL;
+   /* set pagemarks menu insensitive if this is the current tab */
+   if(dd->bw->dd == dd)
+      gtk_widget_set_sensitive(dd->bw->pagemarks_menuitem, FALSE);
+   if (GTK_IS_WIDGET(dd->pagemarks_menu))
+   {
+      gtk_object_unref(GTK_OBJECT(dd->pagemarks_menu));
+      dd->pagemarks_menu = NULL;
+      dd->pagemarks_last = NULL;
+   }
+}
 
-   gtk_menu_item_set_submenu(GTK_MENU_ITEM(bw->pagemarks_menuitem),
-                             bw->pagemarks_menu);
+/*
+ * Deallocate the memory used by a pagemarks menu and create a new one
+ */
+void a_Menu_pagemarks_new(DilloDoc *dd)
+{
+   a_Menu_pagemarks_destroy(dd);
+   dd->pagemarks_menu = gtk_menu_new();
+   /* add a reference to the object, otherwise it will be destroyed
+    * when the document (tab) is switched */
+   gtk_object_ref(GTK_OBJECT(dd->pagemarks_menu));
+   dd->pagemarks_last = NULL;
+
+   /* add to bw's menu only if this is the current tab */
+   if(dd->bw->dd == dd)
+      gtk_menu_item_set_submenu(GTK_MENU_ITEM(dd->bw->pagemarks_menuitem),
+                               dd->pagemarks_menu);
 }
 
 /*
@@ -484,43 +683,61 @@ void a_Menu_pagemarks_new(BrowserWindow 
  * The text can be set only at the closing H tag.
  * level is the level of the heading (1-6).
  */
-void a_Menu_pagemarks_add(BrowserWindow *bw, void *page, void *style,
+void a_Menu_pagemarks_add(DilloDoc *dd, void *page, void *style,
                           gint level)
 {
    char anchor[32], spaces[32], name[32];
 
-   gtk_widget_set_sensitive(bw->pagemarks_menuitem, TRUE);
+   /* set pagemarks menu sensitive if this is the current tab */
+   if(dd->bw->dd == dd)
+     gtk_widget_set_sensitive(dd->bw->pagemarks_menuitem, TRUE);
    g_snprintf(spaces, 32, "%*s", 3 * (level - 1), "");
-   bw->pagemarks_last = Menu_add(bw->pagemarks_menu, spaces, NULL, bw,
-                                 Menu_pagemarks_goto_pagemark, bw);
-   g_snprintf(anchor, 32, "#%ld", (glong)(bw->pagemarks_last));
+   dd->pagemarks_last = gtk_menu_item_new_with_label(spaces);
+   gtk_menu_append(GTK_MENU(dd->pagemarks_menu),dd->pagemarks_last);
+   gtk_widget_show(dd->pagemarks_last);
+   gtk_signal_connect(GTK_OBJECT(dd->pagemarks_last), "activate",
+                      (GtkSignalFunc) Menu_pagemarks_goto_pagemark, dd);
+   /* was:
+    * Menu_add(dd->pagemarks_menu, spaces, NULL, dd,
+    *          Pagemark_goto_pagemark, dd);
+    * but Menu_add is a private function for menu.c so... */
+   g_snprintf(anchor, 32, "#%ld", (glong)(dd->pagemarks_last));
    a_Dw_page_add_anchor(page, anchor, style);
-   gtk_signal_connect (GTK_OBJECT (bw->pagemarks_last), "select",
+   gtk_signal_connect (GTK_OBJECT (dd->pagemarks_last), "select",
                        GTK_SIGNAL_FUNC (a_Interface_scroll_popup), NULL);
    g_snprintf(name, 32, "dilloHeading%d", level);
-   gtk_widget_set_name(bw->pagemarks_last, name);
+   gtk_widget_set_name(dd->pagemarks_last, name);
 }
 
 /*
  * Set the text for the last created pagemark.
  */
-void a_Menu_pagemarks_set_text(BrowserWindow *bw, const char *str)
+void a_Menu_pagemarks_set_text(DilloDoc *dd, const char *str)
 {
    GString *text;
    GtkWidget *child;
+   char *label_text;
 
    /* Avoid problems with lonely closing tags and nested headings */
-   if ( bw->pagemarks_last &&
-       (child = GTK_BIN (bw->pagemarks_last)->child) &&
+   if ( dd->pagemarks_last &&
+       (child = GTK_BIN (dd->pagemarks_last)->child) &&
        GTK_IS_LABEL (child) ) {
       text = g_string_new(GTK_LABEL(child)->label);
       g_string_append(text, str);
       if ( text->len > 64 ) {
-         g_string_truncate(text, 64);
+		 int max_len = 64;
+		 while (IS_UTF8_NON_FIRST_CHAR(text->str[max_len - 1]))
+			 max_len--;
+		 if (IS_UTF8_FIRST_CHAR(text->str[max_len - 1]))
+			 max_len--;
+         g_string_truncate(text, max_len);
          g_string_append(text, "...");
       }
-      gtk_label_set_text(GTK_LABEL (child), text->str);
+	  label_text = a_I18n_string_check(text->str, DILLO_CHARSET);
+      a_I18n_gtk_label_set_text(GTK_LABEL (child), label_text);
+	  g_free(label_text);
       g_string_free(text, 1);
-      bw->pagemarks_last = NULL;
+      dd->pagemarks_last = NULL;
    }
 }
+
diff -pruN dillo-0.8.6/src/menu.h dillo-0.8.6-i18n-misc-20060709/src/menu.h
--- dillo-0.8.6/src/menu.h	2005-10-28 01:20:13.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/menu.h	2006-05-16 01:21:09.000000000 +0900
@@ -8,7 +8,12 @@ GtkWidget *a_Menu_popup_op_new (BrowserW
 GtkWidget *a_Menu_popup_ol_new (BrowserWindow *bw);
 GtkWidget *a_Menu_popup_oi_new (BrowserWindow *bw);
 GtkWidget *a_Menu_popup_ob_new (BrowserWindow *bw);
+GtkWidget *a_Menu_popup_of_new (DilloDoc *dd);
+GtkWidget *a_Menu_popup_ofs_new (DilloDoc *dd);
 GtkWidget *a_Menu_popup_history_new(BrowserWindow *bw, gint direction);
+#ifndef DISABLE_TABS
+GtkWidget *a_Menu_popup_tab_new(DilloDoc *dd);
+#endif
 void a_Menu_popup_ol_show_oi(BrowserWindow *bw, gboolean show);
 void a_Menu_popup_set_url(BrowserWindow *bw, const DilloUrl *url);
 void a_Menu_popup_set_url2(BrowserWindow *bw, const DilloUrl *url);
@@ -16,10 +21,10 @@ void a_Menu_popup_clear_url2(GtkWidget *
 
 DilloUrl *a_Menu_popup_get_url(BrowserWindow *bw);
 
-void a_Menu_pagemarks_new (BrowserWindow *bw);
-void a_Menu_pagemarks_destroy (BrowserWindow *bw);
-void a_Menu_pagemarks_add(BrowserWindow *bw, void *page, void *style,
+void a_Menu_pagemarks_new (DilloDoc *dd);
+void a_Menu_pagemarks_destroy (DilloDoc *dd);
+void a_Menu_pagemarks_add(DilloDoc *dd, void *page, void *style,
                           gint level);
-void a_Menu_pagemarks_set_text(BrowserWindow *bw, const char *str);
+void a_Menu_pagemarks_set_text(DilloDoc *dd, const char *str);
 
 #endif /* MENU_H */
diff -pruN dillo-0.8.6/src/misc.c dillo-0.8.6-i18n-misc-20060709/src/misc.c
--- dillo-0.8.6/src/misc.c	2006-04-06 05:57:18.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/misc.c	2006-05-16 01:21:09.000000000 +0900
@@ -10,6 +10,7 @@
  * (at your option) any later version.
  */
 
+#include <config.h>
 #include <glib.h>
 
 #include <stdio.h>
@@ -18,8 +19,12 @@
 #include <string.h>
 #include <ctype.h>
 
+#include "intl.h"
 #include "msg.h"
 #include "misc.h"
+#include "prefs.h"
+#include "i18n.h"
+
 
 /*
  * Prepend the users home-dir to 'file' string i.e,
@@ -116,7 +121,7 @@ gchar *a_Misc_expand_tabs(const char *st
    int len, i, j, pos, old_pos;
    char *val;
 
-   if ( (len = strlen(str)) ) {
+   if (str && (len = strlen(str)) ) {
       for (pos = 0, i = 0; i < len; i++) {
          if (str[i] == '\t') {
             /* Fill with whitespaces until the next tab. */
@@ -385,3 +390,184 @@ gchar *a_Misc_encode_base64(const gchar 
    out[i] = '\0';
    return out;
 }
+
+/* insert a space between multibyte chars. */
+gchar *a_Misc_add_space(gchar *str){
+   char *encStr, *parseStr;
+   int buf_index = 0;
+   int parse_index = 0;
+   int wordnum = 0;
+   int len = strlen(str);
+   if(len == 0)
+      return NULL;
+   //g_print("SOURCE[%3d]: %s\n",len, str);
+   parseStr = g_malloc0(len * 2);
+   while(buf_index < len){
+      if ((wordnum = a_I18n_mblen(&str[buf_index])) == 0){
+         while(isprint(str[buf_index + wordnum]))
+            wordnum++;
+      }
+      if(wordnum == 0){
+         g_warning("Findtext_add_space() invalid char.\n");
+         //parseStr[parse_index] = str[buf_index];
+         buf_index++;
+      } else {
+         strncpy(&parseStr[parse_index], &str[buf_index], wordnum);
+         parse_index += wordnum;
+         buf_index += wordnum;
+         parseStr[parse_index] = ' ';
+      }
+      parse_index++;
+   }
+   parseStr[parse_index - ((wordnum == 0)?0:1)] = 0;
+   encStr = g_strndup(parseStr,strlen(parseStr));
+   //g_print("PARSE[%3d]: %s\n",strlen(parseStr), parseStr);
+   g_free(parseStr);
+   return encStr;
+}
+
+#ifndef DISABLE_TABS
+
+/*
+ * (adapted from Galeon's misc_string_shorten_name())
+ * try to shorten a string to target_length or less
+ * this is quite language-specific, ie. it will not work
+ * with non indo-european languages
+ *
+ * minimum returned string length is 1, even if target_length
+ * is set to a lower value
+ *
+ * caller has to free the returned string
+ */
+gchar *
+a_Misc_string_compress(const gchar *input, gint target_length)
+{
+   gint i, j, length;
+   gchar *name, **common_prefixes = prefs.compress_common_prefixes_vec;
+   gchar *shortened_name;
+   char c;
+
+   /* it does not make sense to compress a string into nothing... */
+   if (target_length < 1)
+     target_length = 1;
+   
+   if (input == NULL)
+     return (a_Misc_string_shorten(g_strdup(_("Untitled")),target_length));
+   
+   /* copy and clean name */
+   name = g_strdup (input);
+   g_strstrip (name);
+   length = strlen (name);
+
+   /* remove common prefixes from string */
+   if (common_prefixes)
+     for(i=0; common_prefixes[i]; ++i)
+       if(strncasecmp(name, common_prefixes[i],strlen(common_prefixes[i])) == 0) {
+         length -= strlen(common_prefixes[i]);
+         memmove(name, name + strlen(common_prefixes[i]), length + 1);
+       }
+
+   /* remove trailing whitespace, if any */
+   g_strchug(name);
+   
+   /* remove vowels from string */
+   for (i = length - 1, j = length - 1; i >= 0; i--) {
+     c = name[i];
+     /* keep the letter if the string is short enough
+      * already, if the letter is at the beginning of a
+      * word, or if it's not a lowercase vowel */
+     if (length <= target_length || i == 0 ||
+         (i > 0 && name[i - 1] == ' ') ||
+         /* prefs.compress_vowels contains those characters
+            that can be skipped without making a word totally
+            irrecognizable. In most languages, those are the
+            vowels (with and without accents) */
+         !strchr (prefs.compress_vowels, c))
+       {
+         name[j] = c;
+         j--;
+       }
+     else
+       {
+         length--;
+       }
+   }
+   /* shift */
+   memmove(name, name + j + 1, length + 1);
+
+   /* short enough yet? */
+   if (length <= target_length)
+     {
+       return name;
+     }
+
+   /* no - try chopping out whole words */
+   for (i = target_length; i > 0; i--) {
+     if (ispunct((int) name[i]) || isspace((int) name[i]))
+       {
+         while (ispunct((int) name[i]) || isspace((int) name[i]))
+           {
+             i--;
+           }
+         /* this will do */
+         name[i + 1] = '\0';
+         g_strchomp (name);
+         return name;
+       }
+   }
+
+   /* still too long - use shortening on the compressed string */
+   shortened_name = a_Misc_string_shorten(name, target_length);
+   g_free(name);
+   return shortened_name;
+}
+
+/*
+ * shorten a string to no more than target_length characters
+ * by replacing part of the middle of the string by
+ * three ellipsis ('...').
+ *
+ * minimum returned string length is 3, even if target_length
+ * is set to a lower value.
+ *
+ * caller must free returned string
+ */
+gchar *
+a_Misc_string_shorten(const gchar *input, gint target_length)
+{
+   gchar *output;
+   gint actual_length, first_length, second_length;
+   
+   if (!input) return NULL;
+   
+   /* target length can not be smaller than 3 */
+   if (target_length < 3)
+     target_length = 3;
+   
+   actual_length = strlen (input);
+   
+   /* if the string is already short enough, or if it's too short for
+    * us to shorten it, return a new copy */
+   if (actual_length <= target_length ||
+       actual_length <= 3)
+     return g_strdup (input);
+   
+   /* allocate new string */
+   output = g_new (gchar, target_length + 1);
+   
+   /* calc lengths to take from beginning and ending of input */
+   second_length = (target_length - 3) / 2;
+   if(second_length%2 != 0) second_length++;
+   first_length = target_length - 3 - second_length;
+   
+   /* create string */
+   strncpy (output, input, first_length);
+   strncpy (output + first_length, "...", 3);
+   strncpy (output + first_length + 3,
+            input + actual_length - second_length, second_length);
+   output[target_length] = '\0';
+   
+   return output;
+}
+
+#endif /* !DISABLE_TABS */
diff -pruN dillo-0.8.6/src/misc.h dillo-0.8.6-i18n-misc-20060709/src/misc.h
--- dillo-0.8.6/src/misc.h	2006-04-05 04:51:06.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/misc.h	2006-05-16 01:21:09.000000000 +0900
@@ -15,6 +15,11 @@ gint a_Misc_get_content_type_from_data(v
 int a_Misc_content_type_check(const char *EntryType, const char *DetectedType);
 gint a_Misc_parse_geometry(gchar *geom, gint *x, gint *y, gint *w, gint *h);
 gchar *a_Misc_encode_base64(const gchar *in);
+gchar *a_Misc_add_space(gchar *str);
+#ifndef DISABLE_TABS
+gchar *a_Misc_string_compress(const gchar *input, gint target_length);
+gchar *a_Misc_string_shorten(const gchar *input, gint target_length);
+#endif /* !DISABLE_TABS */
 
 /* Return a NULL-terminated string containing the characters from p1 to p2. */
 #define a_Misc_strpdup(s, p1, p2) g_strndup((s) + (p1), (p2) - (p1))
diff -pruN dillo-0.8.6/src/msg.h dillo-0.8.6-i18n-misc-20060709/src/msg.h
--- dillo-0.8.6/src/msg.h	2005-10-28 01:20:13.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/msg.h	2006-05-16 01:21:08.000000000 +0900
@@ -22,6 +22,10 @@
          Html_msg(html, fmt);          \
    } G_STMT_END
 
-#define MSG_HTTP(fmt...)  g_print("HTTP warning: " fmt)
+#define MSG_HTTP(fmt...)               \
+   G_STMT_START {                      \
+       g_print(_("HTTP warning: "));   \
+       g_print(fmt);                   \
+   } G_STMT_END
 
 #endif /* __MSG_H__ */
diff -pruN dillo-0.8.6/src/nav.c dillo-0.8.6-i18n-misc-20060709/src/nav.c
--- dillo-0.8.6/src/nav.c	2006-01-03 03:17:23.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/nav.c	2006-05-16 01:21:09.000000000 +0900
@@ -12,17 +12,21 @@
 
 /* Support for a navigation stack */
 
+#include <config.h>
 #include <stdio.h>
 #include <gtk/gtk.h>
+#include "intl.h"
 #include "msg.h"
 #include "list.h"
 #include "nav.h"
 #include "history.h"
 #include "web.h"
+#include "doc.h"
 #include "menu.h"
 #include "interface.h"
 #include "dw_gtk_scrolled_window.h"
 #include "prefs.h"
+#include "commands.h"
 #include "capi.h"
 
 /* #define DEBUG_LEVEL 3 */
@@ -31,29 +35,29 @@
 /*
  * Forward declarations
  */
-static void Nav_reload(BrowserWindow *bw);
+static void Nav_reload(DilloDoc *dd);
 
 
 /*
  * Initialize the navigation structure with safe values
  */
-void a_Nav_init(BrowserWindow *bw)
+void a_Nav_init(DilloDoc *dd)
 {
-   bw->nav_stack_size = 0;
-   bw->nav_stack_size_max = 16;
-   bw->nav_stack = NULL;
-   bw->nav_stack_ptr = -1;
-   bw->nav_expecting = FALSE;
-   bw->nav_expect_url = NULL;
+   dd->nav_stack_size = 0;
+   dd->nav_stack_size_max = 16;
+   dd->nav_stack = NULL;
+   dd->nav_stack_ptr = -1;
+   dd->nav_expecting = FALSE;
+   dd->nav_expect_url = NULL;
 }
 
 /*
  * Free memory used by this module
  */
-void a_Nav_free(BrowserWindow *bw)
+void a_Nav_free(DilloDoc *dd)
 {
-   a_Nav_cancel_expect(bw);
-   g_free(bw->nav_stack);
+   a_Nav_cancel_expect(dd);
+   g_free(dd->nav_stack);
 }
 
 
@@ -62,79 +66,79 @@ void a_Nav_free(BrowserWindow *bw)
 /*
  * Return current nav_stack pointer [0 based; -1 = empty]
  */
-gint a_Nav_stack_ptr(BrowserWindow *bw)
+gint a_Nav_stack_ptr(DilloDoc *dd)
 {
-   return bw->nav_stack_ptr;
+   return dd->nav_stack_ptr;
 }
 
 /*
  * Move the nav_stack pointer
  */
-static void Nav_stack_move_ptr(BrowserWindow *bw, gint offset)
+static void Nav_stack_move_ptr(DilloDoc *dd, gint offset)
 {
    gint nptr;
 
-   g_return_if_fail (bw != NULL);
+   g_return_if_fail (dd != NULL);
    if (offset != 0) {
-      nptr = bw->nav_stack_ptr + offset;
-      g_return_if_fail (nptr >= 0 && nptr < bw->nav_stack_size);
-      bw->nav_stack_ptr = nptr;
+      nptr = dd->nav_stack_ptr + offset;
+      g_return_if_fail (nptr >= 0 && nptr < dd->nav_stack_size);
+      dd->nav_stack_ptr = nptr;
    }
 }
 
 /*
  * Return size of nav_stack [1 based]
  */
-gint a_Nav_stack_size(BrowserWindow *bw)
+gint a_Nav_stack_size(DilloDoc *dd)
 {
-   return bw->nav_stack_size;
+   return dd->nav_stack_size;
 }
 
 /*
  * Add an URL-index in the navigation stack.
  */
-static void Nav_stack_add(BrowserWindow *bw, gint idx)
+static void Nav_stack_add(DilloDoc *dd, gint idx)
 {
-   g_return_if_fail (bw != NULL);
+   g_return_if_fail (dd != NULL);
 
-   ++bw->nav_stack_ptr;
-   if ( bw->nav_stack_ptr == bw->nav_stack_size) {
-      a_List_add(bw->nav_stack, bw->nav_stack_size, bw->nav_stack_size_max);
-      ++bw->nav_stack_size;
+   ++dd->nav_stack_ptr;
+   if ( dd->nav_stack_ptr == dd->nav_stack_size) {
+      a_List_add(dd->nav_stack, dd->nav_stack_size, dd->nav_stack_size_max);
+      ++dd->nav_stack_size;
    } else {
-      bw->nav_stack_size = bw->nav_stack_ptr + 1;
+      dd->nav_stack_size = dd->nav_stack_ptr + 1;
    }
-   bw->nav_stack[bw->nav_stack_ptr] = idx;
+   dd->nav_stack[dd->nav_stack_ptr] = idx;
 }
 
 /*
  * Remove an URL-index from the navigation stack.
  */
-static void Nav_stack_remove(BrowserWindow *bw, gint idx)
+static void Nav_stack_remove(DilloDoc *dd, gint idx)
 {
-   gint sz = a_Nav_stack_size(bw);
+   gint sz = a_Nav_stack_size(dd);
 
-   g_return_if_fail (bw != NULL && idx >=0 && idx < sz);
+   g_return_if_fail (dd != NULL && idx >=0 && idx < sz);
 
    for (  ; idx < sz - 1; ++idx)
-      bw->nav_stack[idx] = bw->nav_stack[idx + 1];
-   if ( bw->nav_stack_ptr == --bw->nav_stack_size )
-      --bw->nav_stack_ptr;
+      dd->nav_stack[idx] = dd->nav_stack[idx + 1];
+   if ( dd->nav_stack_ptr == --dd->nav_stack_size )
+      --dd->nav_stack_ptr;
 }
 
 /*
- * Remove equal adyacent URLs at the top of the stack.
+ * Remove equal adjacent URLs at the top of the stack.
  * (It may happen with redirections)
  */
-static void Nav_stack_clean(BrowserWindow *bw)
+static void Nav_stack_clean(DilloDoc *dd)
 {
    gint i;
 
-   g_return_if_fail (bw != NULL);
+   g_return_if_fail (dd != NULL);
 
-   if ((i = a_Nav_stack_size(bw)) >= 2 &&
-       bw->nav_stack[i-2] == bw->nav_stack[i-1])
-         Nav_stack_remove(bw, i - 1);
+   if ((i = a_Nav_stack_size(dd)) >= 2 &&
+       dd->nav_stack[i-2] == dd->nav_stack[i-1])
+         Nav_stack_remove(dd, i - 1);
 }
 
 
@@ -146,7 +150,7 @@ static void Nav_stack_clean(BrowserWindo
  * This function requests the page's root-URL; images and related stuff
  * are fetched directly by the HTML module.
  */
-static void Nav_open_url(BrowserWindow *bw, const DilloUrl *url, gint offset)
+static void Nav_open_url(DilloDoc *dd, const DilloUrl *url, gint offset)
 {
    DilloUrl *old_url = NULL;
    gboolean MustLoad;
@@ -154,48 +158,49 @@ static void Nav_open_url(BrowserWindow *
    DilloWeb *Web;
    gboolean ForceReload = (URL_FLAGS(url) & URL_E2EReload);
 
-   MSG("Nav_open_url: Url=>%s<\n", URL_STR_(url));
+   _MSG("Nav_open_url: Url=>%s<\n", URL_STR_(url));
 
    /* Get the url of the current page */
-   if ( a_Nav_stack_ptr(bw) != -1 )
-      old_url = a_History_get_url(NAV_TOP(bw));
+   if ( a_Nav_stack_ptr(dd) != -1 )
+      old_url = a_History_get_url(NAV_TOP(dd));
 
    /* Record current scrolling position
     * (the strcmp check is necessary because of redirections) */
    if (old_url &&
-       !strcmp(URL_STR(old_url), a_Interface_get_location_text(bw))) {
+       !strcmp(URL_STR(old_url), a_Interface_get_location_text(dd->bw))) {
       old_url->scrolling_position_x =
         a_Dw_gtk_scrolled_window_get_scrolling_position_x(
-           GTK_DW_SCROLLED_WINDOW(bw->docwin));
+           GTK_DW_SCROLLED_WINDOW(dd->docwin));
       old_url->scrolling_position_y =
         a_Dw_gtk_scrolled_window_get_scrolling_position_y(
-           GTK_DW_SCROLLED_WINDOW(bw->docwin));
+           GTK_DW_SCROLLED_WINDOW(dd->docwin));
    }
 
    /* Update navigation-stack-pointer (offset may be zero) */
-   Nav_stack_move_ptr(bw, offset);
+   Nav_stack_move_ptr(dd, offset);
 
    /* Page must be reloaded, if old and new url (without anchor) differ */
    MustLoad = ForceReload || !old_url;
    if (old_url){
       MustLoad |= a_Url_cmp(old_url, url);
-      MustLoad |= strcmp(URL_STR(old_url), a_Interface_get_location_text(bw));
+      /* TODO: possible issue with background/(i)frame load, see above */
+      MustLoad |= strcmp(URL_STR(old_url), a_Interface_get_location_text(dd->bw));
    }
 
    if ( MustLoad ) {
-      a_Interface_stop(bw);
-      a_Interface_clean(bw);
+      a_Doc_stop(dd);
+      a_Doc_clean(dd);
 
-      a_Menu_pagemarks_new(bw);
+      a_Menu_pagemarks_new(dd);
 
       Web = a_Web_new(url);
-      Web->bw = bw;
+      Web->dd = dd;
       Web->flags |= WEB_RootUrl;
       if ((ClientKey = a_Capi_open_url(Web, NULL, NULL)) != 0) {
-         a_Interface_add_client(bw, ClientKey, 1);
-         a_Interface_add_url(bw, url, WEB_RootUrl);
+         a_Doc_add_client(dd, ClientKey, 1);
+         a_Doc_add_url(dd, url, WEB_RootUrl);
       }
-      a_Interface_set_cursor(bw, GDK_LEFT_PTR);
+      a_Doc_set_cursor(dd, GDK_LEFT_PTR);
    }
 
    /* Jump to #anchor position */
@@ -203,7 +208,7 @@ static void Nav_open_url(BrowserWindow *
       /* todo: push on stack */
       gchar *pf = a_Url_decode_hex_str(URL_FRAGMENT_(url));
       a_Dw_gtk_scrolled_window_set_anchor(
-         GTK_DW_SCROLLED_WINDOW(bw->docwin), pf);
+         GTK_DW_SCROLLED_WINDOW(dd->docwin), pf);
       g_free(pf);
    }
 }
@@ -212,155 +217,191 @@ static void Nav_open_url(BrowserWindow *
  * Cancel the last expected url if present. The responsibility
  * for actually aborting the data stream remains with the caller.
  */
-void a_Nav_cancel_expect(BrowserWindow *bw)
+void a_Nav_cancel_expect(DilloDoc *dd)
 {
-   if (bw->nav_expecting) {
-      if (bw->nav_expect_url) {
-         a_Url_free(bw->nav_expect_url);
-         bw->nav_expect_url = NULL;
+   if (dd->nav_expecting) {
+      if (dd->nav_expect_url) {
+         a_Url_free(dd->nav_expect_url);
+         dd->nav_expect_url = NULL;
       }
-      bw->nav_expecting = FALSE;
+      dd->nav_expecting = FALSE;
    }
 }
 
 /*
  * We have an answer! Set things accordingly.
  */
-void a_Nav_expect_done(BrowserWindow *bw)
+void a_Nav_expect_done(DilloDoc *dd)
 {
    gint idx;
    DilloUrl *url;
 
-   g_return_if_fail(bw != NULL);
+   g_return_if_fail(dd != NULL);
 
-   if (bw->nav_expecting) {
-      url = bw->nav_expect_url;
+   if (dd->nav_expecting) {
+      url = dd->nav_expect_url;
       /* unset E2EReload before adding this url to history */
-      a_Url_set_flags(url, URL_FLAGS(url) & ~URL_E2EReload);
+      a_Url_set_flags(url, (URL_FLAGS(url) & ~URL_E2EReload) | URL_MustCache);
       idx = a_History_add_url(url);
-      Nav_stack_add(bw, idx);
+      Nav_stack_add(dd, idx);
 
       a_Url_free(url);
-      bw->nav_expect_url = NULL;
-      bw->nav_expecting = FALSE;
+      dd->nav_expect_url = NULL;
+      dd->nav_expecting = FALSE;
    }
-   Nav_stack_clean(bw);
-   a_Interface_set_button_sens(bw);
+   Nav_stack_clean(dd);
+   a_Doc_progress_update(dd);
+}
+ 
+/*
+ * Remove top-URL from the navigation stack.
+ * (Used to remove URLs that force redirection)
+ */
+void a_Nav_remove_top_url(DilloDoc *dd)
+{
+   g_return_if_fail (dd != NULL);
+
+   /* Deallocate the URL a the top of the stack */
+   Nav_stack_remove(dd, a_Nav_stack_size(dd) - 1);
 }
 
 /*
  * Make 'url' the current browsed page (upon data arrival)
- * - Set bw to expect the URL data
+ * - Set dd to expect the URL data
  * - Ask the cache to feed back the requested URL (via Nav_open_url)
  */
-void a_Nav_push(BrowserWindow *bw, const DilloUrl *url)
+void a_Nav_push(DilloDoc *dd, const DilloUrl *url)
 {
-   g_return_if_fail (bw != NULL);
+   g_return_if_fail (dd != NULL);
 
-   if (bw->nav_expecting && a_Url_cmp(bw->nav_expect_url, url) == 0 &&
-       URL_STRCAMP_EQ(URL_FRAGMENT_(bw->nav_expect_url), URL_FRAGMENT_(url))) {
+   if (dd->nav_expecting && a_Url_cmp(dd->nav_expect_url, url) == 0 &&
+       URL_STRCAMP_EQ(URL_FRAGMENT_(dd->nav_expect_url), URL_FRAGMENT_(url))
+       && !(URL_FLAGS(url) & URL_RealmAccess)) { //except BASIC Realm
       /* we're already expecting that url (most probably a double-click) */
       return;
    }
-   a_Nav_cancel_expect(bw);
-   bw->nav_expect_url = a_Url_dup(url);
-   bw->nav_expecting = TRUE;
-   Nav_open_url(bw, url, 0);
+   a_Nav_cancel_expect(dd);
+   dd->nav_expect_url = a_Url_dup(url);
+   dd->nav_expecting = TRUE;
+   /* is this is a targeted URL, (re)name the document after it */
+   if(URL_TARGET_(url))
+     a_Doc_set_name(dd, (gchar *) URL_TARGET_(url));
+   Nav_open_url(dd, url, 0);
 }
 
 /*
  * Same as a_Nav_push() but in a new window.
  */
-void a_Nav_push_nw(BrowserWindow *bw, const DilloUrl *url)
+void a_Nav_push_nw(DilloDoc *dd, const DilloUrl *url)
 {
    gint width, height;
    BrowserWindow *newbw;
 
-   gdk_window_get_size (bw->main_window->window, &width, &height);
+   gdk_window_get_size (dd->bw->main_window->window, &width, &height);
    newbw = a_Interface_browser_window_new(width, height, 0);
-   a_Nav_push(newbw, url);
+   a_Nav_push(newbw->dd, url);
 }
 
 /*
  * Wraps a_Nav_push to match 'DwPage->link' function type
  */
-void a_Nav_vpush(void *vbw, const DilloUrl *url)
+void a_Nav_vpush(void *vdd, const DilloUrl *url)
 {
-   a_Nav_push(vbw, url);
+   a_Nav_push(vdd, url);
 }
 
 /*
  * Send the browser back to previous page
  */
-void a_Nav_back(BrowserWindow *bw)
+void a_Nav_back(DilloDoc *dd)
 {
-   gint idx = a_Nav_stack_ptr(bw);
+   gint idx = a_Nav_stack_ptr(dd);
 
-   a_Nav_cancel_expect(bw);
+   a_Nav_cancel_expect(dd);
    if ( --idx >= 0 ){
-      a_Interface_msg(bw, "");
-      Nav_open_url(bw, a_History_get_url(NAV_IDX(bw,idx)), -1);
+      a_Interface_msg(dd->bw, "");
+      Nav_open_url(dd, a_History_get_url(NAV_IDX(dd,idx)), -1);
    }
 }
 
 /*
  * Send the browser to next page in the history list
  */
-void a_Nav_forw(BrowserWindow *bw)
+void a_Nav_forw(DilloDoc *dd)
 {
-   gint idx = a_Nav_stack_ptr(bw);
+   gint idx = a_Nav_stack_ptr(dd);
 
-   a_Nav_cancel_expect(bw);
-   if (++idx < a_Nav_stack_size(bw)) {
-      a_Interface_msg(bw, "");
-      Nav_open_url(bw, a_History_get_url(NAV_IDX(bw,idx)), +1);
+   a_Nav_cancel_expect(dd);
+   if (++idx < a_Nav_stack_size(dd)) {
+      a_Interface_msg(dd->bw, "");
+      Nav_open_url(dd, a_History_get_url(NAV_IDX(dd,idx)), +1);
    }
 }
 
 /*
  * Redirect the browser to the HOME page!
  */
-void a_Nav_home(BrowserWindow *bw)
+void a_Nav_home(DilloDoc *dd)
 {
-   a_Nav_push(bw, prefs.home);
+   a_Nav_push(dd, prefs.home);
 }
 
 /*
  * Jump to an URL within the stack history
- * NewBw: {0 = same window, 1 = new window}
+#ifndef DISABLE_TABS
+ * NewDd: {0 = same window, 1 = new window, 2 = new tab}
+#else
+ * NewDd: {0 = same window, 1 = new window}
+#endif
  */
-void a_Nav_jump_callback(GtkWidget *widget, gpointer client_data, gint NewBw)
+void a_Nav_jump_callback(GtkWidget *widget, gpointer client_data, gint NewDd)
 {
    int idx;
-   BrowserWindow *bw = client_data;
+   DilloDoc *dd = client_data;
 
    idx = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT (widget), "nav_idx"));
-   if (idx >= 0 && idx < a_Nav_stack_size(bw)) {
-      if (NewBw == 1) {
-         a_Nav_push_nw(bw, a_History_get_url(NAV_IDX(bw,idx)));
-      } else {
-         Nav_open_url(bw, a_History_get_url(NAV_IDX(bw,idx)),
-                      idx - a_Nav_stack_ptr(bw));
-      }
+   if (idx >= 0 && idx < a_Nav_stack_size(dd)) {
+     switch (NewDd) {
+     case 0:
+       /* Open link in same bw */
+       Nav_open_url(dd, a_History_get_url(NAV_IDX(dd,idx)),
+                    idx - a_Nav_stack_ptr(dd));
+       break;
+     case 1:
+       /* Open link in a new bw */
+       a_Menu_popup_set_url(dd->bw, a_History_get_url(NAV_IDX(dd,idx)));
+       a_Commands_open_link_nw_callback(widget, dd->bw);
+       break;
+#ifndef DISABLE_TABS
+     case 2:
+       /* Open link in a new tab */
+       a_Menu_popup_set_url(dd->bw, a_History_get_url(NAV_IDX(dd,idx)));
+       a_Commands_open_link_nw_tab_callback(widget, dd->bw);
+       break;
+#endif
+     default:
+       g_error(_("Unhandled switch type %d in a_Nav_jump_callback in src/nav.c\n"), NewDd);
+     }
    }
 }
 
 /*
  * Callback for reload confirmation
  */
-static void Nav_reload_confirmation_cb(BrowserWindow *bw)
+static void Nav_reload_confirmation_cb(DilloDoc *dd)
 {
-   DialogAnswer *answer = bw->question_dialog_answer;
+   DialogAnswer *answer = dd->bw->question_dialog_answer;
 
    _MSG("Nav_reload_confirmation_cb %p\n", bw->question_dialog_window);
 
+   if (!answer) return;
    if (answer->alt_num == 1) { /* "OK" */
       DEBUG_MSG(3, "Nav_reload_confirmed\n");
-      if ( a_Nav_stack_size(bw) &&
-           bw->question_dialog_data == a_History_get_url(NAV_TOP(bw)) ) {
+      if ( a_Nav_stack_size(dd) &&
+         dd->bw->question_dialog_data == a_History_get_url(NAV_TOP(dd)) ) {
          /* a genuine confirmation! */
          DEBUG_MSG(3, "Nav_reload_confirmed test: OK\n");
-         Nav_reload(bw);
+         Nav_reload(dd);
       }
 
    } else {  /* window closed or cancel button */
@@ -368,27 +409,27 @@ static void Nav_reload_confirmation_cb(B
    }
 
    /* cleanup */
-   bw->question_dialog_data = NULL;
+   dd->bw->question_dialog_data = NULL;
    g_free(answer->this);
-   bw->question_dialog_answer = NULL;
+   dd->bw->question_dialog_answer = NULL;
 }
 
 /*
  * This one does a_Nav_reload's job!
  */
-static void Nav_reload(BrowserWindow *bw)
+static void Nav_reload(DilloDoc *dd)
 {
    DilloUrl *url, *ReqURL;
 
-   a_Nav_cancel_expect(bw);
-   if ( a_Nav_stack_size(bw) ) {
-      url = a_History_get_url(NAV_TOP(bw));
-      ReqURL = a_Url_dup(a_History_get_url(NAV_TOP(bw)));
+   a_Nav_cancel_expect(dd);
+   if ( a_Nav_stack_size(dd) ) {
+      url = a_History_get_url(NAV_TOP(dd));
+      ReqURL = a_Url_dup(a_History_get_url(NAV_TOP(dd)));
       /* Let's make reload be end-to-end */
       a_Url_set_flags(ReqURL, URL_FLAGS(ReqURL) | URL_E2EReload);
       /* This is an explicit reload, so clear the SpamSafe flag */
       a_Url_set_flags(ReqURL, URL_FLAGS(ReqURL) & ~URL_SpamSafe);
-      Nav_open_url(bw, ReqURL, 0);
+      Nav_open_url(dd, ReqURL, 0);
       a_Url_free(ReqURL);
    }
 }
@@ -397,23 +438,23 @@ static void Nav_reload(BrowserWindow *bw
  * Implement the RELOAD button functionality.
  * (We haven't defined it yet ;)
  */
-void a_Nav_reload(BrowserWindow *bw)
+void a_Nav_reload(DilloDoc *dd)
 {
    DilloUrl *url;
 
-   a_Nav_cancel_expect(bw);
-   if ( a_Nav_stack_size(bw) ) {
-      url = a_History_get_url(NAV_TOP(bw));
+   a_Nav_cancel_expect(dd);
+   if ( a_Nav_stack_size(dd) ) {
+      url = a_History_get_url(NAV_TOP(dd));
       if (URL_FLAGS(url) & URL_Post) {
          /* Attempt to repost data, let's confirm... */
-         bw->question_dialog_data = (gpointer)url;
+         dd->bw->question_dialog_data = (gpointer)url;
          a_Interface_question_dialog(
-            bw, "Repost form data?", TRUE,
-            "OK", "Cancel", NULL, NULL, NULL,
+            dd, _("Repost form data?"), TRUE,
+            _("OK"), _("Cancel"), NULL, NULL, NULL,
             (GtkSignalFunc) Nav_reload_confirmation_cb);
 
       } else {
-         Nav_reload(bw);
+         Nav_reload(dd);
       }
    }
 }
diff -pruN dillo-0.8.6/src/nav.h dillo-0.8.6-i18n-misc-20060709/src/nav.h
--- dillo-0.8.6/src/nav.h	2005-10-28 01:20:14.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/nav.h	2006-05-16 01:21:09.000000000 +0900
@@ -6,28 +6,29 @@
 
 
 /* useful macros for the navigation stack */
-#define NAV_IDX(bw, i)   (bw)->nav_stack[i]
-#define NAV_TOP(bw)      (bw)->nav_stack[(bw)->nav_stack_ptr]
+#define NAV_IDX(dd, i)   (dd)->nav_stack[i]
+#define NAV_TOP(dd)      (dd)->nav_stack[(dd)->nav_stack_ptr]
 
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
-void a_Nav_push(BrowserWindow *bw, const DilloUrl *url);
-void a_Nav_push_nw(BrowserWindow *bw, const DilloUrl *url);
-void a_Nav_vpush(void *vbw, const DilloUrl *url);
-void a_Nav_back(BrowserWindow *bw);
-void a_Nav_forw(BrowserWindow *bw);
-void a_Nav_home(BrowserWindow *bw);
-void a_Nav_reload(BrowserWindow *bw);
-void a_Nav_init(BrowserWindow *bw);
-void a_Nav_free(BrowserWindow *bw);
-void a_Nav_cancel_expect (BrowserWindow *bw);
-void a_Nav_expect_done(BrowserWindow *bw);
-void a_Nav_jump_callback(GtkWidget *widget, gpointer client_data, gint NewBw);
-gint a_Nav_stack_ptr(BrowserWindow *bw);
-gint a_Nav_stack_size(BrowserWindow *bw);
+void a_Nav_push(DilloDoc *dd, const DilloUrl *url);
+void a_Nav_push_nw(DilloDoc *dd, const DilloUrl *url);
+void a_Nav_vpush(void *vdd, const DilloUrl *url);
+void a_Nav_back(DilloDoc *dd);
+void a_Nav_forw(DilloDoc *dd);
+void a_Nav_home(DilloDoc *dd);
+void a_Nav_reload(DilloDoc *dd);
+void a_Nav_init(DilloDoc *dd);
+void a_Nav_free(DilloDoc *dd);
+void a_Nav_cancel_expect (DilloDoc *dd);
+void a_Nav_expect_done(DilloDoc *dd);
+void a_Nav_remove_top_url(DilloDoc *dd);
+void a_Nav_jump_callback(GtkWidget *widget, gpointer client_data, gint NewDd);
+gint a_Nav_stack_ptr(DilloDoc *dd);
+gint a_Nav_stack_size(DilloDoc *dd);
 
 
 #ifdef __cplusplus
diff -pruN dillo-0.8.6/src/plain.c dillo-0.8.6-i18n-misc-20060709/src/plain.c
--- dillo-0.8.6/src/plain.c	2006-01-03 03:16:58.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/plain.c	2006-05-16 01:21:09.000000000 +0900
@@ -18,13 +18,13 @@
 #include <math.h>       /* for rint() */
 #include <gtk/gtk.h>
 
+#include "i18n.h"
 #include "prefs.h"
 #include "dw_page.h"
 #include "cache.h"
 #include "browser.h"
 #include "web.h"
-#include "interface.h"
-#include "progressbar.h"
+#include "doc.h"
 #include "misc.h"
 #include "history.h"
 #include "nav.h"
@@ -35,8 +35,9 @@ typedef struct _DilloPlain {
    DwWidget *dw;
    size_t Start_Ofs;    /* Offset of where to start reading next */
    DwStyle *style;
-   BrowserWindow *bw;
+   DilloDoc *dd;
    gint state;
+   gchar *charset;
 } DilloPlain;
 
 /* FSM states */
@@ -64,7 +65,7 @@ static int Plain_page_menu(GtkWidget *vi
                            BrowserWindow *bw)
 {
    if (event->button == 3) {
-      a_Menu_popup_set_url(bw, a_History_get_url(NAV_TOP(bw)));
+      a_Menu_popup_set_url(bw, a_History_get_url(NAV_TOP(bw->dd)));
       gtk_menu_popup(GTK_MENU(bw->menu_popup.over_page), NULL, NULL,
                      NULL, NULL, event->button, event->time);
       return TRUE;
@@ -75,7 +76,7 @@ static int Plain_page_menu(GtkWidget *vi
 /*
  * Create and initialize a new DilloPlain structure.
  */
-static DilloPlain *Plain_new(BrowserWindow *bw)
+static DilloPlain *Plain_new(DilloDoc *dd)
 {
    DilloPlain *plain;
    DwPage *page;
@@ -83,30 +84,31 @@ static DilloPlain *Plain_new(BrowserWind
    DwStyleFont font_attrs;
 
    plain = g_new(DilloPlain, 1);
+   plain->charset = NULL;
    plain->state = ST_SeekingEol;
    plain->Start_Ofs = 0;
-   plain->bw = bw;
+   plain->dd = dd;
    plain->dw = a_Dw_page_new();
    page = (DwPage *) plain->dw;
 
    /* Create the font and attribute for the page. */
    font_attrs.name = prefs.fw_fontname;
-   font_attrs.size = rint(12.0 * prefs.font_factor);
+   font_attrs.size = rint(prefs.font_sizes[2] * prefs.font_factor);
    font_attrs.weight = 400;
    font_attrs.style = DW_STYLE_FONT_STYLE_NORMAL;
-
-   a_Dw_style_init_values (&style_attrs, plain->bw->main_window->window);
+   strncpy(font_attrs.lang, "", 6);
+   a_Dw_style_init_values (&style_attrs, plain->dd->bw->main_window->window);
    style_attrs.font = a_Dw_style_font_new (&font_attrs);
    style_attrs.color = a_Dw_style_color_new (prefs.text_color,
-                                             plain->bw->main_window->window);
+                                             plain->dd->bw->main_window->window);
    plain->style = a_Dw_style_new (&style_attrs,
-                                  plain->bw->main_window->window);
+                                  plain->dd->bw->main_window->window);
    /* 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(GTK_BIN(plain->dd->docwin)->child),"button_press_event",
+       GTK_SIGNAL_FUNC(Plain_page_menu), (gpointer)plain->dd->bw,
        GTK_OBJECT (page));
 
    return plain;
@@ -119,7 +121,7 @@ DwWidget* a_Plain_text(const char *type,
                        void **Data)
 {
    DilloWeb *web = P;
-   DilloPlain *plain = Plain_new(web->bw);
+   DilloPlain *plain = Plain_new(web->dd);
 
    *Call = (CA_Callback_t)Plain_callback;
    *Data = (void*)plain;
@@ -140,11 +142,10 @@ static void Plain_callback(int Op, Cache
       if (plain->Start_Ofs < Client->BufSize)
          Plain_write(plain, Client->Buf, Client->BufSize, 1);
       /* remove this client from our active list */
-      a_Interface_close_client(plain->bw, Client->Key);
-      /* set progress bar insensitive */
-      a_Progressbar_update(plain->bw->progress, NULL, 0);
-
+      plain->dd->ready = TRUE;
+      a_Doc_close_client(plain->dd, Client->Key);
       a_Dw_style_unref (plain->style);
+      g_free(plain->charset);
       g_free(plain);
    } else {
       Plain_write(plain, Client->Buf, Client->BufSize, 0);
@@ -164,6 +165,8 @@ static void Plain_write(DilloPlain *plai
    char *data;
    guint i, len, MaxBytes;
 
+   if(!plain->charset)
+       plain->charset = a_I18n_get_encoding(Buf, BufSize);
    Start = (char*)Buf + plain->Start_Ofs;
    MaxBytes = BufSize - plain->Start_Ofs;
    i = len = 0;
@@ -177,7 +180,8 @@ static void Plain_write(DilloPlain *plai
          }
          break;
       case ST_Eol:
-         data = g_strndup(Start + i - len, len);
+         data = a_I18n_convert(plain->charset, DILLO_CHARSET,
+                 Start + i - len, len);
          a_Dw_page_add_text(page, a_Misc_expand_tabs(data), plain->style);
          g_free(data);
          a_Dw_page_add_parbreak(page, 0, plain->style);
@@ -190,19 +194,17 @@ static void Plain_write(DilloPlain *plai
    }
    plain->Start_Ofs += i - len;
    if ( Eof && len ) {
-      data = g_strndup(Start + i - len, len);
+      data = a_I18n_convert(plain->charset, DILLO_CHARSET,
+              Start + i - len, len);
       a_Dw_page_add_text(page, a_Misc_expand_tabs(data), plain->style);
       g_free(data);
       a_Dw_page_add_parbreak(page, 0, plain->style);
       plain->Start_Ofs += len;
    }
 
-   if ( plain->bw ) {
-      gchar completestr[32];
-      g_snprintf(
-         completestr, 32, "%s%.1f Kb",
-         PBAR_PSTR(prefs.panel_size == 1),
-         (float)plain->Start_Ofs/1024);
-      a_Progressbar_update(plain->bw->progress, completestr, 1);
+   if ( plain->dd ) {
+      plain->dd->progress = plain->Start_Ofs/1024;
+      plain->dd->ready = FALSE;
+      a_Doc_progress_update(plain->dd);
    }
 }
diff -pruN dillo-0.8.6/src/prefs.c dillo-0.8.6-i18n-misc-20060709/src/prefs.c
--- dillo-0.8.6/src/prefs.c	2005-10-28 01:20:14.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/prefs.c	2006-07-08 21:11:44.000000000 +0900
@@ -18,18 +18,25 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+#include <config.h>
+
 #include <glib.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <stdio.h>        /* for sscanf */
 #include <stdlib.h>
 #include <string.h>       /* for strchr */
 #include <fcntl.h>
 #include <unistd.h>
 #include <locale.h>       /* for setlocale */
+#include "intl.h"
 #include "prefs.h"
 #include "colors.h"
 #include "misc.h"
 
+#define DEBUG_LEVEL 5
+#include "debug.h"
+
 /* symbol array */
 static const struct {
    gchar *name;
@@ -39,6 +46,8 @@ static const struct {
    { "http_proxy", DRC_TOKEN_PROXY },
    { "http_proxyuser", DRC_TOKEN_PROXYUSER },
    { "no_proxy", DRC_TOKEN_NOPROXY },
+   { "user_agent", DRC_TOKEN_USER_AGENT },
+   { "send_referer", DRC_TOKEN_SEND_REFERER },
    { "link_color", DRC_TOKEN_LINK_COLOR },
    { "visited_color", DRC_TOKEN_VISITED_COLOR, },
    { "bg_color", DRC_TOKEN_BG_COLOR },
@@ -53,8 +62,10 @@ static const struct {
    { "panel_size", DRC_TOKEN_PANEL_SIZE },
    { "small_icons", DRC_TOKEN_SMALL_ICONS },
    { "limit_text_width", DRC_TOKEN_LIMIT_TEXT_WIDTH },
+   { "limit_font_decoration", DRC_TOKEN_LIMIT_FONT_DECORATION },
    { "w3c_plus_heuristics", DRC_TOKEN_W3C_PLUS_HEURISTICS },
    { "font_factor", DRC_TOKEN_FONT_FACTOR },
+   { "font_sizes", DRC_TOKEN_FONT_SIZES },
    { "use_dicache", DRC_TOKEN_USE_DICACHE },
    { "show_back", DRC_TOKEN_SHOW_BACK },
    { "show_forw", DRC_TOKEN_SHOW_FORW },
@@ -68,15 +79,37 @@ static const struct {
    { "show_url", DRC_TOKEN_SHOW_URL },
    { "show_search", DRC_TOKEN_SHOW_SEARCH },
    { "show_progress_box", DRC_TOKEN_SHOW_PROGRESS_BOX },
+   { "show_popup_navigation", DRC_TOKEN_SHOW_POPUP_NAVIGATION },
    { "fullwindow_start", DRC_TOKEN_FULLWINDOW_START },
    { "transient_dialogs", DRC_TOKEN_TRANSIENT_DIALOGS },
+   { "popup_dialogs", DRC_TOKEN_POPUP_DIALOGS },
+   { "vw_aafontname", DRC_TOKEN_VW_AAFONT },
+   { "fw_aafontname", DRC_TOKEN_FW_AAFONT },
    { "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 },
    { "search_url", DRC_TOKEN_SEARCH_URL },
+   { "search_charset", DRC_TOKEN_SEARCH_CHARSET },
    { "show_msg", DRC_TOKEN_SHOW_MSG },
-   { "show_extra_warnings", DRC_TOKEN_SHOW_EXTRA_WARNINGS }
+   { "show_extra_warnings", DRC_TOKEN_SHOW_EXTRA_WARNINGS },
+   { "focus_location_on_new", DRC_TOKEN_FOCUS_LOCATION_ON_NEW },
+   { "accept_language", DRC_TOKEN_ACCEPT_LANGUAGE },
+   { "query_expire_time", DRC_TOKEN_QUERY_EXPIRE_TIME },
+   { "min_page_expire", DRC_TOKEN_MIN_PAGE_EXPIRE_TIME },
+   { "min_image_expire", DRC_TOKEN_MIN_IMAGE_EXPIRE_TIME },
+#ifndef DISABLE_TABS
+   { "tab_load_in_background", DRC_TOKEN_TAB_LOAD_IN_BACKGROUND },
+   { "tab_instead_of_window", DRC_TOKEN_TAB_INSTEAD_OF_WINDOW },
+   { "tab_bar_show_fullscreen", DRC_TOKEN_TAB_BAR_SHOW_FULLSCREEN },
+   { "tab_bar_show_single_tab", DRC_TOKEN_TAB_BAR_SHOW_SINGLE_TAB },
+   { "tab_bar_scroller", DRC_TOKEN_TAB_BAR_SCROLLER },
+   { "tab_bar_homogeneous", DRC_TOKEN_TAB_BAR_HOMOGENEOUS },
+   { "tab_title_compress", DRC_TOKEN_TAB_TITLE_COMPRESS },
+   { "tab_close_middle_click", DRC_TOKEN_TAB_CLOSE_MIDDLE_CLICK },
+   { "compress_vowels", DRC_TOKEN_COMPRESS_VOWELS },
+   { "compress_common_prefixes", DRC_TOKEN_COMPRESS_COMMON_PREFIXES },
+#endif /* !DISABLE_TABS */
 };
 
 static const guint n_symbols = sizeof (symbols) / sizeof (symbols[0]);
@@ -129,6 +162,21 @@ static guint Prefs_parser(GScanner *scan
       prefs.no_proxy = g_strdup(scanner->value.v_string);
       prefs.no_proxy_vec = g_strsplit(prefs.no_proxy, " ", 0);
       break;
+   case DRC_TOKEN_USER_AGENT:
+   {
+      gchar *prefs_value = g_strdup(scanner->value.v_string);
+      gchar *option = NULL;
+      g_free(prefs.user_agent);
+      if((option = strstr(prefs_value, "%v"))) {
+         option[1] = 's';
+         prefs.user_agent = g_strdup_printf(prefs_value, VERSION);
+      } else prefs.user_agent = prefs_value;
+      DEBUG_MSG(4, "Setting User-Agent: \"%s\"\n", prefs.user_agent);
+      break;
+   }
+   case DRC_TOKEN_SEND_REFERER:
+      prefs.send_referer = (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
    case DRC_TOKEN_LINK_COLOR:
       prefs.link_color = a_Color_parse(scanner->value.v_string,
                                        prefs.link_color, &st);
@@ -184,10 +232,30 @@ static guint Prefs_parser(GScanner *scan
       break;
    case DRC_TOKEN_FONT_FACTOR:
       prefs.font_factor = strtod(scanner->value.v_string, NULL);
-      break;
+#ifndef DISABLE_ANTI_ALIAS
+      prefs.font_factor *= 0.8;
+#endif
+      break;
+   case DRC_TOKEN_FONT_SIZES:
+   {
+      int sizes[D_FONT_SIZE_NUM];
+      if (sscanf(scanner->value.v_string,
+               "%d %d %d %d %d %d",
+               &sizes[0],
+               &sizes[1],
+               &sizes[2],
+               &sizes[3],
+               &sizes[4],
+               &sizes[5]) == D_FONT_SIZE_NUM) {
+         memcpy(prefs.font_sizes, sizes, sizeof(int) * D_FONT_SIZE_NUM);
+      }
+   }
    case DRC_TOKEN_LIMIT_TEXT_WIDTH:
       prefs.limit_text_width = (strcmp(scanner->value.v_string, "YES") == 0);
       break;
+   case DRC_TOKEN_LIMIT_FONT_DECORATION:
+      prefs.limit_font_decoration = (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
    case DRC_TOKEN_W3C_PLUS_HEURISTICS:
       prefs.w3c_plus_heuristics = (strcmp(scanner->value.v_string,"YES") == 0);
       break;
@@ -230,17 +298,31 @@ static guint Prefs_parser(GScanner *scan
    case DRC_TOKEN_SHOW_PROGRESS_BOX:
       prefs.show_progress_box = (strcmp(scanner->value.v_string, "YES") == 0);
       break;
+   case DRC_TOKEN_SHOW_POPUP_NAVIGATION:
+      prefs.show_popup_navigation = (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
    case DRC_TOKEN_FULLWINDOW_START:
       prefs.fullwindow_start = (strcmp(scanner->value.v_string, "YES") == 0);
       break;
    case DRC_TOKEN_TRANSIENT_DIALOGS:
       prefs.transient_dialogs = (strcmp(scanner->value.v_string, "YES") == 0);
       break;
+   case DRC_TOKEN_POPUP_DIALOGS:
+      prefs.popup_dialogs = (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+#ifdef DISABLE_ANTI_ALIAS
    case DRC_TOKEN_FW_FONT:
+#else
+   case DRC_TOKEN_FW_AAFONT:
+#endif
       g_free(prefs.fw_fontname);
       prefs.fw_fontname = g_strdup(scanner->value.v_string);
       break;
+#ifdef DISABLE_ANTI_ALIAS
    case DRC_TOKEN_VW_FONT:
+#else
+   case DRC_TOKEN_VW_AAFONT:
+#endif
       g_free(prefs.vw_fontname);
       prefs.vw_fontname = g_strdup(scanner->value.v_string);
       break;
@@ -255,6 +337,10 @@ static guint Prefs_parser(GScanner *scan
       g_free(prefs.search_url);
       prefs.search_url = g_strdup(scanner->value.v_string);
       break;
+   case DRC_TOKEN_SEARCH_CHARSET:
+      g_free(prefs.search_charset);
+      prefs.search_charset = g_strdup(scanner->value.v_string);
+      break;
    case DRC_TOKEN_SHOW_MSG:
       prefs.show_msg =
          (strcmp(scanner->value.v_string, "YES") == 0);
@@ -263,23 +349,94 @@ static guint Prefs_parser(GScanner *scan
       prefs.show_extra_warnings =
          (strcmp(scanner->value.v_string, "YES") == 0);
       break;
+   case DRC_TOKEN_FOCUS_LOCATION_ON_NEW:
+      prefs.focus_location_on_new =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_ACCEPT_LANGUAGE:
+      if (strlen(scanner->value.v_string) != 0) {
+         g_free(prefs.accept_language);
+         prefs.accept_language = g_strdup(scanner->value.v_string);
+      }
+      break;
+   case DRC_TOKEN_QUERY_EXPIRE_TIME:
+      prefs.query_expire_time = strtol(scanner->value.v_string, NULL, 10);
+      break;
+   case DRC_TOKEN_MIN_PAGE_EXPIRE_TIME:
+      prefs.min_page_expire_time = strtol(scanner->value.v_string, NULL, 10);
+      break;
+   case DRC_TOKEN_MIN_IMAGE_EXPIRE_TIME:
+      prefs.min_image_expire_time = strtol(scanner->value.v_string, NULL, 10);
+      break;
+#ifndef DISABLE_TABS
+   case DRC_TOKEN_TAB_LOAD_IN_BACKGROUND:
+      prefs.tab_load_in_background =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_TAB_INSTEAD_OF_WINDOW:
+      prefs.tab_instead_of_window =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_TAB_BAR_SHOW_FULLSCREEN:
+      prefs.tab_bar_show_fullscreen =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_TAB_BAR_SHOW_SINGLE_TAB:
+      prefs.tab_bar_show_single_tab =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_TAB_BAR_SCROLLER:
+      prefs.tab_bar_scroller =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_TAB_BAR_HOMOGENEOUS:
+      prefs.tab_bar_homogeneous =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_TAB_TITLE_COMPRESS:
+      prefs.tab_title_compress =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_TAB_CLOSE_MIDDLE_CLICK:
+      prefs.tab_close_middle_click =
+         (strcmp(scanner->value.v_string, "YES") == 0);
+      break;
+   case DRC_TOKEN_COMPRESS_VOWELS:
+      g_free(prefs.compress_vowels);
+      prefs.compress_vowels = g_strdup(scanner->value.v_string);
+      break;
+   case DRC_TOKEN_COMPRESS_COMMON_PREFIXES:
+      g_free(prefs.compress_common_prefixes);
+      prefs.compress_common_prefixes = g_strdup(scanner->value.v_string);
+      prefs.compress_common_prefixes_vec = 
+        g_strsplit(prefs.compress_common_prefixes, ";", 0);
+      break;
+#endif /*DISABLE_TABS */
    default:
       break;   /* Not reached */
    }
    return G_TOKEN_NONE;
 }
 
-static gint Prefs_load(void)
+static gint Prefs_load(char *rcfile)
 {
    GScanner *scanner;
-   gint fd;
+   gint fd = -1;
    guint i, expected_token;
    gchar *file;
 
    /* Here we load and set options from dillorc */
-   file = a_Misc_prepend_user_home(".dillo/dillorc");
-   fd = open(file, O_RDONLY);
-   g_free(file);
+   if (rcfile) {
+      if ((fd = open(rcfile, O_RDONLY)) < 0) {
+         g_printerr(_("Error: Can't open specified config file."
+                     " default file is used.\n"));
+      }
+   }
+   if (fd < 0) {
+      file = a_Misc_prepend_user_home(".dillo/dillorc");
+      fd = open(file, O_RDONLY);
+      g_free(file);
+   }
    if (fd < 0 && (fd = open(DILLORC_SYS, O_RDONLY)) < 0)
       return FILE_NOT_FOUND;
 
@@ -318,7 +475,7 @@ static gint Prefs_load(void)
    g_scanner_input_file(scanner, fd);
 
    /* give the error handler an idea on how the input is named */
-   scanner->input_name = "dillorc";
+   scanner->input_name = (rcfile) ? rcfile : "dillorc";
 
    /*
     * Scanning loop, we parse the input until it's end is reached,
@@ -354,7 +511,7 @@ static gint Prefs_load(void)
    return PARSE_OK;
 }
 
-void a_Prefs_init(void)
+void a_Prefs_init(char *rcfile)
 {
    gchar *old_locale;
 
@@ -366,6 +523,8 @@ void a_Prefs_init(void)
    prefs.http_proxyuser = NULL;
    prefs.no_proxy = NULL;
    prefs.no_proxy_vec = NULL;
+   prefs.user_agent = NULL;
+   prefs.send_referer = TRUE;
    prefs.link_color = DW_COLOR_DEFAULT_BLUE;
    prefs.visited_color = DW_COLOR_DEFAULT_PURPLE;
    prefs.bg_color = DW_COLOR_DEFAULT_BGND;
@@ -380,8 +539,18 @@ void a_Prefs_init(void)
    prefs.panel_size = 1;
    prefs.small_icons = FALSE;
    prefs.limit_text_width = FALSE;
+   prefs.limit_font_decoration = FALSE;
    prefs.w3c_plus_heuristics = TRUE;
    prefs.font_factor = 1.0;
+#ifndef DISABLE_ANTI_ALIAS
+   prefs.font_factor = 0.8;
+#endif
+   prefs.font_sizes[0] = D_FONT_SIZE_1;
+   prefs.font_sizes[1] = D_FONT_SIZE_2;
+   prefs.font_sizes[2] = D_FONT_SIZE_3;
+   prefs.font_sizes[3] = D_FONT_SIZE_4;
+   prefs.font_sizes[4] = D_FONT_SIZE_5;
+   prefs.font_sizes[5] = D_FONT_SIZE_6;
    prefs.use_dicache = FALSE;
    prefs.show_back=TRUE;
    prefs.show_forw=TRUE;
@@ -395,21 +564,42 @@ void a_Prefs_init(void)
    prefs.show_url=TRUE;
    prefs.show_search=TRUE;
    prefs.show_progress_box=TRUE;
+   prefs.show_popup_navigation=TRUE;
    prefs.fullwindow_start=FALSE;
    prefs.transient_dialogs=FALSE;
-   prefs.vw_fontname = g_strdup("helvetica");
-   prefs.fw_fontname = g_strdup("courier");
+   prefs.popup_dialogs=FALSE;
+   prefs.vw_fontname = g_strdup(D_DEFAULT_VW_FONT);
+   prefs.fw_fontname = g_strdup(D_DEFAULT_FW_FONT);
    prefs.generate_submit = FALSE;
    prefs.enterpress_forces_submit = FALSE;
-   prefs.search_url = g_strdup("http://www.google.com/search?q=%s");
+   prefs.search_url = g_strdup(DILLO_SEARCH_URL);
+   prefs.search_charset = g_strdup(DILLO_SEARCH_CHARSET);
    prefs.show_msg = TRUE;
    prefs.show_extra_warnings = FALSE;
-
+   prefs.focus_location_on_new = TRUE;
+   prefs.accept_language = g_strdup(DILLO_ACCEPT_LANGUAGE);
+   prefs.query_expire_time = -1;
+   prefs.min_page_expire_time = 60; // some sites need 0. 60; // 1 minute
+   prefs.min_image_expire_time = 1800; // 30 minutes
+#ifndef DISABLE_TABS
+   prefs.tab_load_in_background = FALSE;
+   prefs.tab_instead_of_window = FALSE;
+   prefs.tab_bar_show_fullscreen = FALSE;
+   prefs.tab_bar_show_single_tab = FALSE;
+   prefs.tab_bar_scroller = FALSE;
+   prefs.tab_bar_homogeneous = TRUE;
+   prefs.tab_title_compress = TRUE;
+   prefs.tab_close_middle_click = TRUE;
+   prefs.compress_vowels = g_strdup(COMPRESS_VOWELS);
+   prefs.compress_common_prefixes = g_strdup(COMPRESS_COMMON_PREFIXES);
+   prefs.compress_common_prefixes_vec = 
+     g_strsplit(prefs.compress_common_prefixes, ";", 0);
+#endif /* DISABLE_TABS */
    /* this locale stuff is to avoid parsing problems with float numbers */
    old_locale = g_strdup (setlocale (LC_NUMERIC, NULL));
    setlocale (LC_NUMERIC, "C");
 
-   Prefs_load();
+   Prefs_load(rcfile);
 
    setlocale (LC_NUMERIC, old_locale);
    g_free (old_locale);
@@ -426,9 +616,18 @@ void a_Prefs_freeall(void)
    if (prefs.no_proxy_vec)
       g_strfreev(prefs.no_proxy_vec);
    a_Url_free(prefs.http_proxy);
+   g_free(prefs.user_agent);
    g_free(prefs.fw_fontname);
    g_free(prefs.vw_fontname);
    a_Url_free(prefs.start_page);
    a_Url_free(prefs.home);
    g_free(prefs.search_url);
+   g_free(prefs.search_charset);
+   g_free(prefs.accept_language);
+#ifndef DISABLE_TABS
+   g_free(prefs.compress_vowels);
+   g_free(prefs.compress_common_prefixes);
+   if (prefs.compress_common_prefixes_vec)
+      g_strfreev(prefs.compress_common_prefixes_vec);
+#endif /* DISABLE_TABS */
 }
diff -pruN dillo-0.8.6/src/prefs.h dillo-0.8.6-i18n-misc-20060709/src/prefs.h
--- dillo-0.8.6/src/prefs.h	2005-10-28 01:20:14.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/prefs.h	2006-05-16 01:21:09.000000000 +0900
@@ -9,6 +9,9 @@ extern "C" {
 
 #define DILLO_START_PAGE "about:splash"
 #define DILLO_HOME "http://www.dillo.org/"
+#define DILLO_SEARCH_URL "http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=%s"
+#define DILLO_SEARCH_CHARSET "UTF-8"
+#define DILLO_ACCEPT_LANGUAGE "en-us"
 #define D_GEOMETRY_DEFAULT_WIDTH   640
 #define D_GEOMETRY_DEFAULT_HEIGHT  550
 #define D_GEOMETRY_DEFAULT_XPOS  -9999
@@ -20,6 +23,28 @@ extern "C" {
 #define DW_COLOR_DEFAULT_PURPLE 0x800080
 #define DW_COLOR_DEFAULT_BGND   0xd6d6c0
 
+#define COMPRESS_VOWELS "aeiouyAEIOUY"
+#define COMPRESS_COMMON_PREFIXES "index of ;re: ;fwd: ;www.;welcome to ;the "
+
+#ifdef DISABLE_ANTI_ALIAS
+ #define D_DEFAULT_VW_FONT "*-gothic"
+ #define D_DEFAULT_FW_FONT "*-gothic"
+ #define D_FONT_SIZE_BASE  8
+#else
+ #define D_DEFAULT_VW_FONT "*"
+ #define D_DEFAULT_FW_FONT "*"
+ #define D_FONT_SIZE_BASE  6
+#endif
+
+/* The following array of font sizes has to be _strictly_ crescent */
+#define D_FONT_SIZE_1 (D_FONT_SIZE_BASE + 2)
+#define D_FONT_SIZE_2 (D_FONT_SIZE_BASE + 4)
+#define D_FONT_SIZE_3 (D_FONT_SIZE_BASE + 6)
+#define D_FONT_SIZE_4 (D_FONT_SIZE_BASE + 8)
+#define D_FONT_SIZE_5 (D_FONT_SIZE_BASE + 12)
+#define D_FONT_SIZE_6 (D_FONT_SIZE_BASE + 16)
+#define D_FONT_SIZE_NUM 6
+
 /* define enumeration values to be returned */
 enum {
    PARSE_OK = 0,
@@ -33,6 +58,8 @@ typedef enum {
    DRC_TOKEN_PROXY,
    DRC_TOKEN_PROXYUSER,
    DRC_TOKEN_NOPROXY,
+   DRC_TOKEN_USER_AGENT,
+   DRC_TOKEN_SEND_REFERER,
    DRC_TOKEN_LINK_COLOR,
    DRC_TOKEN_VISITED_COLOR,
    DRC_TOKEN_BG_COLOR,
@@ -46,8 +73,10 @@ typedef enum {
    DRC_TOKEN_PANEL_SIZE,
    DRC_TOKEN_SMALL_ICONS,
    DRC_TOKEN_FONT_FACTOR,
+   DRC_TOKEN_FONT_SIZES,
    DRC_TOKEN_SHOW_TOOLTIP,
    DRC_TOKEN_LIMIT_TEXT_WIDTH,
+   DRC_TOKEN_LIMIT_FONT_DECORATION,
    DRC_TOKEN_W3C_PLUS_HEURISTICS,
    DRC_TOKEN_USE_DICACHE,
    DRC_TOKEN_SHOW_BACK,
@@ -62,15 +91,37 @@ typedef enum {
    DRC_TOKEN_SHOW_URL,
    DRC_TOKEN_SHOW_SEARCH,
    DRC_TOKEN_SHOW_PROGRESS_BOX,
+   DRC_TOKEN_SHOW_POPUP_NAVIGATION,
    DRC_TOKEN_FULLWINDOW_START,
    DRC_TOKEN_TRANSIENT_DIALOGS,
+   DRC_TOKEN_POPUP_DIALOGS,
    DRC_TOKEN_FW_FONT,
    DRC_TOKEN_VW_FONT,
+   DRC_TOKEN_FW_AAFONT,
+   DRC_TOKEN_VW_AAFONT,
    DRC_TOKEN_GENERATE_SUBMIT,
    DRC_TOKEN_ENTERPRESS_FORCES_SUBMIT,
    DRC_TOKEN_SEARCH_URL,
+   DRC_TOKEN_SEARCH_CHARSET,
    DRC_TOKEN_SHOW_MSG,
    DRC_TOKEN_SHOW_EXTRA_WARNINGS,
+   DRC_TOKEN_FOCUS_LOCATION_ON_NEW,
+   DRC_TOKEN_ACCEPT_LANGUAGE,
+   DRC_TOKEN_QUERY_EXPIRE_TIME,
+   DRC_TOKEN_MIN_PAGE_EXPIRE_TIME,
+   DRC_TOKEN_MIN_IMAGE_EXPIRE_TIME,
+#ifndef DISABLE_TABS
+   DRC_TOKEN_TAB_LOAD_IN_BACKGROUND,
+   DRC_TOKEN_TAB_INSTEAD_OF_WINDOW,
+   DRC_TOKEN_TAB_BAR_SHOW_FULLSCREEN,
+   DRC_TOKEN_TAB_BAR_SHOW_SINGLE_TAB,
+   DRC_TOKEN_TAB_BAR_SCROLLER,
+   DRC_TOKEN_TAB_BAR_HOMOGENEOUS,
+   DRC_TOKEN_TAB_TITLE_COMPRESS,
+   DRC_TOKEN_TAB_CLOSE_MIDDLE_CLICK,
+   DRC_TOKEN_COMPRESS_VOWELS,
+   DRC_TOKEN_COMPRESS_COMMON_PREFIXES,
+#endif /* !DISABLE_TABS */
 
    DRC_TOKEN_LAST
 } Dillo_Rc_TokenType;
@@ -86,6 +137,8 @@ struct _DilloPrefs {
    gchar *http_proxyuser;
    gchar *no_proxy;
    gchar **no_proxy_vec;
+   gchar *user_agent;
+   gboolean send_referer;
    DilloUrl *start_page;
    DilloUrl *home;
    gint32 link_color;
@@ -100,8 +153,10 @@ struct _DilloPrefs {
    gint panel_size;
    gboolean small_icons;
    gboolean limit_text_width;
+   gboolean limit_font_decoration;
    gboolean w3c_plus_heuristics;
    gdouble font_factor;
+   gint font_sizes[D_FONT_SIZE_NUM];
    gboolean use_dicache;
    gboolean show_back;
    gboolean show_forw;
@@ -115,21 +170,42 @@ struct _DilloPrefs {
    gboolean show_url;
    gboolean show_search;
    gboolean show_progress_box;
+   gboolean show_popup_navigation;
    gboolean fullwindow_start;
    gboolean transient_dialogs;
+   gboolean popup_dialogs;
    gchar *vw_fontname;
    gchar *fw_fontname;
    gboolean generate_submit;
    gboolean enterpress_forces_submit;
    gchar *search_url;
+   gchar *search_charset;
    gboolean show_msg;
    gboolean show_extra_warnings;
+   gboolean focus_location_on_new;
+   gchar *accept_language;
+   gint query_expire_time;
+   gint min_page_expire_time;
+   gint min_image_expire_time;
+#ifndef DISABLE_TABS
+   gboolean tab_load_in_background;
+   gboolean tab_instead_of_window;
+   gboolean tab_bar_show_fullscreen;
+   gboolean tab_bar_show_single_tab;
+   gboolean tab_bar_scroller;
+   gboolean tab_bar_homogeneous;
+   gboolean tab_title_compress;
+   gboolean tab_close_middle_click;
+   gchar *compress_vowels;
+   gchar *compress_common_prefixes;
+   gchar **compress_common_prefixes_vec;
+#endif /* DISABLE_TABS */
 };
 
 /* Global Data */
 DilloPrefs prefs;
 
-void a_Prefs_init(void);
+void a_Prefs_init(char *rcfile);
 void a_Prefs_freeall(void);
 
 #ifdef __cplusplus
diff -pruN dillo-0.8.6/src/progressbar.h dillo-0.8.6-i18n-misc-20060709/src/progressbar.h
--- dillo-0.8.6/src/progressbar.h	2005-10-28 01:20:14.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/progressbar.h	2006-05-16 01:21:09.000000000 +0900
@@ -27,6 +27,8 @@
 extern "C" {
 #endif /* __cplusplus */
 
+#define PBAR_L 32 /* max length of progress bar string */
+
 #define PBAR_ISTR(s)  (s) ? "" : "Images: "
 #define PBAR_PSTR(s)  (s) ? "" : "Page: "
 
diff -pruN dillo-0.8.6/src/selection.c dillo-0.8.6-i18n-misc-20060709/src/selection.c
--- dillo-0.8.6/src/selection.c	2006-01-03 03:16:32.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/selection.c	2006-05-16 01:21:09.000000000 +0900
@@ -14,6 +14,7 @@
  * See doc/Selection.txt for informations about this module.
  */
 
+#include "i18n.h"
 #include "selection.h"
 #include "strbuf.h"
 #include "dw_gtk_viewport.h"
@@ -570,7 +571,7 @@ static void Selection_copy(Selection *se
                                   strlen (i->content.data.text) - a_char);
                   a_Strbuf_append (strbuf, tmp);
                   g_free (tmp);
-               } else if (cmp == 0) {
+               } else if (cmp == 0 && b_char > 0) {
                   /* the end */
                   tmp = g_strndup(si->content.data.text, b_char);
                   a_Strbuf_append (strbuf, tmp);
@@ -638,8 +639,11 @@ void a_Selection_set_selection(GtkWidget
       /* As the clear-selection callback is not being called automatically
        * before setting the new value, it'll be cleared here.  --Jcid
        * todo: this selection code needs a revision */
+      gchar *oldSelection;
       g_free(selection);
-      selection = g_strdup(str);
+	   oldSelection = a_I18n_locale_from_DILLO_CHARSET(str, -1);
+      selection = a_I18n_string_check(oldSelection, DW_CHARSET);
+	   g_free(oldSelection);
    }
 }
 
@@ -649,8 +653,25 @@ void a_Selection_set_selection(GtkWidget
 void a_Selection_give_selection_callback(GtkWidget *widget,
         GtkSelectionData *data, guint info, guint time)
 {
-   gtk_selection_data_set(data, GDK_SELECTION_TYPE_STRING,
-                          8, selection, strlen(selection));
+   guchar *ctext;
+   gint format, length;
+   GdkAtom encoding;
+   gboolean is_ascii_string;
+   gint i;
+
+   is_ascii_string = TRUE;
+   for (i = 0; selection[i]; i++) {
+      is_ascii_string &= IS_ASCII_CHAR(selection[i]);
+   }
+   
+   if (is_ascii_string) {
+      gtk_selection_data_set(data, GDK_SELECTION_TYPE_STRING,
+            8, selection, strlen(selection));      
+   } else {
+      gdk_string_to_compound_text(selection, &encoding, &format, &ctext, &length);
+      gtk_selection_data_set(data, encoding, 8, ctext, length);
+      gdk_free_compound_text(ctext);
+   }
 }
 
 /*
@@ -666,3 +687,4 @@ gint a_Selection_clear_selection_callbac
    return TRUE;
 }
 
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/src/strbuf.c dillo-0.8.6-i18n-misc-20060709/src/strbuf.c
--- dillo-0.8.6/src/strbuf.c	2005-10-28 01:20:15.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/strbuf.c	2006-05-16 01:21:09.000000000 +0900
@@ -78,17 +78,27 @@ gchar* a_Strbuf_chars (Strbuf_t *strbuf)
    g_free (strbuf->str);
    strbuf->str = g_new (gchar, strbuf->num_chars + 1);
 
+#if 1 /* if 1, use old code. */
+   strbuf->list = g_slist_reverse (strbuf->list);
+#else
    /* The strings in the list are prepended so we have to start from the tail
     * and work our way to the start of the new string */
    p = strbuf->str + strbuf->num_chars;
+#endif
+   p = strbuf->str;
    for (it = strbuf->list; it; it = it->next) {
       s = (gchar*)(it->data);
       l = strlen (s);
-      p -= l;
       memcpy (p, s, l * sizeof (gchar));
+      p += l;
    }
 
+#if 1 /* if 1, use old code. */
+   *p = 0;
+   strbuf->list = g_slist_reverse (strbuf->list); /* reverse reversion */
+#else
    p[strbuf->num_chars] = 0;
+#endif
    strbuf->str_valid = TRUE;
 
    return strbuf->str;
diff -pruN dillo-0.8.6/src/tab.c dillo-0.8.6-i18n-misc-20060709/src/tab.c
--- dillo-0.8.6/src/tab.c	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/tab.c	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,500 @@
+/*
+ * File: tab.c
+ *
+ * Copyright (C) 2003 Frank de Lange <frank@unternet.org>
+ *
+ * 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. */
+
+#ifndef DISABLE_TABS
+
+#include <config.h>
+
+#include <stdio.h>
+#include <ctype.h>
+#include <gtk/gtk.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <fcntl.h>
+
+#include "intl.h"
+#include "i18n.h"
+#include "misc.h"
+#include "dillo.h"
+#include "history.h"
+#include "nav.h"
+#include "doc.h"
+#include "IO/Url.h"
+#include "interface.h"
+#include "tab.h"
+#include "commands.h"
+#include "prefs.h"
+#include "menu.h"
+
+#include "dw_gtk_scrolled_window.h"
+#include "dw_gtk_viewport.h"
+
+#include <gdk/gdkkeysyms.h>
+
+#define DEBUG_EVENT  0
+#define DEBUG_SIZE  10
+#define DEBUG_ALLOC 10
+
+#define DEBUG_LEVEL 0
+#include "debug.h"
+
+/* BROWSER TABS */
+
+/* callbacks */
+
+/*
+ * callback for tab label resize_request. This adjusts
+ * the tab title to the width of the tab, compressing
+ * or shortening (according to preference) the title if needed 
+ */
+void
+Tab_label_size_request_callback(GtkWidget *widget,
+                                GtkAllocation *alloc,
+                                gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *) client_data;
+   GtkLabel *tab_label = (GtkLabel *) widget;
+   gchar *tab_title, *checked_str, *short_title;
+   gint tab_title_size, tab_title_len;
+
+   /* the tool tip is attached to the parent of the label, an event box */
+   tab_title = ((GtkTooltipsData *) gtk_tooltips_data_get(
+                                       GTK_WIDGET(
+                                        GTK_WIDGET(
+                                         tab_label)->parent)))->tip_text;
+
+   tab_title_size = (gint) ((gfloat) alloc->width / dd->bw->tab_label_average_character_width);
+
+   /* compress or shorten the tab title? */
+   tab_title = a_I18n_DW_CHARSET_to_DILLO_CHARSET(tab_title, -1);
+   tab_title_len = strlen(tab_title);
+   if (prefs.tab_title_compress) {
+     /* use title compression algorithm */
+     short_title = a_Misc_string_compress(tab_title, tab_title_size);
+   } else {
+     /* use simple shortening */
+     short_title = a_Misc_string_shorten(tab_title, tab_title_size);
+   }
+   g_free(tab_title);
+   tab_title = a_I18n_DW_CHARSET_from_DILLO_CHARSET(short_title, -1);
+   g_free(short_title);
+   
+   /* check string */
+   checked_str = a_I18n_string_check(tab_title, DW_CHARSET);
+   g_free(tab_title);
+
+   gtk_label_set_text(GTK_LABEL(tab_label), checked_str);
+   g_free(checked_str);
+}
+
+/*
+ * callback for tab label button_press_event
+ *
+ * used to popup menu with tab options
+ *
+ * even though this is called 'tab_label_..., the callback is in
+ * fact attached to an event box surrounding the tab_label, as gtk
+ * label widgets can not receive events
+ */
+void
+Tab_label_button_press_event_callback(GtkWidget *widget,
+                                      GdkEventButton *event,
+                                      gpointer client_data)
+{
+   DilloDoc *dd = (DilloDoc *) client_data;
+   switch (event->button) {
+   case 1:
+     a_Tab_switch(dd);
+     break;
+   case 2:
+     /* currently unused */
+     DEBUG_MSG(DEBUG_EVENT, "You pressed button (%d) over a tab...\n", (gint) event->button);
+     if (prefs.tab_close_middle_click)
+         a_Tab_close(dd);
+     break;
+   case 3:
+     /* popup tab options menu */
+     if (dd->bw->menu_popup.over_tab)
+       gtk_widget_destroy(dd->bw->menu_popup.over_tab);
+     dd->bw->menu_popup.over_tab = a_Menu_popup_tab_new(dd);
+     gtk_menu_popup(GTK_MENU(dd->bw->menu_popup.over_tab), NULL, NULL,
+                    NULL, NULL, event->button, event->time);
+     break;
+   default:
+     /* weird pointer with more than 3 buttons, ignore */
+     DEBUG_MSG(DEBUG_EVENT, "You pressed button (%d) over a tab...\n", (gint) event->button);
+     break;
+   }
+}
+  
+/*
+ * callback for tab switch. This just calls a_Tab_switch for the docwin
+ * passed as page
+ */
+void
+Tab_switch_callback(GtkWidget *tabbrowser,
+                    GtkNotebookPage *page,
+                    gint page_num,
+                    gpointer client_data)
+{
+   DilloDoc *dd;
+   GtkWidget *docwin;
+
+   /* the notebook page contains a box, which contains the docwin as its first child
+    * hence this hairy function... */
+   docwin = g_list_nth_data(gtk_container_children(GTK_CONTAINER(gtk_notebook_get_nth_page(GTK_NOTEBOOK(tabbrowser), page_num))), 0);
+   dd = a_Doc_get_by_docwin(docwin);
+
+   if(dd)
+     a_Tab_switch(dd);
+}
+
+/*
+ * callback for tab add
+ */
+void
+Tab_add_callback(GtkContainer *container,
+                 GtkWidget *widget,
+                 gpointer client_data)
+{
+   DEBUG_MSG(DEBUG_EVENT, "I am the tab_add callback in src/tab.c!\n");
+}
+
+/*
+ * callback for tab remove
+ */
+void
+Tab_remove_callback(GtkContainer *container,
+                    GtkWidget *widget,
+                    gpointer client_data)
+{
+   DEBUG_MSG(DEBUG_EVENT, "I am the tab remove callback, in src/tab.c!\n");
+}
+
+/*
+ * callback for tab browser destroy
+ */
+void
+Tab_browser_destroy_callback(GtkContainer *container,
+                    GtkWidget *widget,
+                    gpointer client_data)
+{
+   DEBUG_MSG(DEBUG_EVENT, "I am the tab browser destroy callback, in src/tab.c!\n");
+}
+
+/* Public functions */
+
+/*
+ * return a new tab browser
+ */
+GtkContainer *
+a_Tab_browser_new(BrowserWindow *bw)
+{
+   GtkRequisition *req;
+   GtkWidget *label;
+   GtkNotebook *tabbrowser;
+
+   /* try to calulate the average width of a character in a label
+    * in the current context. This is something of a hack...
+    */
+   req = g_new0(GtkRequisition, 1);
+   label = gtk_label_new(D_QUICK_BROWN_FOX);
+   gtk_widget_show(label);
+   gtk_widget_size_request(GTK_WIDGET(label), req);
+   bw->tab_label_average_character_width = (gfloat) ((gfloat) req->width / (gfloat) strlen(GTK_LABEL(label)->label));
+   g_free(req);
+
+   /* Add tabbrowser */
+   tabbrowser = GTK_NOTEBOOK(gtk_notebook_new());
+   gtk_notebook_set_show_border(GTK_NOTEBOOK(tabbrowser), FALSE);
+   gtk_notebook_set_scrollable(GTK_NOTEBOOK(tabbrowser), prefs.tab_bar_scroller);
+   gtk_notebook_set_homogeneous_tabs(GTK_NOTEBOOK(tabbrowser), prefs.tab_bar_homogeneous);
+   gtk_signal_connect_after(GTK_OBJECT(tabbrowser),
+			    "switch_page",
+			    GTK_SIGNAL_FUNC(Tab_switch_callback),
+			    (gpointer) bw);
+   
+   gtk_signal_connect_after(GTK_OBJECT(tabbrowser),
+                            "add",
+                            GTK_SIGNAL_FUNC(Tab_add_callback),
+                            (gpointer) bw);
+
+   gtk_signal_connect(GTK_OBJECT(tabbrowser),
+                            "remove",
+                            GTK_SIGNAL_FUNC(Tab_remove_callback),
+                            (gpointer) bw);
+   /* commented out, currently not in use...  
+   gtk_signal_connect(GTK_OBJECT(tabbrowser),
+                            "destroy",
+                            GTK_SIGNAL_FUNC(Tab_browser_destroy_callback),
+                            (gpointer) bw);
+   */
+   
+   return GTK_CONTAINER(tabbrowser);
+}
+
+/*
+ * switch tab, update interface
+ */
+void
+a_Tab_switch(DilloDoc *dd)
+{
+   a_Interface_findtext_dialog_close();
+   a_Dw_tooltip_count_reset ();
+
+   /* set bw's current root document */
+   dd->bw->dd = a_Doc_get_root(dd);
+
+   /* add the browser window's full_screen_off_button to the dd's
+    * docwin. This button is owned by the window (this makes it easier
+    * to move tabs between windows, if needed), so it needs to
+    * be moved from tab to tab when the tab becomes current (as
+    * GTK does not allow a widget to have more than one parent).
+    *
+    * XXX:HACK
+    */
+   if (GTK_WIDGET(dd->bw->full_screen_off_button)->parent != dd->docwin) {
+     /* keep a ref to the widget to keep it alive in transit... */
+     gtk_object_ref(GTK_OBJECT(dd->bw->full_screen_off_button));
+     if (GTK_WIDGET(dd->bw->full_screen_off_button)->parent)
+       gtk_container_remove(GTK_CONTAINER(GTK_WIDGET(dd->bw->full_screen_off_button)->parent),
+			    GTK_WIDGET(dd->bw->full_screen_off_button));
+     a_Dw_gtk_scrolled_window_add_gadget(GTK_DW_SCROLLED_WINDOW (dd->docwin),
+					 dd->bw->full_screen_off_button);
+     /* ref is no longer needed, discard it... */
+     gtk_object_unref(GTK_OBJECT(dd->bw->full_screen_off_button));
+
+     /* XXX:HACK the docwin does not show (or raise?) the widget when needed... */
+     if(GTK_WIDGET_VISIBLE(dd->bw->full_screen_off_button)) {
+       gtk_widget_hide(dd->bw->full_screen_off_button);
+       gtk_widget_show(dd->bw->full_screen_off_button);
+     }
+   }
+
+   /* update progress bar and adjust button sensitivity */
+   a_Doc_progress_update(dd);
+
+   /* adjust tab specific interface elements */
+   if (dd->nav_stack_ptr != -1)
+     /* this tab has a document loaded, set values accordingly */
+     {
+       a_Interface_set_page_title(dd->bw, (gchar *) a_History_get_title(NAV_TOP(dd)));
+       a_Interface_set_location_text(dd->bw,URL_STR_(a_History_get_url(NAV_TOP(dd))));
+     } else {
+       /* no document loaded in tab, use default values */
+       gchar *title = a_I18n_locale_to_DILLO_CHARSET(_("(Untitled)"));
+       a_Interface_set_page_title(dd->bw, title);
+       g_free(title);
+       a_Interface_set_location_text(dd->bw,"");
+     }
+
+   /* show tab */
+   gtk_notebook_set_page(GTK_NOTEBOOK(dd->bw->container),
+			 gtk_notebook_page_num(GTK_NOTEBOOK(dd->bw->container),
+			 GTK_WIDGET(dd->docwin)->parent));
+
+   /* set focus to docwin */
+   gtk_widget_grab_focus(GTK_BIN(dd->docwin)->child);
+}
+
+/*
+ * set visibility of tab bar
+ */
+void
+a_Tab_visibility_update(BrowserWindow *bw)
+{
+   gboolean hide_tabs;
+
+   g_return_if_fail(bw != NULL);
+
+   /* this gets called in the tab switching code, which in turn gets called when
+    * a tab is deleted. This includes the final tab, which in turn causes the main_window
+    * to be destroyed, which of course includes the tabbrowser... So, check first if
+    * there is still a tabbrowser around to update before doing anything else...
+    */
+   if(!GTK_IS_CONTAINER(bw->container))
+     return;
+   
+   /* HIDE tab bar IF
+    * -  there is only one tab left AND the preference tab_bar_show_single_tab
+    * is set to NO
+    *  OR
+    * - when using fullscreen AND the preference tab_bar_show_fullscreen
+    * is set to NO
+    * OTHERWISE
+    * SHOW tab bar
+    */
+   hide_tabs = ((g_list_length(gtk_container_children(GTK_CONTAINER(bw->container))) == 1)
+                && (!prefs.tab_bar_show_single_tab));
+   hide_tabs |= (bw->fullwindow
+                 && (!prefs.tab_bar_show_fullscreen));
+   gtk_notebook_set_show_tabs(GTK_NOTEBOOK(bw->container), !hide_tabs);
+}
+
+
+/*
+ * close a specific browser tab,
+ * close window if no tabs left
+ *
+ * NOTE: this will destroy the document which
+ * was displayed in the tab, through the destroy callback
+ * for the docwin (in src/doc.c). If documents have to
+ * be moved between tabs or frames, unparent the
+ * pagemarks menu and reparent dd->docwin before calling
+ * this function!
+ */
+void
+a_Tab_close(DilloDoc *dd)
+{
+   gint page_num;
+   BrowserWindow *bw = dd->bw;
+
+   g_return_if_fail (dd != NULL);
+
+   a_Interface_findtext_dialog_close();
+
+   page_num = gtk_notebook_page_num(GTK_NOTEBOOK(bw->container),
+				    GTK_WIDGET(dd->docwin)->parent);
+
+   /* left-to-right tab deletion: if this is the current page, show next page */
+   if(gtk_notebook_get_current_page(GTK_NOTEBOOK(bw->container)) == page_num)
+     gtk_notebook_next_page(GTK_NOTEBOOK(bw->container));
+
+   /* this will destroy dd->docwin (and the DilloDoc)
+    * if there are no reference left to it */
+   gtk_notebook_remove_page(GTK_NOTEBOOK(bw->container), page_num);
+
+   if (gtk_notebook_get_current_page(GTK_NOTEBOOK(bw->container)) == -1)
+     {
+       /* destroying the main window causes its destroy
+          callback to be fired. This takes down the
+          rest of the BrowserWindow */
+       gtk_widget_destroy(GTK_WIDGET(bw->main_window));
+     }
+
+   a_Tab_visibility_update(bw);
+}
+
+/*
+ * Add a tab (containing a new DilloDoc) to a browser window
+ */
+void
+a_Tab_new(BrowserWindow *bw)
+{
+   DilloDoc *dd;
+
+   g_return_if_fail (bw != NULL);
+
+   dd = a_Doc_new();
+   a_Tab_add(bw, dd);
+
+   /* always show new tabs, even when background loading */
+   a_Tab_switch(dd);
+
+   /* set focus to url bar */
+   gtk_widget_grab_focus(dd->bw->location);
+}
+
+
+/*
+ * Add a tab (containing an existing DilloDoc) to a browser window
+ */
+void
+a_Tab_add(BrowserWindow *bw, DilloDoc *dd)
+{
+   GString *tab_title;
+   GtkWidget *tab_label, *tab_label_event_box, *box;
+   GtkPackType *pack_type = g_new0(GtkPackType, 1);
+
+   g_return_if_fail (bw != NULL && dd != NULL);
+
+   a_Doc_set_browserwindow(dd, bw);
+
+   if (dd->nav_stack_ptr != -1)
+     {
+       tab_title = g_string_new(a_History_get_title(NAV_TOP(dd)));
+     } else {
+       tab_title = g_string_new(_("(Untitled)"));
+     }
+   
+   tab_label_event_box = gtk_event_box_new();
+   tab_label = gtk_label_new(tab_title->str);
+   gtk_widget_show(tab_label);
+   gtk_container_add(GTK_CONTAINER(tab_label_event_box), tab_label);
+   box = gtk_hbox_new(TRUE, 0);
+   gtk_container_set_border_width(GTK_CONTAINER(box), 0);
+   gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(dd->docwin), TRUE, TRUE, 0);
+   if(dd->frameset)
+     gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(dd->frameset), TRUE, TRUE, 0);
+   gtk_widget_show(box);
+   gtk_notebook_append_page(GTK_NOTEBOOK(bw->container), box, tab_label_event_box);
+
+   /* add tooltip with full title. This has to be attached to the event box,
+    * since label widgets are windowless and hence can not receive events */
+   gtk_tooltips_set_tip(GTK_TOOLTIPS(dd->bw->tooltips),
+                        GTK_WIDGET(tab_label_event_box),
+                        tab_title->str,
+                        tab_title->str);
+
+   /* make sure the tab labels adjust their size according to available space */
+   gtk_signal_connect_after(GTK_OBJECT(tab_label),
+                            "size_allocate",
+                            GTK_SIGNAL_FUNC(Tab_label_size_request_callback),
+                            (gpointer) dd);
+
+   /* catch button press events for showing menu, etc. This has to be attached
+    * to the event box, since label widgets are windowless and hence can not
+    * receive events */
+   gtk_signal_connect_after(GTK_OBJECT(tab_label_event_box),
+                      "button_press_event",
+                      GTK_SIGNAL_FUNC(Tab_label_button_press_event_callback),
+                      (gpointer) dd);
+
+   g_string_free(tab_title, TRUE);
+   gtk_notebook_query_tab_label_packing(GTK_NOTEBOOK(bw->container), GTK_WIDGET(dd->docwin)->parent, NULL, NULL, pack_type);
+   gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(bw->container), GTK_WIDGET(dd->docwin)->parent, TRUE, TRUE, *pack_type);
+   g_free(pack_type);
+   a_Tab_visibility_update(bw);
+}
+
+
+/*
+ * set tab title
+ * also sets window title if this tab is the current tab
+ */
+void
+a_Tab_title_set(DilloDoc *dd, gchar *title)
+{
+   GtkWidget *tab_label;
+   gchar *title_enc;
+
+   g_return_if_fail (dd != NULL && title != NULL);
+
+   /* set tooltip on tab label container (a GtkEventBox), and queue a resize
+    * for the label itself so the title is redrawn */
+   tab_label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(dd->bw->container),GTK_WIDGET(dd->docwin)->parent);
+   title_enc = a_I18n_DW_CHARSET_from_DILLO_CHARSET(title, -1);
+   gtk_tooltips_set_tip(GTK_TOOLTIPS(dd->bw->tooltips),
+                       GTK_WIDGET(tab_label),
+                       title_enc,
+                       title_enc);
+   g_free(title_enc);
+
+   gtk_widget_queue_resize(GTK_WIDGET(GTK_BIN(tab_label)->child));
+
+   /* if this is the current tab, set window title */
+   if (dd->bw->dd == dd)
+     a_Interface_set_page_title(dd->bw, title);
+}
+
+#endif /* !DISABLE_TABS */
+
+/* vim: set ts=3 sw=3 sts=3 expandtab:*/
diff -pruN dillo-0.8.6/src/tab.h dillo-0.8.6-i18n-misc-20060709/src/tab.h
--- dillo-0.8.6/src/tab.h	1970-01-01 09:00:00.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/tab.h	2006-05-16 01:21:09.000000000 +0900
@@ -0,0 +1,22 @@
+#ifndef __TAB_H__
+#define __TAB_H__
+
+#ifndef DISABLE_TABS
+#include "browser.h"
+
+/* this string is used to calculate the average width of a
+ * character in a GTK_LABEL in the current context.
+ */
+#define D_QUICK_BROWN_FOX "The Quick Brown Fox Jumped Over The Lazy Dog"
+
+GtkContainer *
+a_Tab_browser_new(BrowserWindow *bw);
+void a_Tab_new(BrowserWindow *bw);
+void a_Tab_close(DilloDoc *dd);
+void a_Tab_add(BrowserWindow *bw, DilloDoc *dd);
+void a_Tab_switch(DilloDoc *dd);
+void a_Tab_title_set(DilloDoc *dd, gchar *title);
+void a_Tab_visibility_update(BrowserWindow *bw);
+
+#endif /* !DISABLE_TABS */
+#endif /* __TAB_H__ */
diff -pruN dillo-0.8.6/src/url.c dillo-0.8.6-i18n-misc-20060709/src/url.c
--- dillo-0.8.6/src/url.c	2006-01-03 03:11:47.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/url.c	2006-06-19 01:03:28.000000000 +0900
@@ -70,7 +70,8 @@ gchar *a_Url_str(const DilloUrl *u)
          url->fragment  ? url->fragment : "");
    }
 
-   return url->url_string->str;
+   if(url->url_string) return url->url_string->str;
+   return NULL;
 }
 
 /*
@@ -172,6 +173,8 @@ void a_Url_free(DilloUrl *url)
       g_free((gchar *)url->buffer);
       g_free((gchar *)url->data);
       g_free((gchar *)url->alt);
+      g_free((gchar *)url->target);
+      g_free((gchar *)url->referer);
       g_free(url);
    }
 }
@@ -180,7 +183,7 @@ void a_Url_free(DilloUrl *url)
  * Resolve the URL as RFC2396 suggests.
  */
 static GString *Url_resolve_relative(const gchar *RelStr,
-                                     DilloUrl *BaseUrlPar,
+                                     DilloUrl **BaseUrlPar,
                                      const gchar *BaseStr)
 {
    gchar *p, *s, *e;
@@ -191,9 +194,9 @@ static GString *Url_resolve_relative(con
    /* parse relative URL */
    RelUrl = Url_object_new(RelStr);
 
-   if (BaseUrlPar) {
-      BaseUrl = BaseUrlPar;
-   } else if (RelUrl->scheme == NULL) {
+   if (*BaseUrlPar) {
+      BaseUrl = *BaseUrlPar;
+   } else {
       /* only required when there's no <scheme> in RelStr */
       BaseUrl = Url_object_new(BaseStr);
    }
@@ -302,8 +305,7 @@ static GString *Url_resolve_relative(con
 done:
    g_string_free(Path, TRUE);
    a_Url_free(RelUrl);
-   if (BaseUrl != BaseUrlPar)
-      a_Url_free(BaseUrl);
+   *BaseUrlPar = BaseUrl;
    return SolvedUrl;
 }
 
@@ -323,6 +325,7 @@ done:
  *     flags              = 0
  *     data               = NULL
  *     alt                = NULL
+ *     target             = NULL
  *     ismap_url_len      = 0
  *     scrolling_position = 0
  *  }
@@ -332,7 +335,7 @@ done:
 DilloUrl* a_Url_new(const gchar *url_str, const gchar *base_url,
                     gint flags, gint32 posx, gint32 posy)
 {
-   DilloUrl *url;
+   DilloUrl *url, *BaseUrl = NULL;
    gchar *urlstring, *p, *new_str = NULL;
    GString *SolvedUrl;
    gint n_ic, n_ic_spc;
@@ -368,19 +371,27 @@ DilloUrl* a_Url_new(const gchar *url_str
    }
 
    /* Resolve the URL */
-   SolvedUrl = Url_resolve_relative(urlstring, NULL, base_url);
+   SolvedUrl = Url_resolve_relative(urlstring, &BaseUrl, base_url);
    DEBUG_MSG(2, "SolvedUrl = %s\n", SolvedUrl->str);
-   g_return_val_if_fail (SolvedUrl != NULL, NULL);
+   if (!SolvedUrl) {
+       a_Url_free(BaseUrl);
+       return NULL;
+   }
 
    /* Fill url data */
    url = Url_object_new(SolvedUrl->str);
+   if (BaseUrl && !URL_STRCAMP_I_EQ(URL_HOST_(url), URL_HOST_(BaseUrl))) {
+      flags |= URL_OnOtherHost;
+   }
    url->url_string = SolvedUrl;
    url->flags = flags;
    url->scrolling_position_x = posx;
    url->scrolling_position_y = posy;
    url->illegal_chars = n_ic;
    url->illegal_chars_spc = n_ic_spc;
-
+   url->referer = NULL;//g_strdup(base_url);
+   a_Url_free(BaseUrl);
+ 
    g_free(new_str);
    return url;
 }
@@ -401,11 +412,13 @@ DilloUrl* a_Url_dup(const DilloUrl *ori)
    url->flags                = ori->flags;
    url->data                 = g_strdup(ori->data);
    url->alt                  = g_strdup(ori->alt);
+   url->target               = g_strdup(ori->target);
    url->ismap_url_len        = ori->ismap_url_len;
    url->scrolling_position_x = ori->scrolling_position_x;
    url->scrolling_position_y = ori->scrolling_position_y;
    url->illegal_chars        = ori->illegal_chars;
    url->illegal_chars_spc    = ori->illegal_chars_spc;
+   url->referer              = g_strdup(ori->referer);
 
    return url;
 }
@@ -465,6 +478,18 @@ void a_Url_set_alt(DilloUrl *u, const gc
 }
 
 /*
+ * Set DilloUrl target (used to target link at specific frame or window)
+ */
+void a_Url_set_target(DilloUrl *u, const gchar *target)
+{
+   if (u) {
+      if (u->target)
+ 	     g_free((gchar *)u->target);
+      u->target = g_strdup(target);
+   }
+}
+
+/*
  * Set DilloUrl scrolling position
  */
 void a_Url_set_pos(DilloUrl *u, gint32 posx, gint32 posy)
@@ -476,6 +501,17 @@ void a_Url_set_pos(DilloUrl *u, gint32 p
 }
 
 /*
+ * Set DilloUrl referer URL
+ */
+void a_Url_set_referer(DilloUrl *u, DilloUrl *ref)
+{
+   if (u && ref) {
+      g_free((gchar *)u->referer);
+      u->referer = g_strdup(a_Url_str(ref));
+   }
+}
+
+/*
  * Set DilloUrl ismap coordinates
  * (this is optimized for not hogging the CPU)
  */
@@ -612,3 +648,4 @@ gchar *a_Url_string_strip_delimiters(con
    }
    return new_str;
 }
+
diff -pruN dillo-0.8.6/src/url.h dillo-0.8.6-i18n-misc-20060709/src/url.h
--- dillo-0.8.6/src/url.h	2006-01-03 03:39:40.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/url.h	2006-05-16 01:21:09.000000000 +0900
@@ -41,26 +41,33 @@
 #define URL_ReloadIncomplete    (1 << 9)
 #define URL_SpamSafe            (1 << 10)
 
+#define URL_MustCache           (1 << 11)
+#define URL_IsImage             (1 << 12)
+#define URL_OnOtherHost         (1 << 13)
+
+
 /*
  * Access methods to fields inside DilloURL.
  * (non '_'-ended macros MUST use these for initialization sake)
  */
 /* these MAY return NULL: */
-#define URL_SCHEME_(u)              u->scheme
-#define URL_AUTHORITY_(u)           u->authority
-#define URL_PATH_(u)                u->path
-#define URL_QUERY_(u)               u->query
-#define URL_FRAGMENT_(u)            u->fragment
-#define URL_HOST_(u)                a_Url_hostname(u)
-#define URL_DATA_(u)                u->data
-#define URL_ALT_(u)                 u->alt
-#define URL_STR_(u)                 a_Url_str(u)
+#define URL_SCHEME_(u)         u->scheme
+#define URL_AUTHORITY_(u)      u->authority
+#define URL_PATH_(u)           u->path
+#define URL_QUERY_(u)          u->query
+#define URL_FRAGMENT_(u)       u->fragment
+#define URL_HOST_(u)           a_Url_hostname(u)
+#define URL_DATA_(u)           u->data
+#define URL_ALT_(u)            u->alt
+#define URL_STR_(u)            a_Url_str(u)
+#define URL_REFERER_(u)    u->referer
+#define URL_TARGET_(u)     u->target
 /* these return an integer */
-#define URL_PORT_(u)                (URL_HOST(u) ? u->port : u->port)
-#define URL_FLAGS_(u)               u->flags
-#define URL_POSX_(u)                u->scrolling_position_x
-#define URL_POSY_(u)                u->scrolling_position_y
-#define URL_ILLEGAL_CHARS_(u)       url->illegal_chars
+#define URL_PORT_(u)           (URL_HOST(u) ? u->port : u->port)
+#define URL_FLAGS_(u)          u->flags
+#define URL_POSX_(u)           u->scrolling_position_x
+#define URL_POSY_(u)           u->scrolling_position_y
+#define URL_ILLEGAL_CHARS_(u)  url->illegal_chars
 #define URL_ILLEGAL_CHARS_SPC_(u)   url->illegal_chars_spc
 
 /*
@@ -68,22 +75,24 @@
  * When the "empty" and "undefined" concepts of RFC-2396 are irrelevant to
  * the caller, and a string is required, use these methods instead:
  */
-#define NPTR2STR(p)                 ((p) ? (p) : "")
-#define URL_SCHEME(u)               NPTR2STR(URL_SCHEME_(u))
-#define URL_AUTHORITY(u)            NPTR2STR(URL_AUTHORITY_(u))
-#define URL_PATH(u)                 NPTR2STR(URL_PATH_(u))
-#define URL_QUERY(u)                NPTR2STR(URL_QUERY_(u))
-#define URL_FRAGMENT(u)             NPTR2STR(URL_FRAGMENT_(u))
-#define URL_HOST(u)                 NPTR2STR(URL_HOST_(u))
-#define URL_DATA(u)                 NPTR2STR(URL_DATA_(u))
-#define URL_ALT(u)                  NPTR2STR(URL_ALT_(u))
-#define URL_STR(u)                  NPTR2STR(URL_STR_(u))
-#define URL_PORT(u)                 URL_PORT_(u)
-#define URL_FLAGS(u)                URL_FLAGS_(u)
-#define URL_POSX(u)                 URL_POSX_(u)
-#define URL_POSY(u)                 URL_POSY_(u)
-#define URL_ILLEGAL_CHARS(u)        URL_ILLEGAL_CHARS_(u)
+#define NPTR2STR(p)           ((p) ? (p) : "")
+#define URL_SCHEME(u)         NPTR2STR(URL_SCHEME_(u))
+#define URL_AUTHORITY(u)      NPTR2STR(URL_AUTHORITY_(u))
+#define URL_PATH(u)           NPTR2STR(URL_PATH_(u))
+#define URL_QUERY(u)          NPTR2STR(URL_QUERY_(u))
+#define URL_FRAGMENT(u)       NPTR2STR(URL_FRAGMENT_(u))
+#define URL_HOST(u)           NPTR2STR(URL_HOST_(u))
+#define URL_DATA(u)           NPTR2STR(URL_DATA_(u))
+#define URL_ALT(u)            NPTR2STR(URL_ALT_(u))
+#define URL_STR(u)            NPTR2STR(URL_STR_(u))
+#define URL_PORT(u)           URL_PORT_(u)
+#define URL_FLAGS(u)          URL_FLAGS_(u)
+#define URL_POSX(u)           URL_POSX_(u)
+#define URL_POSY(u)           URL_POSY_(u)
+#define URL_ILLEGAL_CHARS(u)  URL_ILLEGAL_CHARS_(u)
 #define URL_ILLEGAL_CHARS_SPC(u)    URL_ILLEGAL_CHARS_SPC_(u)
+#define URL_REFERER(u)     NPTR2STR(URL_REFERER_(u))
+#define URL_TARGET(u)      NPTR2STR(URL_TARGET_(u))
 
 
 
@@ -117,11 +126,13 @@ struct _DilloUrl {
    gint flags;
    const gchar *data;              /* POST */
    const gchar *alt;               /* "alt" text (used by image maps) */
+   const gchar *target;            /* target frame/window */
    gint ismap_url_len;             /* Used by server side image maps */
    gint32 scrolling_position_x, scrolling_position_y;
                                    /* remember position of visited urls */
    gint illegal_chars;             /* number of illegal chars */
    gint illegal_chars_spc;         /* number of illegal space chars */
+   const gchar *referer;           /* The URL that refered to this one */
 };
 
 
@@ -135,7 +146,9 @@ gint a_Url_cmp(const DilloUrl *A, const 
 void a_Url_set_flags(DilloUrl *u, gint flags);
 void a_Url_set_data(DilloUrl *u, gchar *data);
 void a_Url_set_alt(DilloUrl *u, const gchar *alt);
+void a_Url_set_target(DilloUrl *u, const gchar *target);
 void a_Url_set_pos(DilloUrl *u, gint32 posx, gint32 posy);
+void a_Url_set_referer(DilloUrl *u, DilloUrl *ref);
 void a_Url_set_ismap_coords(DilloUrl *u, gchar *coord_str);
 gchar *a_Url_decode_hex_str(const gchar *str);
 gchar *a_Url_encode_hex_str(const gchar *str);
diff -pruN dillo-0.8.6/src/web.c dillo-0.8.6-i18n-misc-20060709/src/web.c
--- dillo-0.8.6/src/web.c	2005-10-28 01:20:15.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/web.c	2006-05-16 01:21:09.000000000 +0900
@@ -9,15 +9,18 @@
  * (at your option) any later version.
  */
 
+#include <config.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <gtk/gtk.h>
 #include <math.h>      /* for rint */
 
+#include "intl.h"
 #include "msg.h"
 #include "browser.h"
-#include "nav.h"
 #include "interface.h"
+#include "nav.h"
+#include "doc.h"
 #include "IO/IO.h"
 #include "IO/mime.h"
 
@@ -27,7 +30,7 @@
 #include "prefs.h"
 #include "web.h"
 
-#define DEBUG_LEVEL 5
+//#define DEBUG_LEVEL 5
 #include "debug.h"
 
 /*
@@ -45,12 +48,12 @@ gint a_Web_dispatch_by_type (const char 
                              CA_Callback_t *Call, void **Data)
 {
    DwWidget *dw = NULL;
-   DwStyle style_attrs, *style;
-   DwStyleFont font;
+//   DwStyle style_attrs, *style;
+//   DwStyleFont font;
 
    DEBUG_MSG(1, "a_Web_dispatch_by_type\n");
 
-   g_return_val_if_fail(Web->bw != NULL, -1);
+   g_return_val_if_fail(Web->dd != NULL, -1);
 
    if (Web->flags & WEB_RootUrl) {
       /* We have RootUrl! */
@@ -58,46 +61,35 @@ gint a_Web_dispatch_by_type (const char 
       if (dw == NULL)
          return -1;
 
-      /* Set a style for the widget */
-      font.name = prefs.vw_fontname; /* must be defined */
-      font.size = rint(12.0 * prefs.font_factor);
-      font.weight = 400;
-      font.style = DW_STYLE_FONT_STYLE_NORMAL;
-
-      a_Dw_style_init_values (&style_attrs, Web->bw->main_window->window);
-      a_Dw_style_box_set_val (&style_attrs.margin, 5);
-      style_attrs.font = a_Dw_style_font_new (&font);
-      style_attrs.color =
-         a_Dw_style_color_new (prefs.text_color, Web->bw->main_window->window);
-      style_attrs.background_color =
-         a_Dw_style_color_new (prefs.bg_color, Web->bw->main_window->window);
-      style = a_Dw_style_new (&style_attrs, Web->bw->main_window->window);
-      a_Dw_widget_set_style (dw, style);
-      a_Dw_style_unref (style);
+      /* set widget style */
+      a_Dw_widget_set_style(dw, Web->dd->style);
 
       a_Dw_gtk_scrolled_window_set_dw(
-         GTK_DW_SCROLLED_WINDOW(Web->bw->docwin), dw);
+         GTK_DW_SCROLLED_WINDOW(Web->dd->docwin), dw);
 
       if (URL_POSX(Web->url) || URL_POSY(Web->url)) {
         a_Dw_gtk_scrolled_window_set_scrolling_position(
-           GTK_DW_SCROLLED_WINDOW(Web->bw->docwin),
+           GTK_DW_SCROLLED_WINDOW(Web->dd->docwin),
            URL_POSX(Web->url), URL_POSY(Web->url));
       } else {
         gchar *pf = a_Url_decode_hex_str(URL_FRAGMENT_(Web->url));
         a_Dw_gtk_scrolled_window_set_anchor(
-           GTK_DW_SCROLLED_WINDOW(Web->bw->docwin), pf);
+           GTK_DW_SCROLLED_WINDOW(Web->dd->docwin), pf);
         g_free(pf);
       }
 
-      /* Clear the title bar for pages without a <TITLE> tag */
-      a_Interface_set_page_title(Web->bw, "");
-      a_Interface_set_location_text(Web->bw, URL_STR(Web->url));
-      a_Interface_reset_progress_bars(Web->bw);
+     
+      /* Set document title to url, will be replaced by real title
+       * if this page has a <TITLE> tag */
+      a_Doc_title_set(Web->dd, URL_STR(Web->url));
+      /* update progress */
+      a_Doc_progress_update(Web->dd);
+      a_Doc_location_set(Web->dd, URL_STR(Web->url));
       /* Reset the bug meter */
-      a_Interface_bug_meter_update(Web->bw, 0);
+      a_Interface_bug_meter_update(Web->dd->bw, 0);
 
       /* Let the Nav module know... */
-      a_Nav_expect_done(Web->bw);
+      a_Nav_expect_done(Web->dd);
 
    } else {
       /* A non-RootUrl. At this moment we only handle image-children */
@@ -121,7 +113,7 @@ DilloWeb* a_Web_new(const DilloUrl *url)
 
    _MSG(" a_Web_new: ValidWebs ==> %d\n", g_slist_length(ValidWebs));
    web->url = a_Url_dup(url);
-   web->bw = NULL;
+   web->dd = NULL;
    web->flags = 0;
    web->Image = NULL;
    web->stream  = NULL;
diff -pruN dillo-0.8.6/src/web.h dillo-0.8.6-i18n-misc-20060709/src/web.h
--- dillo-0.8.6/src/web.h	2005-10-28 01:20:15.000000000 +0900
+++ dillo-0.8.6-i18n-misc-20060709/src/web.h	2006-05-16 01:21:09.000000000 +0900
@@ -23,7 +23,7 @@ typedef struct _DilloWeb DilloWeb;
 
 struct _DilloWeb {
   DilloUrl *url;              /* Requested URL */
-  BrowserWindow *bw;          /* The requesting browser window [reference] */
+  DilloDoc *dd;               /* The requesting browser document [reference] */
   gint flags;                 /* Additional info */
 
   DilloImage *Image;          /* For image urls [reference] */