diff options
author | Peter Gavin <pete@gentoo.org> | 2001-04-15 18:57:14 +0000 |
---|---|---|
committer | Peter Gavin <pete@gentoo.org> | 2001-04-15 18:57:14 +0000 |
commit | 77babd7d9bdfc2a0bf8974604f1458cae049863c (patch) | |
tree | 776921f43e58da1dbf36c8c0b559e87137ece577 /gnome-extra | |
parent | *** empty log message *** (diff) | |
download | gentoo-2-77babd7d9bdfc2a0bf8974604f1458cae049863c.tar.gz gentoo-2-77babd7d9bdfc2a0bf8974604f1458cae049863c.tar.bz2 gentoo-2-77babd7d9bdfc2a0bf8974604f1458cae049863c.zip |
more gnome updates
Diffstat (limited to 'gnome-extra')
-rw-r--r-- | gnome-extra/gtkhtml/files/digest-gtkhtml-0.8.3 | 1 | ||||
-rw-r--r-- | gnome-extra/gtkhtml/files/gtkhtml-0.8.3-gentoo.diff | 5092 | ||||
-rw-r--r-- | gnome-extra/gtkhtml/gtkhtml-0.8.3.ebuild | 74 |
3 files changed, 5167 insertions, 0 deletions
diff --git a/gnome-extra/gtkhtml/files/digest-gtkhtml-0.8.3 b/gnome-extra/gtkhtml/files/digest-gtkhtml-0.8.3 new file mode 100644 index 000000000000..8cd6570b4e8c --- /dev/null +++ b/gnome-extra/gtkhtml/files/digest-gtkhtml-0.8.3 @@ -0,0 +1 @@ +MD5 64514460001885497198b7e389c33077 gtkhtml-0.8.3.tar.gz diff --git a/gnome-extra/gtkhtml/files/gtkhtml-0.8.3-gentoo.diff b/gnome-extra/gtkhtml/files/gtkhtml-0.8.3-gentoo.diff new file mode 100644 index 000000000000..1094dcf6c5ce --- /dev/null +++ b/gnome-extra/gtkhtml/files/gtkhtml-0.8.3-gentoo.diff @@ -0,0 +1,5092 @@ +diff -urP gtkhtml-0.8.3.orig/intl/ChangeLog gtkhtml-0.8.3/intl/ChangeLog +--- gtkhtml-0.8.3.orig/intl/ChangeLog Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/ChangeLog Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,1086 @@ ++1998-04-29 Ulrich Drepper <drepper@cygnus.com> ++ ++ * intl/localealias.c (read_alias_file): Use unsigned char for ++ local variables. Remove unused variable tp. ++ * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char * ++ for type of codeset. For loosing Solaris systems. ++ * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset. ++ * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable ++ len if not needed. ++ Patches by Jim Meyering. ++ ++1998-04-28 Ulrich Drepper <drepper@cygnus.com> ++ ++ * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if ++ mmap is not supported. ++ ++ * hash-string.h: Don't include <values.h>. ++ ++1998-04-27 Ulrich Drepper <drepper@cygnus.com> ++ ++ * textdomain.c: Use strdup is available. ++ ++ * localealias.c: Define HAVE_MEMPCPY so that we can use this ++ function. Define and use semapahores to protect modfication of ++ global objects when compiling for glibc. Add code to allow ++ freeing alias table. ++ ++ * l10nflist.c: Don't assume stpcpy not being a macro. ++ ++ * gettextP.h: Define internal_function macri if not already done. ++ Use glibc byte-swap macros instead of defining SWAP when compiled ++ for glibc. ++ (struct loaded_domain): Add elements to allow unloading. ++ ++ * Makefile.in (distclean): Don't remove libintl.h here. ++ ++ * bindtextdomain.c: Carry over changes from glibc. Use strdup if ++ available. ++ ++ * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal ++ functions. Add memory freeing code for glibc. ++ ++ * dgettext.c: Update copyright. ++ ++ * explodename.c: Include stdlib.h and string.h only if they exist. ++ Use strings.h eventually. ++ ++ * finddomain.c: Mark internal functions. Use strdup if available. ++ Add memory freeing code for glibc. ++ ++1997-10-10 20:00 Ulrich Drepper <drepper@cygnus.com> ++ ++ * libgettext.h: Fix dummy textdomain and bindtextdomain macros. ++ They should return reasonable values. ++ Reported by Tom Tromey <tromey@cygnus.com>. ++ ++1997-09-16 03:33 Ulrich Drepper <drepper@cygnus.com> ++ ++ * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined. ++ * intlh.inst.in: Likewise. ++ Reported by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>. ++ ++ * libintl.glibc: Update from current glibc version. ++ ++1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com> ++ ++ * intlh.inst.in: Reformat copyright. ++ ++1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com> ++ ++ * dcgettext.c (DCGETTEXT): Remove wrong comment. ++ ++1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com> ++ ++ * Makefile.in (install-data): Don't change directory to install. ++ ++1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com> ++ ++ * cat-compat.c: Fix copyright. ++ ++ * localealias.c: Don't define strchr unless !HAVE_STRCHR. ++ ++ * loadmsgcat.c: Update copyright. Fix typos. ++ ++ * l10nflist.c: Don't define strchr unless !HAVE_STRCHR. ++ (_nl_make_l10nflist): Handle sponsor and revision correctly. ++ ++ * gettext.c: Update copyright. ++ * gettext.h: Likewise. ++ * hash-string.h: Likewise. ++ ++ * finddomain.c: Remoave dead code. Define strchr only if ++ !HAVE_STRCHR. ++ ++ * explodename.c: Include <sys/types.h>. ++ ++ * explodename.c: Reformat copyright text. ++ (_nl_explode_name): Fix typo. ++ ++ * dcgettext.c: Define and use __set_errno. ++ (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is ++ not defined. ++ ++ * bindtextdom.c: Pretty printing. ++ ++1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com> ++ ++ * dcgettext.c (guess_category_value): Don't depend on ++ HAVE_LC_MESSAGES. We don't need the macro here. ++ Patch by Bruno Haible <haible@ilog.fr>. ++ ++ * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL ++ macro. Instead use HAVE_LOCALE_NULL and define it when using ++ glibc, as in dcgettext.c. ++ Patch by Bruno Haible <haible@ilog.fr>. ++ ++ * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois ++ Pinard. ++ ++Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com> ++ ++ * Makefile.in: Implement handling of libtool. ++ ++ * gettextP.h: Change data structures for use of generic lowlevel ++ i18n file handling. ++ ++Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * textdomain.c: Put parentheses around arguments of memcpy macro ++ definition. ++ * localealias.c: Likewise. ++ * l10nflist.c: Likewise. ++ * finddomain.c: Likewise. ++ * bindtextdom.c: Likewise. ++ Reported by Thomas Esken. ++ ++Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * textdomain.c: Move definition of `memcpy` macro to right ++ position. ++ ++Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using ++ bcopy if not already defined. Reported by Thomas Esken. ++ * bindtextdom.c: Likewise. ++ * l10nflist.c: Likewise. ++ * localealias.c: Likewise. ++ * textdomain.c: Likewise. ++ ++Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * Makefile.in (libdir): Change to use exec_prefix instead of ++ prefix. Reported by Knut-HåvardAksnes <etokna@eto.ericsson.se>. ++ ++Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * l10nflist.c (_nl_normalize_codeset): We convert to lower case, ++ so don't prepend uppercase `ISO' for only numeric arg. ++ ++Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after ++ definition of _GNU_SOURCE. Patch by Roland McGrath. ++ ++ * Makefile.in (uninstall): Fix another bug with `for' loop and ++ empty arguments. Patch by Jim Meyering. Correct name os ++ uninstalled files: no intl- prefix anymore. ++ ++ * Makefile.in (install-data): Again work around shells which ++ cannot handle mpty for list. Reported by Jim Meyering. ++ ++Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * Makefile.in (install): Split goal. Now depend on install-exec ++ and install-data. ++ (install-exec, install-data): New goals. Created from former ++ install goal. ++ Reported by Karl Berry. ++ ++Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * Makefile.in (MKINSTALLDIRS): New variable. Path to ++ mkinstalldirs script. ++ (install): use MKINSTALLDIRS variable or if the script is not present ++ try to find it in the $top_scrdir). ++ ++Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * l10nflist.c: Linux libc *partly* includes the argz_* functions. ++ Grr. Work around by renaming the static version and use macros ++ for renaming. ++ ++Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * l10nflist.c: Correct presence test macros of __argz_* functions. ++ ++ * l10nflist.c: Include <argz.h> based on test of it instead when ++ __argz_* functions are available. ++ Reported by Andreas Schwab. ++ ++Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * explodename.c, l10nflist.c: Define NULL for dumb systems. ++ ++Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * intlh.inst.in, libgettext.h (dcgettext): Rename local variable ++ result to __result to prevent name clash. ++ ++ * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to ++ get prototype for stpcpy and strcasecmp. ++ ++ * intlh.inst.in, libgettext.h: Move declaration of ++ `_nl_msg_cat_cntr' outside __extension__ block to prevent warning ++ from gcc's -Wnested-extern option. ++ ++Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * Makefile.in (install): Remove comment. ++ ++Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * Makefile.in (install): Work around for another Buglix stupidity. ++ Always use an `else' close for `if's. Reported by Nelson Beebe. ++ ++ * Makefile.in (intlh.inst): Correct typo in phony rule. ++ Reported by Nelson Beebe. ++ ++Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * dcgettext.c (read_alias_file): Rename variable alloca_list to ++ block_list as the macro calls assume. ++ Patch by Eric Backus. ++ ++ * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using ++ malloc. ++ (read_alias_file): Rename varriabe alloca_list to block_list as the ++ macro calls assume. ++ Patch by Eric Backus. ++ ++ * l10nflist.c: Correct conditional for <argz.h> inclusion. ++ Reported by Roland McGrath. ++ ++ * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not ++ all-@USE_NLS@. ++ ++ * Makefile.in (install): intlh.inst comes from local dir, not ++ $(srcdir). ++ ++ * Makefile.in (intlh.inst): Special handling of this goal. If ++ used in gettext, this is really a rul to construct this file. If ++ used in any other package it is defined as a .PHONY rule with ++ empty body. ++ ++ * finddomain.c: Extract locale file information handling into ++ l10nfile.c. Rename local stpcpy__ function to stpcpy. ++ ++ * dcgettext.c (stpcpy): Add local definition. ++ ++ * l10nflist.c: Solve some portability problems. Patches partly by ++ Thomas Esken. Add local definition of stpcpy. ++ ++Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * intlh.inst.in: Don't depend including <locale.h> on ++ HAVE_LOCALE_H. Instead configure must rewrite this fiile ++ depending on the result of the configure run. ++ ++ * Makefile.in (install): libintl.inst is now called intlh.inst. ++ Add rules for updating intlh.inst from intlh.inst.in. ++ ++ * libintl.inst: Renamed to intlh.inst.in. ++ ++ * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1 ++ because gcc has __buitlin_alloca. ++ Reported by Roland McGrath. ++ ++Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * Makefile.in (installcheck): New goal to fulfill needs of ++ automake's distcheck. ++ ++ * Makefile.in (install): Reorder commands so that VERSION is ++ found. ++ ++ * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in ++ @datadir@/gettext. ++ (COMSRCS): Add l10nfile.c. ++ (OBJECTS): Add l10nfile.o. ++ (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common). ++ (DISTFILE.gettext): Remove $(DISTFILES.common). ++ (all-gettext): Remove goal. ++ (install): If $(PACKAGE) = gettext install, otherwose do nothing. No ++ package but gettext itself should install libintl.h + headers. ++ (dist): Extend goal to work for gettext, too. ++ (dist-gettext): Remove goal. ++ ++ * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc. ++ ++Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * loadmsgcat.c (_nl_load_domain): Parameter is now comes from ++ find_l10nfile. ++ ++Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com> ++ ++ * l10nflist.c (__argz_next): Add definition. ++ ++ * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca ++ code. Use new l10nfile handling. ++ ++ * localealias.c [!HAVE_ALLOCA]: Add code for handling missing ++ alloca code. ++ ++ * l10nflist.c: Initial revision. ++ ++Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (all-gettext): New goal. Same as all-yes. ++ ++Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de> ++ ++ * Makefile.in (gettextsrcdir): Define using @datadir@. ++ ++Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c: Include <ctype.h>. Reported by Roland McGrath. ++ ++Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing ++ with external declaration. ++ ++Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (all-no): Rename from all_no. ++ ++Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware> ++ ++ * gettextP.h [loaded_domain]: Array `successor' must now contain up ++ to 63 elements (because of codeset name normalization). ++ ++ * finddomain.c: Implement codeset name normalization. ++ ++Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (all): Define to `all-@USE_NLS@'. ++ (all-yes, all_no): New goals. `all-no' is noop, `all-yes' ++ is former all. ++ ++Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com> ++ ++ * localealias.c (alias_compare): Increment string pointers in loop ++ of strcasecmp replacement. ++ ++Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (install-src): Who commented this goal out ? :-) ++ ++Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware> ++ ++ * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls ++ should not effect it because a missing catalog is no error. ++ Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>. ++ ++Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (Makefile): Explicitly use $(SHELL) for running ++ shell scripts. ++ ++Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> ++ ++ * Makefile.in (install-src): Only install library and header when ++ we use the own implementation. Don't do it when using the ++ system's gettext or catgets functions. ++ ++ * dcgettext.c (find_msg): Must not swap domain->hash_size here. ++ ++Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware> ++ ++ * localealias.c, libintl.inst, libgettext.h, hash-string.h, ++ gettextP.h, finddomain.c, dcgettext.c, cat-compat.c: ++ Use PARAMS instead of __P. Suggested by Roland McGrath. ++ ++Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu> ++ ++ * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if ++ !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty. ++ ++Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (install-src): ++ Install libintl.inst instead of libintl.h.install. ++ ++Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu> ++ ++ * cat-compat.c (textdomain): ++ Reverse order in which files are tried you load. First ++ try local file, when this failed absolute path. ++ ++Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu> ++ ++ * cat-compat.c (bindtextdomain): Add missing { }. ++ ++Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware> ++ ++ * libintl.inst: Add missing __P definition. Reported by Nelson Beebe. ++ ++ * Makefile.in: ++ Add dummy `all' and `dvi' goals. Reported by Tom Tromey. ++ ++Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca> ++ ++ * hash-string.h: Capitalize arguments of macros. ++ ++Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (DISTFILES): Prevent files names longer than 13 ++ characters. libintl.h.glibc->libintl.glibc, ++ libintl.h.install->libintl.inst. Reported by Joshua R. Poulson. ++ ++Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com> ++ ++ * dcgettext.c: Fix bug in preprocessor conditionals. ++ ++Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu> ++ ++ * libgettext.h: Solaris cc does not understand ++ #if !SYMBOL1 && !SYMBOL2. Sad but true. ++ ++Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware> ++ ++ * hash-string.h (hash_string): ++ Fix for machine with >32 bit `unsigned long's. ++ ++ * dcgettext.c (DCGETTEXT): ++ Fix horrible bug in loop for alternative translation. ++ ++Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware> ++ ++ * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed: ++ Some further simplifications in message number generation. ++ ++Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware> ++ ++ * libintl.h.glibc: Use __const instead of const in prototypes. ++ ++ * Makefile.in (install-src): ++ Install libintl.h.install instead of libintl.h. This ++ is a stripped-down version. Suggested by Peter Miller. ++ ++ * libintl.h.install, libintl.h.glibc: Initial revision. ++ ++ * localealias.c (_nl_expand_alias, read_alias_file): ++ Protect prototypes in type casts by __P. ++ ++Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware> ++ ++ * hash-string.h: Correct prototype for hash_string. ++ ++Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware> ++ ++ * hash-string.h (hash_string): Add prototype. ++ ++ * gettextP.h: Fix copyright. ++ (SWAP): Add prototype. ++ ++Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware> ++ ++ * localealias.c (read_alias_file): Forgot sizeof. ++ Avoid calling *printf function. This introduces a big overhead. ++ Patch by Roland McGrath. ++ ++Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy. ++ ++ * finddomain.c (stpcpy): ++ Define substitution function local. The macro was to flaky. ++ ++ * cat-compat.c: Fix typo. ++ ++ * xopen-msg.sed, linux-msg.sed: ++ While bringing message number to right place only accept digits. ++ ++ * linux-msg.sed, xopen-msg.sed: Now that the counter does not have ++ leading 0s we don't need to remove them. Reported by Marcus ++ Daniels. ++ ++ * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in ++ dependency. Reported by Marcus Daniels. ++ ++ * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement. ++ Generally cleanup using #if instead of #ifndef. ++ ++ * Makefile.in: Correct typos in comment. By Franc,ois Pinard. ++ ++Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (install-src): Don't install libintl.h and libintl.a ++ if we use an available gettext implementation. ++ ++Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware> ++ ++ * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported ++ by Franc,ois Pinard. ++ ++ * libgettext.h: Use #if instead of #ifdef/#ifndef. ++ ++ * finddomain.c: ++ Comments describing what has to be done should start with FIXME. ++ ++Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning. ++ DISTFILES.common names the files common to both dist goals. ++ DISTFILES.gettext are the files only distributed in GNU gettext. ++ ++Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware> ++ ++ * dcgettext.c (DCGETTEXT): Correct searching in derived locales. ++ This was necessary since a change in _nl_find_msg several weeks ++ ago. I really don't know this is still not fixed. ++ ++Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware> ++ ++ * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This ++ might mark a special condition. ++ ++ * finddomain.c (make_entry_rec): Don't make illegal entry as decided. ++ ++ * Makefile.in (dist): Suppress error message when ln failed. ++ Get files from $(srcdir) explicitly. ++ ++ * libgettext.h (gettext_const): Rename to gettext_noop. ++ ++Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c (make_entry_rec): ++ Protect against wrong locale names by testing mask. ++ ++ * libgettext.h (gettext_const): Add macro definition. ++ Capitalize macro arguments. ++ ++Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c (_nl_find_domain): ++ Test for pointer != NULL before accessing value. ++ Reported by Tom Tromey. ++ ++ * gettext.c (NULL): ++ Define as (void*)0 instad of 0. Reported by Franc,ois Pinard. ++ ++Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware> ++ ++ * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering. ++ ++Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware> ++ ++ * libgettext.h: Disable dcgettext optimization for Solaris 2.3. ++ ++ * localealias.c (alias_compare): ++ Peter Miller reported that tolower in some systems is ++ even dumber than I thought. Protect call by `isupper'. ++ ++Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (libdir, includedir): New variables. ++ (install-src): Install libintl.a and libintl.h in correct dirs. ++ ++Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c. ++ ++ * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques. ++ ++ * localealias.c: ++ Fix typo and superflous test. Reported by Christian von Roques. ++ ++Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c (_nl_find_domain): ++ Correct some remainder from the pre-CEN syntax. Now ++ we don't have a constant number of successors anymore. ++ ++Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (DISTFILES): Add libintl.h.glibc. ++ ++ * Makefile.in (dist-libc): Add goal for packing sources for glibc. ++ (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc. ++ ++ * loadmsgcat.c: Forget to continue #if line. ++ ++ * localealias.c: ++ [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name ++ space clean. ++ ++ * dcgettext.c, finddomain.c: Better comment to last change. ++ ++ * loadmsgcat.c: ++ [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to ++ __fstat, __open, __close, __read, __mmap, and __munmap resp ++ to keep ANSI C name space clean. ++ ++ * finddomain.c: ++ [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean. ++ ++ * dcgettext.c: ++ [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to ++ keep ANSI C name space clean. ++ ++ * libgettext.h: ++ Include sys/types.h for those old SysV systems out there. ++ Reported by Francesco Potorti`. ++ ++ * loadmsgcat.c (use_mmap): Define if compiled for glibc. ++ ++ * bindtextdom.c: Include all those standard headers ++ unconditionally if _LIBC is defined. ++ ++ * finddomain.c: Fix 2 times defiend -> defined. ++ ++ * textdomain.c: Include libintl.h instead of libgettext.h when ++ compiling for glibc. Include all those standard headers ++ unconditionally if _LIBC is defined. ++ ++ * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc. ++ ++ * gettext.c: ++ Include libintl.h instead of libgettext.h when compiling for glibc. ++ Get NULL from stddef.h if we compile for glibc. ++ ++ * finddomain.c: Include libintl.h instead of libgettext.h when ++ compiling for glibc. Include all those standard headers ++ unconditionally if _LIBC is defined. ++ ++ * dcgettext.c: Include all those standard headers unconditionally ++ if _LIBC is defined. ++ ++ * dgettext.c: If compiled in glibc include libintl.h instead of ++ libgettext.h. ++ (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc. ++ ++ * dcgettext.c: If compiled in glibc include libintl.h instead of ++ libgettext.h. ++ (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc. ++ ++ * bindtextdom.c: ++ If compiled in glibc include libintl.h instead of libgettext.h. ++ ++Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware> ++ ++ * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0. ++ Reported by Marcus Daniels. ++ ++ * cat-compat.c (bindtextdomain): ++ String used in putenv must not be recycled. ++ Reported by Marcus Daniels. ++ ++ * libgettext.h (__USE_GNU_GETTEXT): ++ Additional symbol to signal that we use GNU gettext ++ library. ++ ++ * cat-compat.c (bindtextdomain): ++ Fix bug with the strange stpcpy replacement. ++ Reported by Nelson Beebe. ++ ++Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware> ++ ++ * cat-compat.c: Include <string.h> for stpcpy prototype. ++ ++ * localealias.c (read_alias_file): ++ While expand strdup code temporary variable `cp' hided ++ higher level variable with same name. Rename to `tp'. ++ ++ * textdomain.c (textdomain): ++ Avoid warning by using temporary variable in strdup code. ++ ++ * finddomain.c (_nl_find_domain): Remove unused variable `application'. ++ ++Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware> ++ ++ * localealias.c (alias_compare): ++ Use strcasecmp() only if available. Else use ++ implementation in place. ++ ++ * intl-compat.c: ++ Wrapper functions now call *__ functions instead of __*. ++ ++ * libgettext.h: Declare prototypes for *__ functions instead for __*. ++ ++ * cat-compat.c, loadmsgcat.c: ++ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part ++ of the standard libc and so prevent libintl.a from being used ++ standalone. ++ ++ * bindtextdom.c: ++ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part ++ of the standard libc and so prevent libintl.a from being used ++ standalone. ++ Rename to bindtextdomain__ if not used in GNU C Library. ++ ++ * dgettext.c: ++ Rename function to dgettext__ if not used in GNU C Library. ++ ++ * gettext.c: ++ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part ++ of the standard libc and so prevent libintl.a from being used ++ standalone. ++ Functions now called gettext__ if not used in GNU C Library. ++ ++ * dcgettext.c, localealias.c, textdomain.c, finddomain.c: ++ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part ++ of the standard libc and so prevent libintl.a from being used ++ standalone. ++ ++Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c: Correct some bugs in handling of CEN standard ++ locale definitions. ++ ++Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c: Implement CEN syntax. ++ ++ * gettextP.h (loaded_domain): Extend number of successors to 31. ++ ++Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (aliaspath): Remove path to X11 locale dir. ++ ++ * Makefile.in: Make install-src depend on install. This helps ++ gettext to install the sources and other packages can use the ++ install goal. ++ ++Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (uninstall): Remove stuff installed by install-src. ++ ++Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware> ++ ++ * VERSION.in: Initial revision. ++ ++ * Makefile.in (DISTFILES): ++ Add VERSION file. This is not necessary for gettext, but ++ for other packages using this library. ++ ++Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware> ++ ++ * gettextP.h (_nl_find_domain): ++ New prototype after changing search strategy. ++ ++ * finddomain.c (_nl_find_domain): ++ We now try only to find a specified catalog. Fall back to other ++ catalogs listed in the locale list is now done in __dcgettext. ++ ++ * dcgettext.c (__dcgettext): ++ Now we provide message fall back even to different languages. ++ I.e. if a message is not available in one language all the other ++ in the locale list a tried. Formerly fall back was only possible ++ within one language. Implemented by moving one loop from ++ _nl_find_domain to here. ++ ++Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (gettextsrcdir): ++ Directory where source of GNU gettext library are made ++ available. ++ (INSTALL, INSTALL_DATA): Programs used for installing sources. ++ (gettext-src): New. Rule to install GNU gettext sources for use in ++ gettextize shell script. ++ ++Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware> ++ ++ * loadmsgcat.c (_nl_load_domain): ++ Use mmap for loading only when munmap function is ++ also available. ++ ++ * Makefile.in (install): Depend on `all' goal. ++ ++Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware> ++ ++ * localealias.c (read_alias_file): ++ Do not overwrite '\n' when terminating alias value string. ++ ++ * localealias.c (read_alias_file): ++ Handle long lines. Ignore the rest not fitting in ++ the buffer after the initial `fgets' call. ++ ++Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware> ++ ++ * gettextP.h (_nl_load_domain): ++ Add prototype, replacing prototype for _nl_load_msg_cat. ++ ++ * finddomain.c (_nl_find_domain): ++ Remove unneeded variable filename and filename_len. ++ (expand_alias): Remove prototype because functions does not ++ exist anymore. ++ ++ * localealias.c (read_alias_file): ++ Change type of fname_len parameter to int. ++ (xmalloc): Add prototype. ++ ++ * loadmsgcat.c: Better prototypes for xmalloc. ++ ++Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c (_nl_find_domain): ++ Allow alias name to be constructed from the four components. ++ ++ * Makefile.in (aliaspath): New variable. Set to preliminary value. ++ (SOURCES): Add localealias.c. ++ (OBJECTS): Add localealias.o. ++ ++ * gettextP.h: Add prototype for _nl_expand_alias. ++ ++ * finddomain.c: Aliasing handled in intl/localealias.c. ++ ++ * localealias.c: Aliasing for locale names. ++ ++ * bindtextdom.c: Better prototypes for xmalloc and xstrdup. ++ ++Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (DISTFILES): gettext.perl is now found in misc/. ++ ++ * cat-compat.c (bindtextdomain): ++ Correct implementation. dirname parameter was not used. ++ Reported by Marcus Daniels. ++ ++ * gettextP.h (loaded_domain): ++ New fields `successor' and `decided' for oo, lazy ++ message handling implementation. ++ ++ * dcgettext.c: ++ Adopt for oo, lazy message handliing. ++ Now we can inherit translations from less specific locales. ++ (find_msg): New function. ++ ++ * loadmsgcat.c, finddomain.c: ++ Complete rewrite. Implement oo, lazy message handling :-). ++ We now have an additional environment variable `LANGUAGE' with ++ a higher priority than LC_ALL for the LC_MESSAGE locale. ++ Here we can set a colon separated list of specifications each ++ of the form `language[_territory[.codeset]][@modifier]'. ++ ++Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c (unistd.h): ++ Include to get _PC_PATH_MAX defined on system having it. ++ ++Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware> ++ ++ * finddomain.c (stpcpy): Include prototype. ++ ++ * Makefile.in (dist): Remove `copying instead' message. ++ ++Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (ID, TAGS): Do not use $^. ++ ++Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (TAGS, ID): Use $^ as command argument. ++ (TAGS): Give etags -o option t write to current directory, ++ not $(srcdir). ++ (ID): Use $(srcdir) instead os $(top_srcdir)/src. ++ (distclean): Remove ID. ++ ++Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (gnulocaledir): ++ New variable, always using share/ for data directory. ++ (DEFS): Add GNULOCALEDIR, used in finddomain.c. ++ ++ * finddomain.c (_nl_default_dirname): ++ Set to GNULOCALEDIR, because it always has to point ++ to the directory where GNU gettext Library writes it to. ++ ++ * intl-compat.c (textdomain, bindtextdomain): ++ Undefine macros before function definition. ++ ++Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware> ++ ++ * libgettext.h (_LIBINTL_H): ++ Protect definition in case where this file is included as ++ libgettext.h on Solaris machines. Add comment about this. ++ ++Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware> ++ ++ * intl-compat.c (textdomain): Correct typo. ++ ++Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware> ++ ++ * dcgettext.c (dcgettext): Function now called __dcgettext. ++ ++ * dgettext.c (dgettext): Now called __dgettext and calls ++ __dcgettext. ++ ++ * gettext.c (gettext): ++ Function now called __gettext and calls __dgettext. ++ ++ * textdomain.c (textdomain): Function now called __textdomain. ++ ++ * bindtextdom.c (bindtextdomain): Function now called ++ __bindtextdomain. ++ ++ * intl-compat.c: Initial revision. ++ ++ * Makefile.in (SOURCES): Add intl-compat.c. ++ (OBJECTS): We always compile the GNU gettext library functions. ++ OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o, ++ and intl-compat.o. ++ (GETTOBJS): Contains now only intl-compat.o. ++ ++ * libgettext.h: ++ Re-include protection matches dualistic character of libgettext.h. ++ For all functions in GNU gettext library define __ counter part. ++ ++ * finddomain.c (strchr): Define as index if not found in C library. ++ (_nl_find_domain): For relative paths paste / in between. ++ ++Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware> ++ ++ * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h. ++ ++ * xopen-msg.sed: Fix bug with `msgstr ""' lines. ++ A little bit better comments. ++ ++Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in: ++ po-mode.el, makelinks, combine-sh are now found in ../misc. ++ ++ * po-mode.el, makelinks, combine-sh, elisp-comp: ++ Moved to ../misc/. ++ ++ * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__. ++ ++Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (INSTALL, INSTALL_DATA): New variables. ++ (install-data, uninstall): Install/uninstall .elc file. ++ ++ * po-mode.el (Installation comment): ++ Add .pox as possible extension of .po files. ++ ++Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware> ++ ++ * elisp-comp: Complete new version by Franc,ois: This does not ++ fail when not compiling in the source directory. ++ ++Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (../po/cat-id-tbl.o): ++ Use $(MAKE) instead of make for recursive make. ++ ++ * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh. ++ (install-exec): Add missing dummy goal. ++ (install-data, uninstall): @ in multi-line shell command at ++ beginning, not in front of echo. Reported by Eric Backus. ++ ++Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (DISTFILES): ++ Rename libgettext.perl to gettext.perl to fit in 14 chars ++ file systems. ++ ++ * gettext.perl: ++ Rename to gettext.perl to fit in 14 chars file systems. ++ ++Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware> ++ ++ * cat-compat.c: If !STDC_HEADERS try to include malloc.h. ++ ++Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware> ++ ++ * po2tbl.sed.in: Pretty printing. ++ ++ * linux-msg.sed, xopen-msg.sed: ++ Correct bugs with handling substitute flags in branches. ++ ++ * hash-string.h (hash_string): ++ Old K&R compilers don't under stand `unsigned char'. ++ ++ * gettext.h (nls_uint32): ++ Some old K&R compilers (eg HP) don't understand `unsigned int'. ++ ++ * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes. ++ ++Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (ELCFILES): New variable. ++ (DISTFILES): Add elisp-comp. ++ Add implicit rule for .el -> .elc compilation. ++ (install-data): install $ELCFILES ++ (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp. ++ ++ * elisp-comp: Initial revision ++ ++Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in: ++ cat-id-tbl.c is now found in po/. This enables us to use an identical ++ intl/ directory in all packages. ++ ++ * dcgettext.c (dcgettext): hashing does not work for table size <= 2. ++ ++ * textdomain.c: fix typo (#if def -> #if defined) ++ ++Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in (stamp-cat-id): use top_srcdir to address source files ++ (DISTFILES,distclean): move tupdate.perl to src/ ++ ++ * po-to-tbl.sed.in: ++ add additional jump to clear change flag to recognize multiline strings ++ ++Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware> ++ ++ * textdomain.c: Protect inclusion of stdlib.h and string.h. ++ ++ * loadmsgcat.c: Protect inclusion of stdlib.h. ++ ++ * libgettext.h: Protect inclusion of locale.h. ++ Allow use in C++ programs. ++ Define NULL is not happened already. ++ ++ * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of ++ po-to-tbl.sed. ++ (distclean): remove po-to-tbl.sed and tupdate.perl. ++ ++ * tupdate.perl.in: Substitute Perl path even in exec line. ++ Don't include entries without translation from old .po file. ++ ++Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware> ++ ++ * tupdate.perl.in: use "Updated: " in msgid "". ++ ++ * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR). ++ Define getenv if !__STDC__. ++ ++ * bindtextdom.c: Protect stdlib.h and string.h inclusion. ++ Define free if !__STDC__. ++ ++ * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. ++ Define free if !__STDC__. ++ ++ * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. ++ ++Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware> ++ ++ * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR. ++ Remove unneeded $(srcdir) from Makefile.in dependency. ++ ++ * makelinks: Add copyright and short description. ++ ++ * po-mode.el: Last version for 0.7. ++ ++ * tupdate.perl.in: Fix die message. ++ ++ * dcgettext.c: Protect include of string.h. ++ ++ * gettext.c: Protect include of stdlib.h and further tries to get NULL. ++ ++ * finddomain.c: Some corrections in includes. ++ ++ * Makefile.in (INCLUDES): Prune list correct path to Makefile.in. ++ ++ * po-to-tbl.sed: Adopt for new .po file format. ++ ++ * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format. ++ ++Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware> ++ ++ * tupdate.perl.in: Complete rewrite for new .po file format. ++ ++Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware> ++ ++ * First official release. This directory contains all the code ++ needed to internationalize own packages. It provides functions ++ which allow to use the X/Open catgets function with an interface ++ like the Uniforum gettext function. For system which does not ++ have neither of those a complete implementation is provided. +diff -urP gtkhtml-0.8.3.orig/intl/Makefile.in gtkhtml-0.8.3/intl/Makefile.in +--- gtkhtml-0.8.3.orig/intl/Makefile.in Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/Makefile.in Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,214 @@ ++# Makefile for directory with message catalog handling in GNU NLS Utilities. ++# Copyright (C) 1995, 1996, 1997 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. ++ ++PACKAGE = @PACKAGE@ ++VERSION = @VERSION@ ++ ++SHELL = /bin/sh ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++top_builddir = .. ++VPATH = @srcdir@ ++ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++transform = @program_transform_name@ ++libdir = $(exec_prefix)/lib ++includedir = $(prefix)/include ++datadir = $(prefix)/@DATADIRNAME@ ++localedir = $(datadir)/locale ++gnulocaledir = $(prefix)/share/locale ++gettextsrcdir = @datadir@/gettext/intl ++aliaspath = $(localedir):. ++subdir = intl ++ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++MKINSTALLDIRS = @MKINSTALLDIRS@ ++ ++l = @l@ ++ ++AR = ar ++CC = @CC@ ++LIBTOOL = @LIBTOOL@ ++RANLIB = @RANLIB@ ++ ++DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \ ++-DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@ ++CPPFLAGS = @CPPFLAGS@ ++CFLAGS = @CFLAGS@ ++LDFLAGS = @LDFLAGS@ ++ ++COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) ++ ++HEADERS = $(COMHDRS) libgettext.h loadinfo.h ++COMHDRS = gettext.h gettextP.h hash-string.h ++SOURCES = $(COMSRCS) intl-compat.c cat-compat.c ++COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \ ++finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \ ++explodename.c ++OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \ ++finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \ ++explodename.$lo ++CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo ++GETTOBJS = intl-compat.$lo ++DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \ ++xopen-msg.sed $(HEADERS) $(SOURCES) ++DISTFILES.normal = VERSION ++DISTFILES.gettext = libintl.glibc intlh.inst.in ++ ++.SUFFIXES: ++.SUFFIXES: .c .o .lo ++.c.o: ++ $(COMPILE) $< ++.c.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) $< ++ ++INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib ++ ++all: all-@USE_INCLUDED_LIBINTL@ ++ ++all-yes: libintl.$la intlh.inst ++all-no: ++ ++libintl.a: $(OBJECTS) ++ rm -f $@ ++ $(AR) cru $@ $(OBJECTS) ++ $(RANLIB) $@ ++ ++libintl.la: $(OBJECTS) ++ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \ ++ -version-info 1:0 -rpath $(libdir) ++ ++../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot ++ cd ../po && $(MAKE) cat-id-tbl.$lo ++ ++check: all ++ ++# This installation goal is only used in GNU gettext. Packages which ++# only use the library should use install instead. ++ ++# We must not install the libintl.h/libintl.a files if we are on a ++# system which has the gettext() function in its C library or in a ++# separate library or use the catgets interface. A special case is ++# where configure found a previously installed GNU gettext library. ++# If you want to use the one which comes with this version of the ++# package, you have to use `configure --with-included-gettext'. ++install: install-exec install-data ++install-exec: all ++ if test "$(PACKAGE)" = "gettext" \ ++ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ ++ if test -r $(MKINSTALLDIRS); then \ ++ $(MKINSTALLDIRS) $(libdir) $(includedir); \ ++ else \ ++ $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \ ++ fi; \ ++ $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \ ++ $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \ ++ else \ ++ : ; \ ++ fi ++install-data: all ++ if test "$(PACKAGE)" = "gettext"; then \ ++ if test -r $(MKINSTALLDIRS); then \ ++ $(MKINSTALLDIRS) $(gettextsrcdir); \ ++ else \ ++ $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ ++ fi; \ ++ $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \ ++ dists="$(DISTFILES.common)"; \ ++ for file in $$dists; do \ ++ $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \ ++ done; \ ++ else \ ++ : ; \ ++ fi ++ ++# Define this as empty until I found a useful application. ++installcheck: ++ ++uninstall: ++ dists="$(DISTFILES.common)"; \ ++ for file in $$dists; do \ ++ rm -f $(gettextsrcdir)/$$file; \ ++ done ++ ++info dvi: ++ ++$(OBJECTS): ../config.h libgettext.h ++bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h ++dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h ++ ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) ++ here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES) ++ ++id: ID ++ ++ID: $(HEADERS) $(SOURCES) ++ here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES) ++ ++ ++mostlyclean: ++ rm -f *.a *.o *.lo core core.* ++ ++clean: mostlyclean ++ ++distclean: clean ++ rm -f Makefile ID TAGS po2msg.sed po2tbl.sed ++ ++maintainer-clean: distclean ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++ ++# GNU gettext needs not contain the file `VERSION' but contains some ++# other files which should not be distributed in other packages. ++distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) ++dist distdir: Makefile $(DISTFILES) ++ if test "$(PACKAGE)" = gettext; then \ ++ additional="$(DISTFILES.gettext)"; \ ++ else \ ++ additional="$(DISTFILES.normal)"; \ ++ fi; \ ++ for file in $(DISTFILES.common) $$additional; do \ ++ ln $(srcdir)/$$file $(distdir) 2> /dev/null \ ++ || cp -p $(srcdir)/$$file $(distdir); \ ++ done ++ ++dist-libc: ++ tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc ++ ++Makefile: Makefile.in ../config.status ++ cd .. \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++# The dependency for intlh.inst is different in gettext and all other ++# packages. Because we cannot you GNU make features we have to solve ++# the problem while rewriting Makefile.in. ++@GT_YES@intlh.inst: intlh.inst.in ../config.status ++@GT_YES@ cd .. \ ++@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \ ++@GT_YES@ $(SHELL) ./config.status ++@GT_NO@.PHONY: intlh.inst ++@GT_NO@intlh.inst: ++ ++# 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 -urP gtkhtml-0.8.3.orig/intl/VERSION gtkhtml-0.8.3/intl/VERSION +--- gtkhtml-0.8.3.orig/intl/VERSION Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/VERSION Fri Mar 16 14:46:14 2001 +@@ -0,0 +1 @@ ++GNU gettext library from gettext-0.10.35 +diff -urP gtkhtml-0.8.3.orig/intl/bindtextdom.c gtkhtml-0.8.3/intl/bindtextdom.c +--- gtkhtml-0.8.3.orig/intl/bindtextdom.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/bindtextdom.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,203 @@ ++/* Implementation of the bindtextdomain(3) function ++ Copyright (C) 1995, 1996, 1997, 1998 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#if defined STDC_HEADERS || defined _LIBC ++# include <stdlib.h> ++#else ++# ifdef HAVE_MALLOC_H ++# include <malloc.h> ++# else ++void free (); ++# endif ++#endif ++ ++#if defined HAVE_STRING_H || defined _LIBC ++# include <string.h> ++#else ++# include <strings.h> ++# ifndef memcpy ++# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) ++# endif ++#endif ++ ++#ifdef _LIBC ++# include <libintl.h> ++#else ++# include "libgettext.h" ++#endif ++#include "gettext.h" ++#include "gettextP.h" ++ ++/* @@ end of prolog @@ */ ++ ++/* Contains the default location of the message catalogs. */ ++extern const char _nl_default_dirname[]; ++ ++/* List with bindings of specific domains. */ ++extern struct binding *_nl_domain_bindings; ++ ++ ++/* Names for the libintl functions are a problem. They must not clash ++ with existing names and they should follow ANSI C. But this source ++ code is also used in GNU C Library where the names have a __ ++ prefix. So we have to make a difference here. */ ++#ifdef _LIBC ++# define BINDTEXTDOMAIN __bindtextdomain ++# ifndef strdup ++# define strdup(str) __strdup (str) ++# endif ++#else ++# define BINDTEXTDOMAIN bindtextdomain__ ++#endif ++ ++/* Specify that the DOMAINNAME message catalog will be found ++ in DIRNAME rather than in the system locale data base. */ ++char * ++BINDTEXTDOMAIN (domainname, dirname) ++ const char *domainname; ++ const char *dirname; ++{ ++ struct binding *binding; ++ ++ /* Some sanity checks. */ ++ if (domainname == NULL || domainname[0] == '\0') ++ return NULL; ++ ++ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) ++ { ++ int compare = strcmp (domainname, binding->domainname); ++ if (compare == 0) ++ /* We found it! */ ++ break; ++ if (compare < 0) ++ { ++ /* It is not in the list. */ ++ binding = NULL; ++ break; ++ } ++ } ++ ++ if (dirname == NULL) ++ /* The current binding has be to returned. */ ++ return binding == NULL ? (char *) _nl_default_dirname : binding->dirname; ++ ++ if (binding != NULL) ++ { ++ /* The domain is already bound. If the new value and the old ++ one are equal we simply do nothing. Otherwise replace the ++ old binding. */ ++ if (strcmp (dirname, binding->dirname) != 0) ++ { ++ char *new_dirname; ++ ++ if (strcmp (dirname, _nl_default_dirname) == 0) ++ new_dirname = (char *) _nl_default_dirname; ++ else ++ { ++#if defined _LIBC || defined HAVE_STRDUP ++ new_dirname = strdup (dirname); ++ if (new_dirname == NULL) ++ return NULL; ++#else ++ size_t len = strlen (dirname) + 1; ++ new_dirname = (char *) malloc (len); ++ if (new_dirname == NULL) ++ return NULL; ++ ++ memcpy (new_dirname, dirname, len); ++#endif ++ } ++ ++ if (binding->dirname != _nl_default_dirname) ++ free (binding->dirname); ++ ++ binding->dirname = new_dirname; ++ } ++ } ++ else ++ { ++ /* We have to create a new binding. */ ++#if !defined _LIBC && !defined HAVE_STRDUP ++ size_t len; ++#endif ++ struct binding *new_binding = ++ (struct binding *) malloc (sizeof (*new_binding)); ++ ++ if (new_binding == NULL) ++ return NULL; ++ ++#if defined _LIBC || defined HAVE_STRDUP ++ new_binding->domainname = strdup (domainname); ++ if (new_binding->domainname == NULL) ++ return NULL; ++#else ++ len = strlen (domainname) + 1; ++ new_binding->domainname = (char *) malloc (len); ++ if (new_binding->domainname == NULL) ++ return NULL; ++ memcpy (new_binding->domainname, domainname, len); ++#endif ++ ++ if (strcmp (dirname, _nl_default_dirname) == 0) ++ new_binding->dirname = (char *) _nl_default_dirname; ++ else ++ { ++#if defined _LIBC || defined HAVE_STRDUP ++ new_binding->dirname = strdup (dirname); ++ if (new_binding->dirname == NULL) ++ return NULL; ++#else ++ len = strlen (dirname) + 1; ++ new_binding->dirname = (char *) malloc (len); ++ if (new_binding->dirname == NULL) ++ return NULL; ++ memcpy (new_binding->dirname, dirname, len); ++#endif ++ } ++ ++ /* Now enqueue it. */ ++ if (_nl_domain_bindings == NULL ++ || strcmp (domainname, _nl_domain_bindings->domainname) < 0) ++ { ++ new_binding->next = _nl_domain_bindings; ++ _nl_domain_bindings = new_binding; ++ } ++ else ++ { ++ binding = _nl_domain_bindings; ++ while (binding->next != NULL ++ && strcmp (domainname, binding->next->domainname) > 0) ++ binding = binding->next; ++ ++ new_binding->next = binding->next; ++ binding->next = new_binding; ++ } ++ ++ binding = new_binding; ++ } ++ ++ return binding->dirname; ++} ++ ++#ifdef _LIBC ++/* Alias for function name in GNU C Library. */ ++weak_alias (__bindtextdomain, bindtextdomain); ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/cat-compat.c gtkhtml-0.8.3/intl/cat-compat.c +--- gtkhtml-0.8.3.orig/intl/cat-compat.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/cat-compat.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,262 @@ ++/* Compatibility code for gettext-using-catgets interface. ++ Copyright (C) 1995, 1997 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef STDC_HEADERS ++# include <stdlib.h> ++# include <string.h> ++#else ++char *getenv (); ++# ifdef HAVE_MALLOC_H ++# include <malloc.h> ++# endif ++#endif ++ ++#ifdef HAVE_NL_TYPES_H ++# include <nl_types.h> ++#endif ++ ++#include "libgettext.h" ++ ++/* @@ end of prolog @@ */ ++ ++/* XPG3 defines the result of `setlocale (category, NULL)' as: ++ ``Directs `setlocale()' to query `category' and return the current ++ setting of `local'.'' ++ However it does not specify the exact format. And even worse: POSIX ++ defines this not at all. So we can use this feature only on selected ++ system (e.g. those using GNU C Library). */ ++#ifdef _LIBC ++# define HAVE_LOCALE_NULL ++#endif ++ ++/* The catalog descriptor. */ ++static nl_catd catalog = (nl_catd) -1; ++ ++/* Name of the default catalog. */ ++static const char default_catalog_name[] = "messages"; ++ ++/* Name of currently used catalog. */ ++static const char *catalog_name = default_catalog_name; ++ ++/* Get ID for given string. If not found return -1. */ ++static int msg_to_cat_id PARAMS ((const char *msg)); ++ ++/* Substitution for systems lacking this function in their C library. */ ++#if !_LIBC && !HAVE_STPCPY ++static char *stpcpy PARAMS ((char *dest, const char *src)); ++#endif ++ ++ ++/* Set currently used domain/catalog. */ ++char * ++textdomain (domainname) ++ const char *domainname; ++{ ++ nl_catd new_catalog; ++ char *new_name; ++ size_t new_name_len; ++ char *lang; ++ ++#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \ ++ && defined HAVE_LOCALE_NULL ++ lang = setlocale (LC_MESSAGES, NULL); ++#else ++ lang = getenv ("LC_ALL"); ++ if (lang == NULL || lang[0] == '\0') ++ { ++ lang = getenv ("LC_MESSAGES"); ++ if (lang == NULL || lang[0] == '\0') ++ lang = getenv ("LANG"); ++ } ++#endif ++ if (lang == NULL || lang[0] == '\0') ++ lang = "C"; ++ ++ /* See whether name of currently used domain is asked. */ ++ if (domainname == NULL) ++ return (char *) catalog_name; ++ ++ if (domainname[0] == '\0') ++ domainname = default_catalog_name; ++ ++ /* Compute length of added path element. */ ++ new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang) ++ + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1 ++ + sizeof (".cat"); ++ ++ new_name = (char *) malloc (new_name_len); ++ if (new_name == NULL) ++ return NULL; ++ ++ strcpy (new_name, PACKAGE); ++ new_catalog = catopen (new_name, 0); ++ ++ if (new_catalog == (nl_catd) -1) ++ { ++ /* NLSPATH search didn't work, try absolute path */ ++ sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang, ++ PACKAGE); ++ new_catalog = catopen (new_name, 0); ++ ++ if (new_catalog == (nl_catd) -1) ++ { ++ free (new_name); ++ return (char *) catalog_name; ++ } ++ } ++ ++ /* Close old catalog. */ ++ if (catalog != (nl_catd) -1) ++ catclose (catalog); ++ if (catalog_name != default_catalog_name) ++ free ((char *) catalog_name); ++ ++ catalog = new_catalog; ++ catalog_name = new_name; ++ ++ return (char *) catalog_name; ++} ++ ++char * ++bindtextdomain (domainname, dirname) ++ const char *domainname; ++ const char *dirname; ++{ ++#if HAVE_SETENV || HAVE_PUTENV ++ char *old_val, *new_val, *cp; ++ size_t new_val_len; ++ ++ /* This does not make much sense here but to be compatible do it. */ ++ if (domainname == NULL) ++ return NULL; ++ ++ /* Compute length of added path element. If we use setenv we don't need ++ the first byts for NLSPATH=, but why complicate the code for this ++ peanuts. */ ++ new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname) ++ + sizeof ("/%L/LC_MESSAGES/%N.cat"); ++ ++ old_val = getenv ("NLSPATH"); ++ if (old_val == NULL || old_val[0] == '\0') ++ { ++ old_val = NULL; ++ new_val_len += 1 + sizeof (LOCALEDIR) - 1 ++ + sizeof ("/%L/LC_MESSAGES/%N.cat"); ++ } ++ else ++ new_val_len += strlen (old_val); ++ ++ new_val = (char *) malloc (new_val_len); ++ if (new_val == NULL) ++ return NULL; ++ ++# if HAVE_SETENV ++ cp = new_val; ++# else ++ cp = stpcpy (new_val, "NLSPATH="); ++# endif ++ ++ cp = stpcpy (cp, dirname); ++ cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:"); ++ ++ if (old_val == NULL) ++ { ++# if __STDC__ ++ stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat"); ++# else ++ ++ cp = stpcpy (cp, LOCALEDIR); ++ stpcpy (cp, "/%L/LC_MESSAGES/%N.cat"); ++# endif ++ } ++ else ++ stpcpy (cp, old_val); ++ ++# if HAVE_SETENV ++ setenv ("NLSPATH", new_val, 1); ++ free (new_val); ++# else ++ putenv (new_val); ++ /* Do *not* free the environment entry we just entered. It is used ++ from now on. */ ++# endif ++ ++#endif ++ ++ return (char *) domainname; ++} ++ ++#undef gettext ++char * ++gettext (msg) ++ const char *msg; ++{ ++ int msgid; ++ ++ if (msg == NULL || catalog == (nl_catd) -1) ++ return (char *) msg; ++ ++ /* Get the message from the catalog. We always use set number 1. ++ The message ID is computed by the function `msg_to_cat_id' ++ which works on the table generated by `po-to-tbl'. */ ++ msgid = msg_to_cat_id (msg); ++ if (msgid == -1) ++ return (char *) msg; ++ ++ return catgets (catalog, 1, msgid, (char *) msg); ++} ++ ++/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries ++ for the one equal to msg. If it is found return the ID. In case when ++ the string is not found return -1. */ ++static int ++msg_to_cat_id (msg) ++ const char *msg; ++{ ++ int cnt; ++ ++ for (cnt = 0; cnt < _msg_tbl_length; ++cnt) ++ if (strcmp (msg, _msg_tbl[cnt]._msg) == 0) ++ return _msg_tbl[cnt]._msg_number; ++ ++ return -1; ++} ++ ++ ++/* @@ begin of epilog @@ */ ++ ++/* We don't want libintl.a to depend on any other library. So we ++ avoid the non-standard function stpcpy. In GNU C Library this ++ function is available, though. Also allow the symbol HAVE_STPCPY ++ to be defined. */ ++#if !_LIBC && !HAVE_STPCPY ++static char * ++stpcpy (dest, src) ++ char *dest; ++ const char *src; ++{ ++ while ((*dest++ = *src++) != '\0') ++ /* Do nothing. */ ; ++ return dest - 1; ++} ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/dcgettext.c gtkhtml-0.8.3/intl/dcgettext.c +--- gtkhtml-0.8.3.orig/intl/dcgettext.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/dcgettext.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,624 @@ ++/* Implementation of the dcgettext(3) function. ++ Copyright (C) 1995, 1996, 1997, 1998 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include <sys/types.h> ++ ++#ifdef __GNUC__ ++# define alloca __builtin_alloca ++# define HAVE_ALLOCA 1 ++#else ++# if defined HAVE_ALLOCA_H || defined _LIBC ++# include <alloca.h> ++# else ++# ifdef _AIX ++ #pragma alloca ++# else ++# ifndef alloca ++char *alloca (); ++# endif ++# endif ++# endif ++#endif ++ ++#include <errno.h> ++#ifndef errno ++extern int errno; ++#endif ++#ifndef __set_errno ++# define __set_errno(val) errno = (val) ++#endif ++ ++#if defined STDC_HEADERS || defined _LIBC ++# include <stdlib.h> ++#else ++char *getenv (); ++# ifdef HAVE_MALLOC_H ++# include <malloc.h> ++# else ++void free (); ++# endif ++#endif ++ ++#if defined HAVE_STRING_H || defined _LIBC ++# ifndef _GNU_SOURCE ++# define _GNU_SOURCE 1 ++# endif ++# include <string.h> ++#else ++# include <strings.h> ++#endif ++#if !HAVE_STRCHR && !defined _LIBC ++# ifndef strchr ++# define strchr index ++# endif ++#endif ++ ++#if defined HAVE_UNISTD_H || defined _LIBC ++# include <unistd.h> ++#endif ++ ++#include "gettext.h" ++#include "gettextP.h" ++#ifdef _LIBC ++# include <libintl.h> ++#else ++# include "libgettext.h" ++#endif ++#include "hash-string.h" ++ ++/* @@ end of prolog @@ */ ++ ++#ifdef _LIBC ++/* Rename the non ANSI C functions. This is required by the standard ++ because some ANSI C functions will require linking with this object ++ file and the name space must not be polluted. */ ++# define getcwd __getcwd ++# ifndef stpcpy ++# define stpcpy __stpcpy ++# endif ++#else ++# if !defined HAVE_GETCWD ++char *getwd (); ++# define getcwd(buf, max) getwd (buf) ++# else ++char *getcwd (); ++# endif ++# ifndef HAVE_STPCPY ++static char *stpcpy PARAMS ((char *dest, const char *src)); ++# endif ++#endif ++ ++/* Amount to increase buffer size by in each try. */ ++#define PATH_INCR 32 ++ ++/* The following is from pathmax.h. */ ++/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define ++ PATH_MAX but might cause redefinition warnings when sys/param.h is ++ later included (as on MORE/BSD 4.3). */ ++#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__)) ++# include <limits.h> ++#endif ++ ++#ifndef _POSIX_PATH_MAX ++# define _POSIX_PATH_MAX 255 ++#endif ++ ++#if !defined(PATH_MAX) && defined(_PC_PATH_MAX) ++# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX)) ++#endif ++ ++/* Don't include sys/param.h if it already has been. */ ++#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN) ++# include <sys/param.h> ++#endif ++ ++#if !defined(PATH_MAX) && defined(MAXPATHLEN) ++# define PATH_MAX MAXPATHLEN ++#endif ++ ++#ifndef PATH_MAX ++# define PATH_MAX _POSIX_PATH_MAX ++#endif ++ ++/* XPG3 defines the result of `setlocale (category, NULL)' as: ++ ``Directs `setlocale()' to query `category' and return the current ++ setting of `local'.'' ++ However it does not specify the exact format. And even worse: POSIX ++ defines this not at all. So we can use this feature only on selected ++ system (e.g. those using GNU C Library). */ ++#ifdef _LIBC ++# define HAVE_LOCALE_NULL ++#endif ++ ++/* Name of the default domain used for gettext(3) prior any call to ++ textdomain(3). The default value for this is "messages". */ ++const char _nl_default_default_domain[] = "messages"; ++ ++/* Value used as the default domain for gettext(3). */ ++const char *_nl_current_default_domain = _nl_default_default_domain; ++ ++/* Contains the default location of the message catalogs. */ ++const char _nl_default_dirname[] = GNULOCALEDIR; ++ ++/* List with bindings of specific domains created by bindtextdomain() ++ calls. */ ++struct binding *_nl_domain_bindings; ++ ++/* Prototypes for local functions. */ ++static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file, ++ const char *msgid)) internal_function; ++static const char *category_to_name PARAMS ((int category)) internal_function; ++static const char *guess_category_value PARAMS ((int category, ++ const char *categoryname)) ++ internal_function; ++ ++ ++/* For those loosing systems which don't have `alloca' we have to add ++ some additional code emulating it. */ ++#ifdef HAVE_ALLOCA ++/* Nothing has to be done. */ ++# define ADD_BLOCK(list, address) /* nothing */ ++# define FREE_BLOCKS(list) /* nothing */ ++#else ++struct block_list ++{ ++ void *address; ++ struct block_list *next; ++}; ++# define ADD_BLOCK(list, addr) \ ++ do { \ ++ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ ++ /* If we cannot get a free block we cannot add the new element to \ ++ the list. */ \ ++ if (newp != NULL) { \ ++ newp->address = (addr); \ ++ newp->next = (list); \ ++ (list) = newp; \ ++ } \ ++ } while (0) ++# define FREE_BLOCKS(list) \ ++ do { \ ++ while (list != NULL) { \ ++ struct block_list *old = list; \ ++ list = list->next; \ ++ free (old); \ ++ } \ ++ } while (0) ++# undef alloca ++# define alloca(size) (malloc (size)) ++#endif /* have alloca */ ++ ++ ++/* Names for the libintl functions are a problem. They must not clash ++ with existing names and they should follow ANSI C. But this source ++ code is also used in GNU C Library where the names have a __ ++ prefix. So we have to make a difference here. */ ++#ifdef _LIBC ++# define DCGETTEXT __dcgettext ++#else ++# define DCGETTEXT dcgettext__ ++#endif ++ ++/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY ++ locale. */ ++char * ++DCGETTEXT (domainname, msgid, category) ++ const char *domainname; ++ const char *msgid; ++ int category; ++{ ++#ifndef HAVE_ALLOCA ++ struct block_list *block_list = NULL; ++#endif ++ struct loaded_l10nfile *domain; ++ struct binding *binding; ++ const char *categoryname; ++ const char *categoryvalue; ++ char *dirname, *xdomainname; ++ char *single_locale; ++ char *retval; ++ int saved_errno = errno; ++ ++ /* If no real MSGID is given return NULL. */ ++ if (msgid == NULL) ++ return NULL; ++ ++ /* If DOMAINNAME is NULL, we are interested in the default domain. If ++ CATEGORY is not LC_MESSAGES this might not make much sense but the ++ defintion left this undefined. */ ++ if (domainname == NULL) ++ domainname = _nl_current_default_domain; ++ ++ /* First find matching binding. */ ++ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) ++ { ++ int compare = strcmp (domainname, binding->domainname); ++ if (compare == 0) ++ /* We found it! */ ++ break; ++ if (compare < 0) ++ { ++ /* It is not in the list. */ ++ binding = NULL; ++ break; ++ } ++ } ++ ++ if (binding == NULL) ++ dirname = (char *) _nl_default_dirname; ++ else if (binding->dirname[0] == '/') ++ dirname = binding->dirname; ++ else ++ { ++ /* We have a relative path. Make it absolute now. */ ++ size_t dirname_len = strlen (binding->dirname) + 1; ++ size_t path_max; ++ char *ret; ++ ++ path_max = (unsigned) PATH_MAX; ++ path_max += 2; /* The getcwd docs say to do this. */ ++ ++ dirname = (char *) alloca (path_max + dirname_len); ++ ADD_BLOCK (block_list, dirname); ++ ++ __set_errno (0); ++ while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE) ++ { ++ path_max += PATH_INCR; ++ dirname = (char *) alloca (path_max + dirname_len); ++ ADD_BLOCK (block_list, dirname); ++ __set_errno (0); ++ } ++ ++ if (ret == NULL) ++ { ++ /* We cannot get the current working directory. Don't signal an ++ error but simply return the default string. */ ++ FREE_BLOCKS (block_list); ++ __set_errno (saved_errno); ++ return (char *) msgid; ++ } ++ ++ stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname); ++ } ++ ++ /* Now determine the symbolic name of CATEGORY and its value. */ ++ categoryname = category_to_name (category); ++ categoryvalue = guess_category_value (category, categoryname); ++ ++ xdomainname = (char *) alloca (strlen (categoryname) ++ + strlen (domainname) + 5); ++ ADD_BLOCK (block_list, xdomainname); ++ ++ stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), ++ domainname), ++ ".mo"); ++ ++ /* Creating working area. */ ++ single_locale = (char *) alloca (strlen (categoryvalue) + 1); ++ ADD_BLOCK (block_list, single_locale); ++ ++ ++ /* Search for the given string. This is a loop because we perhaps ++ got an ordered list of languages to consider for th translation. */ ++ while (1) ++ { ++ /* Make CATEGORYVALUE point to the next element of the list. */ ++ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':') ++ ++categoryvalue; ++ if (categoryvalue[0] == '\0') ++ { ++ /* The whole contents of CATEGORYVALUE has been searched but ++ no valid entry has been found. We solve this situation ++ by implicitly appending a "C" entry, i.e. no translation ++ will take place. */ ++ single_locale[0] = 'C'; ++ single_locale[1] = '\0'; ++ } ++ else ++ { ++ char *cp = single_locale; ++ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':') ++ *cp++ = *categoryvalue++; ++ *cp = '\0'; ++ } ++ ++ /* If the current locale value is C (or POSIX) we don't load a ++ domain. Return the MSGID. */ ++ if (strcmp (single_locale, "C") == 0 ++ || strcmp (single_locale, "POSIX") == 0) ++ { ++ FREE_BLOCKS (block_list); ++ __set_errno (saved_errno); ++ return (char *) msgid; ++ } ++ ++ ++ /* Find structure describing the message catalog matching the ++ DOMAINNAME and CATEGORY. */ ++ domain = _nl_find_domain (dirname, single_locale, xdomainname); ++ ++ if (domain != NULL) ++ { ++ retval = find_msg (domain, msgid); ++ ++ if (retval == NULL) ++ { ++ int cnt; ++ ++ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) ++ { ++ retval = find_msg (domain->successor[cnt], msgid); ++ ++ if (retval != NULL) ++ break; ++ } ++ } ++ ++ if (retval != NULL) ++ { ++ FREE_BLOCKS (block_list); ++ __set_errno (saved_errno); ++ return retval; ++ } ++ } ++ } ++ /* NOTREACHED */ ++} ++ ++#ifdef _LIBC ++/* Alias for function name in GNU C Library. */ ++weak_alias (__dcgettext, dcgettext); ++#endif ++ ++ ++static char * ++internal_function ++find_msg (domain_file, msgid) ++ struct loaded_l10nfile *domain_file; ++ const char *msgid; ++{ ++ size_t top, act, bottom; ++ struct loaded_domain *domain; ++ ++ if (domain_file->decided == 0) ++ _nl_load_domain (domain_file); ++ ++ if (domain_file->data == NULL) ++ return NULL; ++ ++ domain = (struct loaded_domain *) domain_file->data; ++ ++ /* Locate the MSGID and its translation. */ ++ if (domain->hash_size > 2 && domain->hash_tab != NULL) ++ { ++ /* Use the hashing table. */ ++ nls_uint32 len = strlen (msgid); ++ nls_uint32 hash_val = hash_string (msgid); ++ nls_uint32 idx = hash_val % domain->hash_size; ++ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); ++ nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]); ++ ++ if (nstr == 0) ++ /* Hash table entry is empty. */ ++ return NULL; ++ ++ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len ++ && strcmp (msgid, ++ domain->data + W (domain->must_swap, ++ domain->orig_tab[nstr - 1].offset)) == 0) ++ return (char *) domain->data + W (domain->must_swap, ++ domain->trans_tab[nstr - 1].offset); ++ ++ while (1) ++ { ++ if (idx >= domain->hash_size - incr) ++ idx -= domain->hash_size - incr; ++ else ++ idx += incr; ++ ++ nstr = W (domain->must_swap, domain->hash_tab[idx]); ++ if (nstr == 0) ++ /* Hash table entry is empty. */ ++ return NULL; ++ ++ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len ++ && strcmp (msgid, ++ domain->data + W (domain->must_swap, ++ domain->orig_tab[nstr - 1].offset)) ++ == 0) ++ return (char *) domain->data ++ + W (domain->must_swap, domain->trans_tab[nstr - 1].offset); ++ } ++ /* NOTREACHED */ ++ } ++ ++ /* Now we try the default method: binary search in the sorted ++ array of messages. */ ++ bottom = 0; ++ top = domain->nstrings; ++ while (bottom < top) ++ { ++ int cmp_val; ++ ++ act = (bottom + top) / 2; ++ cmp_val = strcmp (msgid, domain->data ++ + W (domain->must_swap, ++ domain->orig_tab[act].offset)); ++ if (cmp_val < 0) ++ top = act; ++ else if (cmp_val > 0) ++ bottom = act + 1; ++ else ++ break; ++ } ++ ++ /* If an translation is found return this. */ ++ return bottom >= top ? NULL : (char *) domain->data ++ + W (domain->must_swap, ++ domain->trans_tab[act].offset); ++} ++ ++ ++/* Return string representation of locale CATEGORY. */ ++static const char * ++internal_function ++category_to_name (category) ++ int category; ++{ ++ const char *retval; ++ ++ switch (category) ++ { ++#ifdef LC_COLLATE ++ case LC_COLLATE: ++ retval = "LC_COLLATE"; ++ break; ++#endif ++#ifdef LC_CTYPE ++ case LC_CTYPE: ++ retval = "LC_CTYPE"; ++ break; ++#endif ++#ifdef LC_MONETARY ++ case LC_MONETARY: ++ retval = "LC_MONETARY"; ++ break; ++#endif ++#ifdef LC_NUMERIC ++ case LC_NUMERIC: ++ retval = "LC_NUMERIC"; ++ break; ++#endif ++#ifdef LC_TIME ++ case LC_TIME: ++ retval = "LC_TIME"; ++ break; ++#endif ++#ifdef LC_MESSAGES ++ case LC_MESSAGES: ++ retval = "LC_MESSAGES"; ++ break; ++#endif ++#ifdef LC_RESPONSE ++ case LC_RESPONSE: ++ retval = "LC_RESPONSE"; ++ break; ++#endif ++#ifdef LC_ALL ++ case LC_ALL: ++ /* This might not make sense but is perhaps better than any other ++ value. */ ++ retval = "LC_ALL"; ++ break; ++#endif ++ default: ++ /* If you have a better idea for a default value let me know. */ ++ retval = "LC_XXX"; ++ } ++ ++ return retval; ++} ++ ++/* Guess value of current locale from value of the environment variables. */ ++static const char * ++internal_function ++guess_category_value (category, categoryname) ++ int category; ++ const char *categoryname; ++{ ++ const char *retval; ++ ++ /* The highest priority value is the `LANGUAGE' environment ++ variable. This is a GNU extension. */ ++ retval = getenv ("LANGUAGE"); ++ if (retval != NULL && retval[0] != '\0') ++ return retval; ++ ++ /* `LANGUAGE' is not set. So we have to proceed with the POSIX ++ methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some ++ systems this can be done by the `setlocale' function itself. */ ++#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL ++ return setlocale (category, NULL); ++#else ++ /* Setting of LC_ALL overwrites all other. */ ++ retval = getenv ("LC_ALL"); ++ if (retval != NULL && retval[0] != '\0') ++ return retval; ++ ++ /* Next comes the name of the desired category. */ ++ retval = getenv (categoryname); ++ if (retval != NULL && retval[0] != '\0') ++ return retval; ++ ++ /* Last possibility is the LANG environment variable. */ ++ retval = getenv ("LANG"); ++ if (retval != NULL && retval[0] != '\0') ++ return retval; ++ ++ /* We use C as the default domain. POSIX says this is implementation ++ defined. */ ++ return "C"; ++#endif ++} ++ ++/* @@ begin of epilog @@ */ ++ ++/* We don't want libintl.a to depend on any other library. So we ++ avoid the non-standard function stpcpy. In GNU C Library this ++ function is available, though. Also allow the symbol HAVE_STPCPY ++ to be defined. */ ++#if !_LIBC && !HAVE_STPCPY ++static char * ++stpcpy (dest, src) ++ char *dest; ++ const char *src; ++{ ++ while ((*dest++ = *src++) != '\0') ++ /* Do nothing. */ ; ++ return dest - 1; ++} ++#endif ++ ++ ++#ifdef _LIBC ++/* If we want to free all resources we have to do some work at ++ program's end. */ ++static void __attribute__ ((unused)) ++free_mem (void) ++{ ++ struct binding *runp; ++ ++ for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next) ++ { ++ free (runp->domainname); ++ if (runp->dirname != _nl_default_dirname) ++ /* Yes, this is a pointer comparison. */ ++ free (runp->dirname); ++ } ++ ++ if (_nl_current_default_domain != _nl_default_default_domain) ++ /* Yes, again a pointer comparison. */ ++ free ((char *) _nl_current_default_domain); ++} ++ ++text_set_element (__libc_subfreeres, free_mem); ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/dgettext.c gtkhtml-0.8.3/intl/dgettext.c +--- gtkhtml-0.8.3.orig/intl/dgettext.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/dgettext.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,59 @@ ++/* Implementation of the dgettext(3) function ++ Copyright (C) 1995, 1996, 1997 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#if defined HAVE_LOCALE_H || defined _LIBC ++# include <locale.h> ++#endif ++ ++#ifdef _LIBC ++# include <libintl.h> ++#else ++# include "libgettext.h" ++#endif ++ ++/* @@ end of prolog @@ */ ++ ++/* Names for the libintl functions are a problem. They must not clash ++ with existing names and they should follow ANSI C. But this source ++ code is also used in GNU C Library where the names have a __ ++ prefix. So we have to make a difference here. */ ++#ifdef _LIBC ++# define DGETTEXT __dgettext ++# define DCGETTEXT __dcgettext ++#else ++# define DGETTEXT dgettext__ ++# define DCGETTEXT dcgettext__ ++#endif ++ ++/* Look up MSGID in the DOMAINNAME message catalog of the current ++ LC_MESSAGES locale. */ ++char * ++DGETTEXT (domainname, msgid) ++ const char *domainname; ++ const char *msgid; ++{ ++ return DCGETTEXT (domainname, msgid, LC_MESSAGES); ++} ++ ++#ifdef _LIBC ++/* Alias for function name in GNU C Library. */ ++weak_alias (__dgettext, dgettext); ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/explodename.c gtkhtml-0.8.3/intl/explodename.c +--- gtkhtml-0.8.3.orig/intl/explodename.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/explodename.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,188 @@ ++/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. ++ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++ ++ 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#if defined STDC_HEADERS || defined _LIBC ++# include <stdlib.h> ++#endif ++ ++#if defined HAVE_STRING_H || defined _LIBC ++# include <string.h> ++#else ++# include <strings.h> ++#endif ++#include <sys/types.h> ++ ++#include "loadinfo.h" ++ ++/* On some strange systems still no definition of NULL is found. Sigh! */ ++#ifndef NULL ++# if defined __STDC__ && __STDC__ ++# define NULL ((void *) 0) ++# else ++# define NULL 0 ++# endif ++#endif ++ ++/* @@ end of prolog @@ */ ++ ++int ++_nl_explode_name (name, language, modifier, territory, codeset, ++ normalized_codeset, special, sponsor, revision) ++ char *name; ++ const char **language; ++ const char **modifier; ++ const char **territory; ++ const char **codeset; ++ const char **normalized_codeset; ++ const char **special; ++ const char **sponsor; ++ const char **revision; ++{ ++ enum { undecided, xpg, cen } syntax; ++ char *cp; ++ int mask; ++ ++ *modifier = NULL; ++ *territory = NULL; ++ *codeset = NULL; ++ *normalized_codeset = NULL; ++ *special = NULL; ++ *sponsor = NULL; ++ *revision = NULL; ++ ++ /* Now we determine the single parts of the locale name. First ++ look for the language. Termination symbols are `_' and `@' if ++ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ ++ mask = 0; ++ syntax = undecided; ++ *language = cp = name; ++ while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@' ++ && cp[0] != '+' && cp[0] != ',') ++ ++cp; ++ ++ if (*language == cp) ++ /* This does not make sense: language has to be specified. Use ++ this entry as it is without exploding. Perhaps it is an alias. */ ++ cp = strchr (*language, '\0'); ++ else if (cp[0] == '_') ++ { ++ /* Next is the territory. */ ++ cp[0] = '\0'; ++ *territory = ++cp; ++ ++ while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@' ++ && cp[0] != '+' && cp[0] != ',' && cp[0] != '_') ++ ++cp; ++ ++ mask |= TERRITORY; ++ ++ if (cp[0] == '.') ++ { ++ /* Next is the codeset. */ ++ syntax = xpg; ++ cp[0] = '\0'; ++ *codeset = ++cp; ++ ++ while (cp[0] != '\0' && cp[0] != '@') ++ ++cp; ++ ++ mask |= XPG_CODESET; ++ ++ if (*codeset != cp && (*codeset)[0] != '\0') ++ { ++ *normalized_codeset = _nl_normalize_codeset (*codeset, ++ cp - *codeset); ++ if (strcmp (*codeset, *normalized_codeset) == 0) ++ free ((char *) *normalized_codeset); ++ else ++ mask |= XPG_NORM_CODESET; ++ } ++ } ++ } ++ ++ if (cp[0] == '@' || (syntax != xpg && cp[0] == '+')) ++ { ++ /* Next is the modifier. */ ++ syntax = cp[0] == '@' ? xpg : cen; ++ cp[0] = '\0'; ++ *modifier = ++cp; ++ ++ while (syntax == cen && cp[0] != '\0' && cp[0] != '+' ++ && cp[0] != ',' && cp[0] != '_') ++ ++cp; ++ ++ mask |= XPG_MODIFIER | CEN_AUDIENCE; ++ } ++ ++ if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_')) ++ { ++ syntax = cen; ++ ++ if (cp[0] == '+') ++ { ++ /* Next is special application (CEN syntax). */ ++ cp[0] = '\0'; ++ *special = ++cp; ++ ++ while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_') ++ ++cp; ++ ++ mask |= CEN_SPECIAL; ++ } ++ ++ if (cp[0] == ',') ++ { ++ /* Next is sponsor (CEN syntax). */ ++ cp[0] = '\0'; ++ *sponsor = ++cp; ++ ++ while (cp[0] != '\0' && cp[0] != '_') ++ ++cp; ++ ++ mask |= CEN_SPONSOR; ++ } ++ ++ if (cp[0] == '_') ++ { ++ /* Next is revision (CEN syntax). */ ++ cp[0] = '\0'; ++ *revision = ++cp; ++ ++ mask |= CEN_REVISION; ++ } ++ } ++ ++ /* For CEN syntax values it might be important to have the ++ separator character in the file name, not for XPG syntax. */ ++ if (syntax == xpg) ++ { ++ if (*territory != NULL && (*territory)[0] == '\0') ++ mask &= ~TERRITORY; ++ ++ if (*codeset != NULL && (*codeset)[0] == '\0') ++ mask &= ~XPG_CODESET; ++ ++ if (*modifier != NULL && (*modifier)[0] == '\0') ++ mask &= ~XPG_MODIFIER; ++ } ++ ++ return mask; ++} +diff -urP gtkhtml-0.8.3.orig/intl/finddomain.c gtkhtml-0.8.3/intl/finddomain.c +--- gtkhtml-0.8.3.orig/intl/finddomain.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/finddomain.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,216 @@ ++/* Handle list of needed message catalogs ++ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. ++ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++ ++ 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include <ctype.h> ++#include <errno.h> ++#include <stdio.h> ++#include <sys/types.h> ++ ++#if defined STDC_HEADERS || defined _LIBC ++# include <stdlib.h> ++#else ++# ifdef HAVE_MALLOC_H ++# include <malloc.h> ++# else ++void free (); ++# endif ++#endif ++ ++#if defined HAVE_STRING_H || defined _LIBC ++# include <string.h> ++#else ++# include <strings.h> ++# ifndef memcpy ++# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) ++# endif ++#endif ++#if !HAVE_STRCHR && !defined _LIBC ++# ifndef strchr ++# define strchr index ++# endif ++#endif ++ ++#if defined HAVE_UNISTD_H || defined _LIBC ++# include <unistd.h> ++#endif ++ ++#include "gettext.h" ++#include "gettextP.h" ++#ifdef _LIBC ++# include <libintl.h> ++#else ++# include "libgettext.h" ++#endif ++ ++/* @@ end of prolog @@ */ ++/* List of already loaded domains. */ ++static struct loaded_l10nfile *_nl_loaded_domains; ++ ++ ++/* Return a data structure describing the message catalog described by ++ the DOMAINNAME and CATEGORY parameters with respect to the currently ++ established bindings. */ ++struct loaded_l10nfile * ++internal_function ++_nl_find_domain (dirname, locale, domainname) ++ const char *dirname; ++ char *locale; ++ const char *domainname; ++{ ++ struct loaded_l10nfile *retval; ++ const char *language; ++ const char *modifier; ++ const char *territory; ++ const char *codeset; ++ const char *normalized_codeset; ++ const char *special; ++ const char *sponsor; ++ const char *revision; ++ const char *alias_value; ++ int mask; ++ ++ /* LOCALE can consist of up to four recognized parts for the XPG syntax: ++ ++ language[_territory[.codeset]][@modifier] ++ ++ and six parts for the CEN syntax: ++ ++ language[_territory][+audience][+special][,[sponsor][_revision]] ++ ++ Beside the first part all of them are allowed to be missing. If ++ the full specified locale is not found, the less specific one are ++ looked for. The various parts will be stripped off according to ++ the following order: ++ (1) revision ++ (2) sponsor ++ (3) special ++ (4) codeset ++ (5) normalized codeset ++ (6) territory ++ (7) audience/modifier ++ */ ++ ++ /* If we have already tested for this locale entry there has to ++ be one data set in the list of loaded domains. */ ++ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, ++ strlen (dirname) + 1, 0, locale, NULL, NULL, ++ NULL, NULL, NULL, NULL, NULL, domainname, 0); ++ if (retval != NULL) ++ { ++ /* We know something about this locale. */ ++ int cnt; ++ ++ if (retval->decided == 0) ++ _nl_load_domain (retval); ++ ++ if (retval->data != NULL) ++ return retval; ++ ++ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) ++ { ++ if (retval->successor[cnt]->decided == 0) ++ _nl_load_domain (retval->successor[cnt]); ++ ++ if (retval->successor[cnt]->data != NULL) ++ break; ++ } ++ return cnt >= 0 ? retval : NULL; ++ /* NOTREACHED */ ++ } ++ ++ /* See whether the locale value is an alias. If yes its value ++ *overwrites* the alias name. No test for the original value is ++ done. */ ++ alias_value = _nl_expand_alias (locale); ++ if (alias_value != NULL) ++ { ++#if defined _LIBC || defined HAVE_STRDUP ++ locale = strdup (alias_value); ++ if (locale == NULL) ++ return NULL; ++#else ++ size_t len = strlen (alias_value) + 1; ++ locale = (char *) malloc (len); ++ if (locale == NULL) ++ return NULL; ++ ++ memcpy (locale, alias_value, len); ++#endif ++ } ++ ++ /* Now we determine the single parts of the locale name. First ++ look for the language. Termination symbols are `_' and `@' if ++ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ ++ mask = _nl_explode_name (locale, &language, &modifier, &territory, ++ &codeset, &normalized_codeset, &special, ++ &sponsor, &revision); ++ ++ /* Create all possible locale entries which might be interested in ++ generalization. */ ++ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, ++ strlen (dirname) + 1, mask, language, territory, ++ codeset, normalized_codeset, modifier, special, ++ sponsor, revision, domainname, 1); ++ if (retval == NULL) ++ /* This means we are out of core. */ ++ return NULL; ++ ++ if (retval->decided == 0) ++ _nl_load_domain (retval); ++ if (retval->data == NULL) ++ { ++ int cnt; ++ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) ++ { ++ if (retval->successor[cnt]->decided == 0) ++ _nl_load_domain (retval->successor[cnt]); ++ if (retval->successor[cnt]->data != NULL) ++ break; ++ } ++ } ++ ++ /* The room for an alias was dynamically allocated. Free it now. */ ++ if (alias_value != NULL) ++ free (locale); ++ ++ return retval; ++} ++ ++ ++#ifdef _LIBC ++static void __attribute__ ((unused)) ++free_mem (void) ++{ ++ struct loaded_l10nfile *runp = _nl_loaded_domains; ++ ++ while (runp != NULL) ++ { ++ struct loaded_l10nfile *here = runp; ++ if (runp->data != NULL) ++ _nl_unload_domain ((struct loaded_domain *) runp->data); ++ runp = runp->next; ++ free (here); ++ } ++} ++ ++text_set_element (__libc_subfreeres, free_mem); ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/gettext.c gtkhtml-0.8.3/intl/gettext.c +--- gtkhtml-0.8.3.orig/intl/gettext.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/gettext.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,70 @@ ++/* Implementation of gettext(3) function. ++ Copyright (C) 1995, 1997 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#ifdef _LIBC ++# define __need_NULL ++# include <stddef.h> ++#else ++# ifdef STDC_HEADERS ++# include <stdlib.h> /* Just for NULL. */ ++# else ++# ifdef HAVE_STRING_H ++# include <string.h> ++# else ++# define NULL ((void *) 0) ++# endif ++# endif ++#endif ++ ++#ifdef _LIBC ++# include <libintl.h> ++#else ++# include "libgettext.h" ++#endif ++ ++/* @@ end of prolog @@ */ ++ ++/* Names for the libintl functions are a problem. They must not clash ++ with existing names and they should follow ANSI C. But this source ++ code is also used in GNU C Library where the names have a __ ++ prefix. So we have to make a difference here. */ ++#ifdef _LIBC ++# define GETTEXT __gettext ++# define DGETTEXT __dgettext ++#else ++# define GETTEXT gettext__ ++# define DGETTEXT dgettext__ ++#endif ++ ++/* Look up MSGID in the current default message catalog for the current ++ LC_MESSAGES locale. If not found, returns MSGID itself (the default ++ text). */ ++char * ++GETTEXT (msgid) ++ const char *msgid; ++{ ++ return DGETTEXT (NULL, msgid); ++} ++ ++#ifdef _LIBC ++/* Alias for function name in GNU C Library. */ ++weak_alias (__gettext, gettext); ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/gettext.h gtkhtml-0.8.3/intl/gettext.h +--- gtkhtml-0.8.3.orig/intl/gettext.h Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/gettext.h Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,105 @@ ++/* Internal header for GNU gettext internationalization functions. ++ Copyright (C) 1995, 1997 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 Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _GETTEXT_H ++#define _GETTEXT_H 1 ++ ++#include <stdio.h> ++ ++#if HAVE_LIMITS_H || _LIBC ++# include <limits.h> ++#endif ++ ++/* @@ end of prolog @@ */ ++ ++/* The magic number of the GNU message catalog format. */ ++#define _MAGIC 0x950412de ++#define _MAGIC_SWAPPED 0xde120495 ++ ++/* Revision number of the currently used .mo (binary) file format. */ ++#define MO_REVISION_NUMBER 0 ++ ++/* The following contortions are an attempt to use the C preprocessor ++ to determine an unsigned integral type that is 32 bits wide. An ++ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but ++ doing that would require that the configure script compile and *run* ++ the resulting executable. Locally running cross-compiled executables ++ is usually not possible. */ ++ ++#if __STDC__ ++# define UINT_MAX_32_BITS 4294967295U ++#else ++# define UINT_MAX_32_BITS 0xFFFFFFFF ++#endif ++ ++/* If UINT_MAX isn't defined, assume it's a 32-bit type. ++ This should be valid for all systems GNU cares about because ++ that doesn't include 16-bit systems, and only modern systems ++ (that certainly have <limits.h>) have 64+-bit integral types. */ ++ ++#ifndef UINT_MAX ++# define UINT_MAX UINT_MAX_32_BITS ++#endif ++ ++#if UINT_MAX == UINT_MAX_32_BITS ++typedef unsigned nls_uint32; ++#else ++# if USHRT_MAX == UINT_MAX_32_BITS ++typedef unsigned short nls_uint32; ++# else ++# if ULONG_MAX == UINT_MAX_32_BITS ++typedef unsigned long nls_uint32; ++# else ++ /* The following line is intended to throw an error. Using #error is ++ not portable enough. */ ++ "Cannot determine unsigned 32-bit data type." ++# endif ++# endif ++#endif ++ ++ ++/* Header for binary .mo file format. */ ++struct mo_file_header ++{ ++ /* The magic number. */ ++ nls_uint32 magic; ++ /* The revision number of the file format. */ ++ nls_uint32 revision; ++ /* The number of strings pairs. */ ++ nls_uint32 nstrings; ++ /* Offset of table with start offsets of original strings. */ ++ nls_uint32 orig_tab_offset; ++ /* Offset of table with start offsets of translation strings. */ ++ nls_uint32 trans_tab_offset; ++ /* Size of hashing table. */ ++ nls_uint32 hash_tab_size; ++ /* Offset of first hashing entry. */ ++ nls_uint32 hash_tab_offset; ++}; ++ ++struct string_desc ++{ ++ /* Length of addressed string. */ ++ nls_uint32 length; ++ /* Offset of string in file. */ ++ nls_uint32 offset; ++}; ++ ++/* @@ begin of epilog @@ */ ++ ++#endif /* gettext.h */ +diff -urP gtkhtml-0.8.3.orig/intl/gettextP.h gtkhtml-0.8.3/intl/gettextP.h +--- gtkhtml-0.8.3.orig/intl/gettextP.h Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/gettextP.h Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,89 @@ ++/* Header describing internals of gettext library ++ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. ++ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++ ++ 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. */ ++ ++#ifndef _GETTEXTP_H ++#define _GETTEXTP_H ++ ++#include "loadinfo.h" ++ ++/* @@ end of prolog @@ */ ++ ++#ifndef PARAMS ++# if __STDC__ ++# define PARAMS(args) args ++# else ++# define PARAMS(args) () ++# endif ++#endif ++ ++#ifndef internal_function ++# define internal_function ++#endif ++ ++#ifndef W ++# define W(flag, data) ((flag) ? SWAP (data) : (data)) ++#endif ++ ++ ++#ifdef _LIBC ++# include <byteswap.h> ++# define SWAP(i) bswap_32 (i) ++#else ++static nls_uint32 SWAP PARAMS ((nls_uint32 i)); ++ ++static inline nls_uint32 ++SWAP (i) ++ nls_uint32 i; ++{ ++ return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); ++} ++#endif ++ ++ ++struct loaded_domain ++{ ++ const char *data; ++ int use_mmap; ++ size_t mmap_size; ++ int must_swap; ++ nls_uint32 nstrings; ++ struct string_desc *orig_tab; ++ struct string_desc *trans_tab; ++ nls_uint32 hash_size; ++ nls_uint32 *hash_tab; ++}; ++ ++struct binding ++{ ++ struct binding *next; ++ char *domainname; ++ char *dirname; ++}; ++ ++struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, ++ char *__locale, ++ const char *__domainname)) ++ internal_function; ++void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain)) ++ internal_function; ++void _nl_unload_domain PARAMS ((struct loaded_domain *__domain)) ++ internal_function; ++ ++/* @@ begin of epilog @@ */ ++ ++#endif /* gettextP.h */ +diff -urP gtkhtml-0.8.3.orig/intl/hash-string.h gtkhtml-0.8.3/intl/hash-string.h +--- gtkhtml-0.8.3.orig/intl/hash-string.h Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/hash-string.h Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,59 @@ ++/* Implements a string hashing function. ++ Copyright (C) 1995, 1997 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 Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* @@ end of prolog @@ */ ++ ++#ifndef PARAMS ++# if __STDC__ ++# define PARAMS(Args) Args ++# else ++# define PARAMS(Args) () ++# endif ++#endif ++ ++/* We assume to have `unsigned long int' value with at least 32 bits. */ ++#define HASHWORDBITS 32 ++ ++ ++/* Defines the so called `hashpjw' function by P.J. Weinberger ++ [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, ++ 1986, 1987 Bell Telephone Laboratories, Inc.] */ ++static unsigned long hash_string PARAMS ((const char *__str_param)); ++ ++static inline unsigned long ++hash_string (str_param) ++ const char *str_param; ++{ ++ unsigned long int hval, g; ++ const char *str = str_param; ++ ++ /* Compute the hash value for the given string. */ ++ hval = 0; ++ while (*str != '\0') ++ { ++ hval <<= 4; ++ hval += (unsigned long) *str++; ++ g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4)); ++ if (g != 0) ++ { ++ hval ^= g >> (HASHWORDBITS - 8); ++ hval ^= g; ++ } ++ } ++ return hval; ++} +diff -urP gtkhtml-0.8.3.orig/intl/intl-compat.c gtkhtml-0.8.3/intl/intl-compat.c +--- gtkhtml-0.8.3.orig/intl/intl-compat.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/intl-compat.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,76 @@ ++/* intl-compat.c - Stub functions to call gettext functions from GNU gettext ++ Library. ++ Copyright (C) 1995 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include "libgettext.h" ++ ++/* @@ end of prolog @@ */ ++ ++ ++#undef gettext ++#undef dgettext ++#undef dcgettext ++#undef textdomain ++#undef bindtextdomain ++ ++ ++char * ++bindtextdomain (domainname, dirname) ++ const char *domainname; ++ const char *dirname; ++{ ++ return bindtextdomain__ (domainname, dirname); ++} ++ ++ ++char * ++dcgettext (domainname, msgid, category) ++ const char *domainname; ++ const char *msgid; ++ int category; ++{ ++ return dcgettext__ (domainname, msgid, category); ++} ++ ++ ++char * ++dgettext (domainname, msgid) ++ const char *domainname; ++ const char *msgid; ++{ ++ return dgettext__ (domainname, msgid); ++} ++ ++ ++char * ++gettext (msgid) ++ const char *msgid; ++{ ++ return gettext__ (msgid); ++} ++ ++ ++char * ++textdomain (domainname) ++ const char *domainname; ++{ ++ return textdomain__ (domainname); ++} +diff -urP gtkhtml-0.8.3.orig/intl/l10nflist.c gtkhtml-0.8.3/intl/l10nflist.c +--- gtkhtml-0.8.3.orig/intl/l10nflist.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/l10nflist.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,411 @@ ++/* Handle list of needed message catalogs ++ Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. ++ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++ ++ 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++ ++#if defined HAVE_STRING_H || defined _LIBC ++# ifndef _GNU_SOURCE ++# define _GNU_SOURCE 1 ++# endif ++# include <string.h> ++#else ++# include <strings.h> ++# ifndef memcpy ++# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) ++# endif ++#endif ++#if !HAVE_STRCHR && !defined _LIBC ++# ifndef strchr ++# define strchr index ++# endif ++#endif ++ ++#if defined _LIBC || defined HAVE_ARGZ_H ++# include <argz.h> ++#endif ++#include <ctype.h> ++#include <sys/types.h> ++ ++#if defined STDC_HEADERS || defined _LIBC ++# include <stdlib.h> ++#endif ++ ++#include "loadinfo.h" ++ ++/* On some strange systems still no definition of NULL is found. Sigh! */ ++#ifndef NULL ++# if defined __STDC__ && __STDC__ ++# define NULL ((void *) 0) ++# else ++# define NULL 0 ++# endif ++#endif ++ ++/* @@ end of prolog @@ */ ++ ++#ifdef _LIBC ++/* Rename the non ANSI C functions. This is required by the standard ++ because some ANSI C functions will require linking with this object ++ file and the name space must not be polluted. */ ++# ifndef stpcpy ++# define stpcpy(dest, src) __stpcpy(dest, src) ++# endif ++#else ++# ifndef HAVE_STPCPY ++static char *stpcpy PARAMS ((char *dest, const char *src)); ++# endif ++#endif ++ ++/* Define function which are usually not available. */ ++ ++#if !defined _LIBC && !defined HAVE___ARGZ_COUNT ++/* Returns the number of strings in ARGZ. */ ++static size_t argz_count__ PARAMS ((const char *argz, size_t len)); ++ ++static size_t ++argz_count__ (argz, len) ++ const char *argz; ++ size_t len; ++{ ++ size_t count = 0; ++ while (len > 0) ++ { ++ size_t part_len = strlen (argz); ++ argz += part_len + 1; ++ len -= part_len + 1; ++ count++; ++ } ++ return count; ++} ++# undef __argz_count ++# define __argz_count(argz, len) argz_count__ (argz, len) ++#endif /* !_LIBC && !HAVE___ARGZ_COUNT */ ++ ++#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY ++/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's ++ except the last into the character SEP. */ ++static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep)); ++ ++static void ++argz_stringify__ (argz, len, sep) ++ char *argz; ++ size_t len; ++ int sep; ++{ ++ while (len > 0) ++ { ++ size_t part_len = strlen (argz); ++ argz += part_len; ++ len -= part_len + 1; ++ if (len > 0) ++ *argz++ = sep; ++ } ++} ++# undef __argz_stringify ++# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep) ++#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */ ++ ++#if !defined _LIBC && !defined HAVE___ARGZ_NEXT ++static char *argz_next__ PARAMS ((char *argz, size_t argz_len, ++ const char *entry)); ++ ++static char * ++argz_next__ (argz, argz_len, entry) ++ char *argz; ++ size_t argz_len; ++ const char *entry; ++{ ++ if (entry) ++ { ++ if (entry < argz + argz_len) ++ entry = strchr (entry, '\0') + 1; ++ ++ return entry >= argz + argz_len ? NULL : (char *) entry; ++ } ++ else ++ if (argz_len > 0) ++ return argz; ++ else ++ return 0; ++} ++# undef __argz_next ++# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry) ++#endif /* !_LIBC && !HAVE___ARGZ_NEXT */ ++ ++ ++/* Return number of bits set in X. */ ++static int pop PARAMS ((int x)); ++ ++static inline int ++pop (x) ++ int x; ++{ ++ /* We assume that no more than 16 bits are used. */ ++ x = ((x & ~0x5555) >> 1) + (x & 0x5555); ++ x = ((x & ~0x3333) >> 2) + (x & 0x3333); ++ x = ((x >> 4) + x) & 0x0f0f; ++ x = ((x >> 8) + x) & 0xff; ++ ++ return x; ++} ++ ++ ++struct loaded_l10nfile * ++_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language, ++ territory, codeset, normalized_codeset, modifier, special, ++ sponsor, revision, filename, do_allocate) ++ struct loaded_l10nfile **l10nfile_list; ++ const char *dirlist; ++ size_t dirlist_len; ++ int mask; ++ const char *language; ++ const char *territory; ++ const char *codeset; ++ const char *normalized_codeset; ++ const char *modifier; ++ const char *special; ++ const char *sponsor; ++ const char *revision; ++ const char *filename; ++ int do_allocate; ++{ ++ char *abs_filename; ++ struct loaded_l10nfile *last = NULL; ++ struct loaded_l10nfile *retval; ++ char *cp; ++ size_t entries; ++ int cnt; ++ ++ /* Allocate room for the full file name. */ ++ abs_filename = (char *) malloc (dirlist_len ++ + strlen (language) ++ + ((mask & TERRITORY) != 0 ++ ? strlen (territory) + 1 : 0) ++ + ((mask & XPG_CODESET) != 0 ++ ? strlen (codeset) + 1 : 0) ++ + ((mask & XPG_NORM_CODESET) != 0 ++ ? strlen (normalized_codeset) + 1 : 0) ++ + (((mask & XPG_MODIFIER) != 0 ++ || (mask & CEN_AUDIENCE) != 0) ++ ? strlen (modifier) + 1 : 0) ++ + ((mask & CEN_SPECIAL) != 0 ++ ? strlen (special) + 1 : 0) ++ + (((mask & CEN_SPONSOR) != 0 ++ || (mask & CEN_REVISION) != 0) ++ ? (1 + ((mask & CEN_SPONSOR) != 0 ++ ? strlen (sponsor) + 1 : 0) ++ + ((mask & CEN_REVISION) != 0 ++ ? strlen (revision) + 1 : 0)) : 0) ++ + 1 + strlen (filename) + 1); ++ ++ if (abs_filename == NULL) ++ return NULL; ++ ++ retval = NULL; ++ last = NULL; ++ ++ /* Construct file name. */ ++ memcpy (abs_filename, dirlist, dirlist_len); ++ __argz_stringify (abs_filename, dirlist_len, ':'); ++ cp = abs_filename + (dirlist_len - 1); ++ *cp++ = '/'; ++ cp = stpcpy (cp, language); ++ ++ if ((mask & TERRITORY) != 0) ++ { ++ *cp++ = '_'; ++ cp = stpcpy (cp, territory); ++ } ++ if ((mask & XPG_CODESET) != 0) ++ { ++ *cp++ = '.'; ++ cp = stpcpy (cp, codeset); ++ } ++ if ((mask & XPG_NORM_CODESET) != 0) ++ { ++ *cp++ = '.'; ++ cp = stpcpy (cp, normalized_codeset); ++ } ++ if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0) ++ { ++ /* This component can be part of both syntaces but has different ++ leading characters. For CEN we use `+', else `@'. */ ++ *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@'; ++ cp = stpcpy (cp, modifier); ++ } ++ if ((mask & CEN_SPECIAL) != 0) ++ { ++ *cp++ = '+'; ++ cp = stpcpy (cp, special); ++ } ++ if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0) ++ { ++ *cp++ = ','; ++ if ((mask & CEN_SPONSOR) != 0) ++ cp = stpcpy (cp, sponsor); ++ if ((mask & CEN_REVISION) != 0) ++ { ++ *cp++ = '_'; ++ cp = stpcpy (cp, revision); ++ } ++ } ++ ++ *cp++ = '/'; ++ stpcpy (cp, filename); ++ ++ /* Look in list of already loaded domains whether it is already ++ available. */ ++ last = NULL; ++ for (retval = *l10nfile_list; retval != NULL; retval = retval->next) ++ if (retval->filename != NULL) ++ { ++ int compare = strcmp (retval->filename, abs_filename); ++ if (compare == 0) ++ /* We found it! */ ++ break; ++ if (compare < 0) ++ { ++ /* It's not in the list. */ ++ retval = NULL; ++ break; ++ } ++ ++ last = retval; ++ } ++ ++ if (retval != NULL || do_allocate == 0) ++ { ++ free (abs_filename); ++ return retval; ++ } ++ ++ retval = (struct loaded_l10nfile *) ++ malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len) ++ * (1 << pop (mask)) ++ * sizeof (struct loaded_l10nfile *))); ++ if (retval == NULL) ++ return NULL; ++ ++ retval->filename = abs_filename; ++ retval->decided = (__argz_count (dirlist, dirlist_len) != 1 ++ || ((mask & XPG_CODESET) != 0 ++ && (mask & XPG_NORM_CODESET) != 0)); ++ retval->data = NULL; ++ ++ if (last == NULL) ++ { ++ retval->next = *l10nfile_list; ++ *l10nfile_list = retval; ++ } ++ else ++ { ++ retval->next = last->next; ++ last->next = retval; ++ } ++ ++ entries = 0; ++ /* If the DIRLIST is a real list the RETVAL entry corresponds not to ++ a real file. So we have to use the DIRLIST separation mechanism ++ of the inner loop. */ ++ cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask; ++ for (; cnt >= 0; --cnt) ++ if ((cnt & ~mask) == 0 ++ && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0) ++ && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0)) ++ { ++ /* Iterate over all elements of the DIRLIST. */ ++ char *dir = NULL; ++ ++ while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir)) ++ != NULL) ++ retval->successor[entries++] ++ = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt, ++ language, territory, codeset, ++ normalized_codeset, modifier, special, ++ sponsor, revision, filename, 1); ++ } ++ retval->successor[entries] = NULL; ++ ++ return retval; ++} ++ ++/* Normalize codeset name. There is no standard for the codeset ++ names. Normalization allows the user to use any of the common ++ names. */ ++const char * ++_nl_normalize_codeset (codeset, name_len) ++ const unsigned char *codeset; ++ size_t name_len; ++{ ++ int len = 0; ++ int only_digit = 1; ++ char *retval; ++ char *wp; ++ size_t cnt; ++ ++ for (cnt = 0; cnt < name_len; ++cnt) ++ if (isalnum (codeset[cnt])) ++ { ++ ++len; ++ ++ if (isalpha (codeset[cnt])) ++ only_digit = 0; ++ } ++ ++ retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1); ++ ++ if (retval != NULL) ++ { ++ if (only_digit) ++ wp = stpcpy (retval, "iso"); ++ else ++ wp = retval; ++ ++ for (cnt = 0; cnt < name_len; ++cnt) ++ if (isalpha (codeset[cnt])) ++ *wp++ = tolower (codeset[cnt]); ++ else if (isdigit (codeset[cnt])) ++ *wp++ = codeset[cnt]; ++ ++ *wp = '\0'; ++ } ++ ++ return (const char *) retval; ++} ++ ++ ++/* @@ begin of epilog @@ */ ++ ++/* We don't want libintl.a to depend on any other library. So we ++ avoid the non-standard function stpcpy. In GNU C Library this ++ function is available, though. Also allow the symbol HAVE_STPCPY ++ to be defined. */ ++#if !_LIBC && !HAVE_STPCPY ++static char * ++stpcpy (dest, src) ++ char *dest; ++ const char *src; ++{ ++ while ((*dest++ = *src++) != '\0') ++ /* Do nothing. */ ; ++ return dest - 1; ++} ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/libgettext.h gtkhtml-0.8.3/intl/libgettext.h +--- gtkhtml-0.8.3.orig/intl/libgettext.h Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/libgettext.h Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,182 @@ ++/* Message catalogs for internationalization. ++ Copyright (C) 1995, 1996, 1997, 1998 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. */ ++ ++/* Because on some systems (e.g. Solaris) we sometimes have to include ++ the systems libintl.h as well as this file we have more complex ++ include protection above. But the systems header might perhaps also ++ define _LIBINTL_H and therefore we have to protect the definition here. */ ++ ++#if !defined _LIBINTL_H || !defined _LIBGETTEXT_H ++#ifndef _LIBINTL_H ++# define _LIBINTL_H 1 ++#endif ++#define _LIBGETTEXT_H 1 ++ ++/* We define an additional symbol to signal that we use the GNU ++ implementation of gettext. */ ++#define __USE_GNU_GETTEXT 1 ++ ++#include <sys/types.h> ++ ++#if HAVE_LOCALE_H ++# include <locale.h> ++#endif ++ ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/* @@ end of prolog @@ */ ++ ++#ifndef PARAMS ++# if __STDC__ || defined __cplusplus ++# define PARAMS(args) args ++# else ++# define PARAMS(args) () ++# endif ++#endif ++ ++#ifndef NULL ++# if !defined __cplusplus || defined __GNUC__ ++# define NULL ((void *) 0) ++# else ++# define NULL (0) ++# endif ++#endif ++ ++#if !HAVE_LC_MESSAGES ++/* This value determines the behaviour of the gettext() and dgettext() ++ function. But some system does not have this defined. Define it ++ to a default value. */ ++# define LC_MESSAGES (-1) ++#endif ++ ++ ++/* Declarations for gettext-using-catgets interface. Derived from ++ Jim Meyering's libintl.h. */ ++struct _msg_ent ++{ ++ const char *_msg; ++ int _msg_number; ++}; ++ ++ ++#if HAVE_CATGETS ++/* These two variables are defined in the automatically by po-to-tbl.sed ++ generated file `cat-id-tbl.c'. */ ++extern const struct _msg_ent _msg_tbl[]; ++extern int _msg_tbl_length; ++#endif ++ ++ ++/* For automatical extraction of messages sometimes no real ++ translation is needed. Instead the string itself is the result. */ ++#define gettext_noop(Str) (Str) ++ ++/* Look up MSGID in the current default message catalog for the current ++ LC_MESSAGES locale. If not found, returns MSGID itself (the default ++ text). */ ++extern char *gettext PARAMS ((const char *__msgid)); ++extern char *gettext__ PARAMS ((const char *__msgid)); ++ ++/* Look up MSGID in the DOMAINNAME message catalog for the current ++ LC_MESSAGES locale. */ ++extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid)); ++extern char *dgettext__ PARAMS ((const char *__domainname, ++ const char *__msgid)); ++ ++/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY ++ locale. */ ++extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid, ++ int __category)); ++extern char *dcgettext__ PARAMS ((const char *__domainname, ++ const char *__msgid, int __category)); ++ ++ ++/* Set the current default message catalog to DOMAINNAME. ++ If DOMAINNAME is null, return the current default. ++ If DOMAINNAME is "", reset to the default of "messages". */ ++extern char *textdomain PARAMS ((const char *__domainname)); ++extern char *textdomain__ PARAMS ((const char *__domainname)); ++ ++/* Specify that the DOMAINNAME message catalog will be found ++ in DIRNAME rather than in the system locale data base. */ ++extern char *bindtextdomain PARAMS ((const char *__domainname, ++ const char *__dirname)); ++extern char *bindtextdomain__ PARAMS ((const char *__domainname, ++ const char *__dirname)); ++ ++#if ENABLE_NLS ++ ++/* Solaris 2.3 has the gettext function but dcgettext is missing. ++ So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4 ++ has dcgettext. */ ++# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT) ++ ++# define gettext(Msgid) \ ++ dgettext (NULL, Msgid) ++ ++# define dgettext(Domainname, Msgid) \ ++ dcgettext (Domainname, Msgid, LC_MESSAGES) ++ ++# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7 ++/* This global variable is defined in loadmsgcat.c. We need a sign, ++ whether a new catalog was loaded, which can be associated with all ++ translations. */ ++extern int _nl_msg_cat_cntr; ++ ++# define dcgettext(Domainname, Msgid, Category) \ ++ (__extension__ \ ++ ({ \ ++ char *__result; \ ++ if (__builtin_constant_p (Msgid)) \ ++ { \ ++ static char *__translation__; \ ++ static int __catalog_counter__; \ ++ if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \ ++ { \ ++ __translation__ = \ ++ dcgettext__ (Domainname, Msgid, Category); \ ++ __catalog_counter__ = _nl_msg_cat_cntr; \ ++ } \ ++ __result = __translation__; \ ++ } \ ++ else \ ++ __result = dcgettext__ (Domainname, Msgid, Category); \ ++ __result; \ ++ })) ++# endif ++# endif ++ ++#else ++ ++# define gettext(Msgid) (Msgid) ++# define dgettext(Domainname, Msgid) (Msgid) ++# define dcgettext(Domainname, Msgid, Category) (Msgid) ++# define textdomain(Domainname) ((char *) Domainname) ++# define bindtextdomain(Domainname, Dirname) ((char *) Dirname) ++ ++#endif ++ ++/* @@ begin of epilog @@ */ ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/linux-msg.sed gtkhtml-0.8.3/intl/linux-msg.sed +--- gtkhtml-0.8.3.orig/intl/linux-msg.sed Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/linux-msg.sed Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,100 @@ ++# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file ++# Copyright (C) 1995 Free Software Foundation, Inc. ++# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++# ++# 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. ++# ++# ++# The first directive in the .msg should be the definition of the ++# message set number. We use always set number 1. ++# ++1 { ++ i\ ++$set 1 # Automatically created by po2msg.sed ++ h ++ s/.*/0/ ++ x ++} ++# ++# Mitch's old catalog format does not allow comments. ++# ++# We copy the original message as a comment into the .msg file. ++# ++/^msgid/ { ++ s/msgid[ ]*"// ++# ++# This does not work now with the new format. ++# /"$/! { ++# s/\\$// ++# s/$/ ... (more lines following)"/ ++# } ++ x ++# The following nice solution is by ++# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de> ++ td ++# Increment a decimal number in pattern space. ++# First hide trailing `9' digits. ++ :d ++ s/9\(_*\)$/_\1/ ++ td ++# Assure at least one digit is available. ++ s/^\(_*\)$/0\1/ ++# Increment the last digit. ++ s/8\(_*\)$/9\1/ ++ s/7\(_*\)$/8\1/ ++ s/6\(_*\)$/7\1/ ++ s/5\(_*\)$/6\1/ ++ s/4\(_*\)$/5\1/ ++ s/3\(_*\)$/4\1/ ++ s/2\(_*\)$/3\1/ ++ s/1\(_*\)$/2\1/ ++ s/0\(_*\)$/1\1/ ++# Convert the hidden `9' digits to `0's. ++ s/_/0/g ++ x ++ G ++ s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p ++} ++# ++# The .msg file contains, other then the .po file, only the translations ++# but each given a unique ID. Starting from 1 and incrementing by 1 for ++# each message we assign them to the messages. ++# It is important that the .po file used to generate the cat-id-tbl.c file ++# (with po-to-tbl) is the same as the one used here. (At least the order ++# of declarations must not be changed.) ++# ++/^msgstr/ { ++ s/msgstr[ ]*"\(.*\)"/# \1/ ++# Clear substitution flag. ++ tb ++# Append the next line. ++ :b ++ N ++# Look whether second part is continuation line. ++ s/\(.*\n\)"\(.*\)"/\1\2/ ++# Yes, then branch. ++ ta ++ P ++ D ++# Note that D includes a jump to the start!! ++# We found a continuation line. But before printing insert '\'. ++ :a ++ s/\(.*\)\(\n.*\)/\1\\\2/ ++ P ++# We cannot use D here. ++ s/.*\n\(.*\)/\1/ ++ tb ++} ++d +diff -urP gtkhtml-0.8.3.orig/intl/loadinfo.h gtkhtml-0.8.3/intl/loadinfo.h +--- gtkhtml-0.8.3.orig/intl/loadinfo.h Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/loadinfo.h Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,76 @@ ++/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper <drepper@cygnus.com>, 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, 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. */ ++ ++#ifndef PARAMS ++# if __STDC__ ++# define PARAMS(args) args ++# else ++# define PARAMS(args) () ++# endif ++#endif ++ ++/* Encoding of locale name parts. */ ++#define CEN_REVISION 1 ++#define CEN_SPONSOR 2 ++#define CEN_SPECIAL 4 ++#define XPG_NORM_CODESET 8 ++#define XPG_CODESET 16 ++#define TERRITORY 32 ++#define CEN_AUDIENCE 64 ++#define XPG_MODIFIER 128 ++ ++#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE) ++#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER) ++ ++ ++struct loaded_l10nfile ++{ ++ const char *filename; ++ int decided; ++ ++ const void *data; ++ ++ struct loaded_l10nfile *next; ++ struct loaded_l10nfile *successor[1]; ++}; ++ ++ ++extern const char *_nl_normalize_codeset PARAMS ((const unsigned char *codeset, ++ size_t name_len)); ++ ++extern struct loaded_l10nfile * ++_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list, ++ const char *dirlist, size_t dirlist_len, int mask, ++ const char *language, const char *territory, ++ const char *codeset, ++ const char *normalized_codeset, ++ const char *modifier, const char *special, ++ const char *sponsor, const char *revision, ++ const char *filename, int do_allocate)); ++ ++ ++extern const char *_nl_expand_alias PARAMS ((const char *name)); ++ ++extern int _nl_explode_name PARAMS ((char *name, const char **language, ++ const char **modifier, ++ const char **territory, ++ const char **codeset, ++ const char **normalized_codeset, ++ const char **special, ++ const char **sponsor, ++ const char **revision)); +diff -urP gtkhtml-0.8.3.orig/intl/loadmsgcat.c gtkhtml-0.8.3/intl/loadmsgcat.c +--- gtkhtml-0.8.3.orig/intl/loadmsgcat.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/loadmsgcat.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,222 @@ ++/* Load needed message catalogs. ++ Copyright (C) 1995, 1996, 1997, 1998 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include <fcntl.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++ ++#if defined STDC_HEADERS || defined _LIBC ++# include <stdlib.h> ++#endif ++ ++#if defined HAVE_UNISTD_H || defined _LIBC ++# include <unistd.h> ++#endif ++ ++#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC ++# include <sys/mman.h> ++#endif ++ ++#include "gettext.h" ++#include "gettextP.h" ++ ++/* @@ end of prolog @@ */ ++ ++#ifdef _LIBC ++/* Rename the non ISO C functions. This is required by the standard ++ because some ISO C functions will require linking with this object ++ file and the name space must not be polluted. */ ++# define open __open ++# define close __close ++# define read __read ++# define mmap __mmap ++# define munmap __munmap ++#endif ++ ++/* We need a sign, whether a new catalog was loaded, which can be associated ++ with all translations. This is important if the translations are ++ cached by one of GCC's features. */ ++int _nl_msg_cat_cntr = 0; ++ ++ ++/* Load the message catalogs specified by FILENAME. If it is no valid ++ message catalog do nothing. */ ++void ++internal_function ++_nl_load_domain (domain_file) ++ struct loaded_l10nfile *domain_file; ++{ ++ int fd; ++ size_t size; ++ struct stat st; ++ struct mo_file_header *data = (struct mo_file_header *) -1; ++#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ ++ || defined _LIBC ++ int use_mmap = 0; ++#endif ++ struct loaded_domain *domain; ++ ++ domain_file->decided = 1; ++ domain_file->data = NULL; ++ ++ /* If the record does not represent a valid locale the FILENAME ++ might be NULL. This can happen when according to the given ++ specification the locale file name is different for XPG and CEN ++ syntax. */ ++ if (domain_file->filename == NULL) ++ return; ++ ++ /* Try to open the addressed file. */ ++ fd = open (domain_file->filename, O_RDONLY); ++ if (fd == -1) ++ return; ++ ++ /* We must know about the size of the file. */ ++ if (fstat (fd, &st) != 0 ++ || (size = (size_t) st.st_size) != st.st_size ++ || size < sizeof (struct mo_file_header)) ++ { ++ /* Something went wrong. */ ++ close (fd); ++ return; ++ } ++ ++#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ ++ || defined _LIBC ++ /* Now we are ready to load the file. If mmap() is available we try ++ this first. If not available or it failed we try to load it. */ ++ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ, ++ MAP_PRIVATE, fd, 0); ++ ++ if (data != (struct mo_file_header *) -1) ++ { ++ /* mmap() call was successful. */ ++ close (fd); ++ use_mmap = 1; ++ } ++#endif ++ ++ /* If the data is not yet available (i.e. mmap'ed) we try to load ++ it manually. */ ++ if (data == (struct mo_file_header *) -1) ++ { ++ size_t to_read; ++ char *read_ptr; ++ ++ data = (struct mo_file_header *) malloc (size); ++ if (data == NULL) ++ return; ++ ++ to_read = size; ++ read_ptr = (char *) data; ++ do ++ { ++ long int nb = (long int) read (fd, read_ptr, to_read); ++ if (nb == -1) ++ { ++ close (fd); ++ return; ++ } ++ ++ read_ptr += nb; ++ to_read -= nb; ++ } ++ while (to_read > 0); ++ ++ close (fd); ++ } ++ ++ /* Using the magic number we can test whether it really is a message ++ catalog file. */ ++ if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED) ++ { ++ /* The magic number is wrong: not a message catalog file. */ ++#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ ++ || defined _LIBC ++ if (use_mmap) ++ munmap ((caddr_t) data, size); ++ else ++#endif ++ free (data); ++ return; ++ } ++ ++ domain_file->data ++ = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); ++ if (domain_file->data == NULL) ++ return; ++ ++ domain = (struct loaded_domain *) domain_file->data; ++ domain->data = (char *) data; ++#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ ++ || defined _LIBC ++ domain->use_mmap = use_mmap; ++#endif ++ domain->mmap_size = size; ++ domain->must_swap = data->magic != _MAGIC; ++ ++ /* Fill in the information about the available tables. */ ++ switch (W (domain->must_swap, data->revision)) ++ { ++ case 0: ++ domain->nstrings = W (domain->must_swap, data->nstrings); ++ domain->orig_tab = (struct string_desc *) ++ ((char *) data + W (domain->must_swap, data->orig_tab_offset)); ++ domain->trans_tab = (struct string_desc *) ++ ((char *) data + W (domain->must_swap, data->trans_tab_offset)); ++ domain->hash_size = W (domain->must_swap, data->hash_tab_size); ++ domain->hash_tab = (nls_uint32 *) ++ ((char *) data + W (domain->must_swap, data->hash_tab_offset)); ++ break; ++ default: ++ /* This is an illegal revision. */ ++#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ ++ || defined _LIBC ++ if (use_mmap) ++ munmap ((caddr_t) data, size); ++ else ++#endif ++ free (data); ++ free (domain); ++ domain_file->data = NULL; ++ return; ++ } ++ ++ /* Show that one domain is changed. This might make some cached ++ translations invalid. */ ++ ++_nl_msg_cat_cntr; ++} ++ ++ ++#ifdef _LIBC ++void ++internal_function ++_nl_unload_domain (domain) ++ struct loaded_domain *domain; ++{ ++ if (domain->use_mmap) ++ munmap ((caddr_t) domain->data, domain->mmap_size); ++ else ++ free ((void *) domain->data); ++ ++ free (domain); ++} ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/localealias.c gtkhtml-0.8.3/intl/localealias.c +--- gtkhtml-0.8.3.orig/intl/localealias.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/localealias.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,424 @@ ++/* Handle aliases for locale names. ++ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. ++ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++ ++ 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include <ctype.h> ++#include <stdio.h> ++#include <sys/types.h> ++ ++#ifdef __GNUC__ ++# define alloca __builtin_alloca ++# define HAVE_ALLOCA 1 ++#else ++# if defined HAVE_ALLOCA_H || defined _LIBC ++# include <alloca.h> ++# else ++# ifdef _AIX ++ #pragma alloca ++# else ++# ifndef alloca ++char *alloca (); ++# endif ++# endif ++# endif ++#endif ++ ++#if defined STDC_HEADERS || defined _LIBC ++# include <stdlib.h> ++#else ++char *getenv (); ++# ifdef HAVE_MALLOC_H ++# include <malloc.h> ++# else ++void free (); ++# endif ++#endif ++ ++#if defined HAVE_STRING_H || defined _LIBC ++# ifndef _GNU_SOURCE ++# define _GNU_SOURCE 1 ++# endif ++# include <string.h> ++#else ++# include <strings.h> ++# ifndef memcpy ++# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) ++# endif ++#endif ++#if !HAVE_STRCHR && !defined _LIBC ++# ifndef strchr ++# define strchr index ++# endif ++#endif ++ ++#include "gettext.h" ++#include "gettextP.h" ++ ++/* @@ end of prolog @@ */ ++ ++#ifdef _LIBC ++/* Rename the non ANSI C functions. This is required by the standard ++ because some ANSI C functions will require linking with this object ++ file and the name space must not be polluted. */ ++# define strcasecmp __strcasecmp ++ ++# define mempcpy __mempcpy ++# define HAVE_MEMPCPY 1 ++ ++/* We need locking here since we can be called from different places. */ ++# include <bits/libc-lock.h> ++ ++__libc_lock_define_initialized (static, lock); ++#endif ++ ++ ++/* For those loosing systems which don't have `alloca' we have to add ++ some additional code emulating it. */ ++#ifdef HAVE_ALLOCA ++/* Nothing has to be done. */ ++# define ADD_BLOCK(list, address) /* nothing */ ++# define FREE_BLOCKS(list) /* nothing */ ++#else ++struct block_list ++{ ++ void *address; ++ struct block_list *next; ++}; ++# define ADD_BLOCK(list, addr) \ ++ do { \ ++ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ ++ /* If we cannot get a free block we cannot add the new element to \ ++ the list. */ \ ++ if (newp != NULL) { \ ++ newp->address = (addr); \ ++ newp->next = (list); \ ++ (list) = newp; \ ++ } \ ++ } while (0) ++# define FREE_BLOCKS(list) \ ++ do { \ ++ while (list != NULL) { \ ++ struct block_list *old = list; \ ++ list = list->next; \ ++ free (old); \ ++ } \ ++ } while (0) ++# undef alloca ++# define alloca(size) (malloc (size)) ++#endif /* have alloca */ ++ ++ ++struct alias_map ++{ ++ const char *alias; ++ const char *value; ++}; ++ ++ ++static char *string_space = NULL; ++static size_t string_space_act = 0; ++static size_t string_space_max = 0; ++static struct alias_map *map; ++static size_t nmap = 0; ++static size_t maxmap = 0; ++ ++ ++/* Prototypes for local functions. */ ++static size_t read_alias_file PARAMS ((const char *fname, int fname_len)) ++ internal_function; ++static void extend_alias_table PARAMS ((void)); ++static int alias_compare PARAMS ((const struct alias_map *map1, ++ const struct alias_map *map2)); ++ ++ ++const char * ++_nl_expand_alias (name) ++ const char *name; ++{ ++ static const char *locale_alias_path = LOCALE_ALIAS_PATH; ++ struct alias_map *retval; ++ const char *result = NULL; ++ size_t added; ++ ++#ifdef _LIBC ++ __libc_lock_lock (lock); ++#endif ++ ++ do ++ { ++ struct alias_map item; ++ ++ item.alias = name; ++ ++ if (nmap > 0) ++ retval = (struct alias_map *) bsearch (&item, map, nmap, ++ sizeof (struct alias_map), ++ (int (*) PARAMS ((const void *, ++ const void *)) ++ ) alias_compare); ++ else ++ retval = NULL; ++ ++ /* We really found an alias. Return the value. */ ++ if (retval != NULL) ++ { ++ result = retval->value; ++ break; ++ } ++ ++ /* Perhaps we can find another alias file. */ ++ added = 0; ++ while (added == 0 && locale_alias_path[0] != '\0') ++ { ++ const char *start; ++ ++ while (locale_alias_path[0] == ':') ++ ++locale_alias_path; ++ start = locale_alias_path; ++ ++ while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':') ++ ++locale_alias_path; ++ ++ if (start < locale_alias_path) ++ added = read_alias_file (start, locale_alias_path - start); ++ } ++ } ++ while (added != 0); ++ ++#ifdef _LIBC ++ __libc_lock_unlock (lock); ++#endif ++ ++ return result; ++} ++ ++ ++static size_t ++internal_function ++read_alias_file (fname, fname_len) ++ const char *fname; ++ int fname_len; ++{ ++#ifndef HAVE_ALLOCA ++ struct block_list *block_list = NULL; ++#endif ++ FILE *fp; ++ char *full_fname; ++ size_t added; ++ static const char aliasfile[] = "/locale.alias"; ++ ++ full_fname = (char *) alloca (fname_len + sizeof aliasfile); ++ ADD_BLOCK (block_list, full_fname); ++#ifdef HAVE_MEMPCPY ++ mempcpy (mempcpy (full_fname, fname, fname_len), ++ aliasfile, sizeof aliasfile); ++#else ++ memcpy (full_fname, fname, fname_len); ++ memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); ++#endif ++ ++ fp = fopen (full_fname, "r"); ++ if (fp == NULL) ++ { ++ FREE_BLOCKS (block_list); ++ return 0; ++ } ++ ++ added = 0; ++ while (!feof (fp)) ++ { ++ /* It is a reasonable approach to use a fix buffer here because ++ a) we are only interested in the first two fields ++ b) these fields must be usable as file names and so must not ++ be that long ++ */ ++ unsigned char buf[BUFSIZ]; ++ unsigned char *alias; ++ unsigned char *value; ++ unsigned char *cp; ++ ++ if (fgets (buf, sizeof buf, fp) == NULL) ++ /* EOF reached. */ ++ break; ++ ++ /* Possibly not the whole line fits into the buffer. Ignore ++ the rest of the line. */ ++ if (strchr (buf, '\n') == NULL) ++ { ++ char altbuf[BUFSIZ]; ++ do ++ if (fgets (altbuf, sizeof altbuf, fp) == NULL) ++ /* Make sure the inner loop will be left. The outer loop ++ will exit at the `feof' test. */ ++ break; ++ while (strchr (altbuf, '\n') == NULL); ++ } ++ ++ cp = buf; ++ /* Ignore leading white space. */ ++ while (isspace (cp[0])) ++ ++cp; ++ ++ /* A leading '#' signals a comment line. */ ++ if (cp[0] != '\0' && cp[0] != '#') ++ { ++ alias = cp++; ++ while (cp[0] != '\0' && !isspace (cp[0])) ++ ++cp; ++ /* Terminate alias name. */ ++ if (cp[0] != '\0') ++ *cp++ = '\0'; ++ ++ /* Now look for the beginning of the value. */ ++ while (isspace (cp[0])) ++ ++cp; ++ ++ if (cp[0] != '\0') ++ { ++ size_t alias_len; ++ size_t value_len; ++ ++ value = cp++; ++ while (cp[0] != '\0' && !isspace (cp[0])) ++ ++cp; ++ /* Terminate value. */ ++ if (cp[0] == '\n') ++ { ++ /* This has to be done to make the following test ++ for the end of line possible. We are looking for ++ the terminating '\n' which do not overwrite here. */ ++ *cp++ = '\0'; ++ *cp = '\n'; ++ } ++ else if (cp[0] != '\0') ++ *cp++ = '\0'; ++ ++ if (nmap >= maxmap) ++ extend_alias_table (); ++ ++ alias_len = strlen (alias) + 1; ++ value_len = strlen (value) + 1; ++ ++ if (string_space_act + alias_len + value_len > string_space_max) ++ { ++ /* Increase size of memory pool. */ ++ size_t new_size = (string_space_max ++ + (alias_len + value_len > 1024 ++ ? alias_len + value_len : 1024)); ++ char *new_pool = (char *) realloc (string_space, new_size); ++ if (new_pool == NULL) ++ { ++ FREE_BLOCKS (block_list); ++ return added; ++ } ++ string_space = new_pool; ++ string_space_max = new_size; ++ } ++ ++ map[nmap].alias = memcpy (&string_space[string_space_act], ++ alias, alias_len); ++ string_space_act += alias_len; ++ ++ map[nmap].value = memcpy (&string_space[string_space_act], ++ value, value_len); ++ string_space_act += value_len; ++ ++ ++nmap; ++ ++added; ++ } ++ } ++ } ++ ++ /* Should we test for ferror()? I think we have to silently ignore ++ errors. --drepper */ ++ fclose (fp); ++ ++ if (added > 0) ++ qsort (map, nmap, sizeof (struct alias_map), ++ (int (*) PARAMS ((const void *, const void *))) alias_compare); ++ ++ FREE_BLOCKS (block_list); ++ return added; ++} ++ ++ ++static void ++extend_alias_table () ++{ ++ size_t new_size; ++ struct alias_map *new_map; ++ ++ new_size = maxmap == 0 ? 100 : 2 * maxmap; ++ new_map = (struct alias_map *) realloc (map, (new_size ++ * sizeof (struct alias_map))); ++ if (new_map == NULL) ++ /* Simply don't extend: we don't have any more core. */ ++ return; ++ ++ map = new_map; ++ maxmap = new_size; ++} ++ ++ ++#ifdef _LIBC ++static void __attribute__ ((unused)) ++free_mem (void) ++{ ++ if (string_space != NULL) ++ free (string_space); ++ if (map != NULL) ++ free (map); ++} ++text_set_element (__libc_subfreeres, free_mem); ++#endif ++ ++ ++static int ++alias_compare (map1, map2) ++ const struct alias_map *map1; ++ const struct alias_map *map2; ++{ ++#if defined _LIBC || defined HAVE_STRCASECMP ++ return strcasecmp (map1->alias, map2->alias); ++#else ++ const unsigned char *p1 = (const unsigned char *) map1->alias; ++ const unsigned char *p2 = (const unsigned char *) map2->alias; ++ unsigned char c1, c2; ++ ++ if (p1 == p2) ++ return 0; ++ ++ do ++ { ++ /* I know this seems to be odd but the tolower() function in ++ some systems libc cannot handle nonalpha characters. */ ++ c1 = isupper (*p1) ? tolower (*p1) : *p1; ++ c2 = isupper (*p2) ? tolower (*p2) : *p2; ++ if (c1 == '\0') ++ break; ++ ++p1; ++ ++p2; ++ } ++ while (c1 == c2); ++ ++ return c1 - c2; ++#endif ++} +diff -urP gtkhtml-0.8.3.orig/intl/po2tbl.sed.in gtkhtml-0.8.3/intl/po2tbl.sed.in +--- gtkhtml-0.8.3.orig/intl/po2tbl.sed.in Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/po2tbl.sed.in Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,102 @@ ++# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets ++# Copyright (C) 1995 Free Software Foundation, Inc. ++# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++# ++# 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. ++# ++1 { ++ i\ ++/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\ ++\ ++#if HAVE_CONFIG_H\ ++# include <config.h>\ ++#endif\ ++\ ++#include "libgettext.h"\ ++\ ++const struct _msg_ent _msg_tbl[] = { ++ h ++ s/.*/0/ ++ x ++} ++# ++# Write msgid entries in C array form. ++# ++/^msgid/ { ++ s/msgid[ ]*\(".*"\)/ {\1/ ++ tb ++# Append the next line ++ :b ++ N ++# Look whether second part is continuation line. ++ s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/ ++# Yes, then branch. ++ ta ++# Because we assume that the input file correctly formed the line ++# just read cannot be again be a msgid line. So it's safe to ignore ++# it. ++ s/\(.*\)\n.*/\1/ ++ bc ++# We found a continuation line. But before printing insert '\'. ++ :a ++ s/\(.*\)\(\n.*\)/\1\\\2/ ++ P ++# We cannot use D here. ++ s/.*\n\(.*\)/\1/ ++# Some buggy seds do not clear the `successful substitution since last ``t''' ++# flag on `N', so we do a `t' here to clear it. ++ tb ++# Not reached ++ :c ++ x ++# The following nice solution is by ++# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de> ++ td ++# Increment a decimal number in pattern space. ++# First hide trailing `9' digits. ++ :d ++ s/9\(_*\)$/_\1/ ++ td ++# Assure at least one digit is available. ++ s/^\(_*\)$/0\1/ ++# Increment the last digit. ++ s/8\(_*\)$/9\1/ ++ s/7\(_*\)$/8\1/ ++ s/6\(_*\)$/7\1/ ++ s/5\(_*\)$/6\1/ ++ s/4\(_*\)$/5\1/ ++ s/3\(_*\)$/4\1/ ++ s/2\(_*\)$/3\1/ ++ s/1\(_*\)$/2\1/ ++ s/0\(_*\)$/1\1/ ++# Convert the hidden `9' digits to `0's. ++ s/_/0/g ++ x ++ G ++ s/\(.*\)\n\([0-9]*\)/\1, \2},/ ++ s/\(.*\)"$/\1/ ++ p ++} ++# ++# Last line. ++# ++$ { ++ i\ ++};\ ++ ++ g ++ s/0*\(.*\)/int _msg_tbl_length = \1;/p ++} ++d +diff -urP gtkhtml-0.8.3.orig/intl/textdomain.c gtkhtml-0.8.3/intl/textdomain.c +--- gtkhtml-0.8.3.orig/intl/textdomain.c Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/textdomain.c Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,108 @@ ++/* Implementation of the textdomain(3) function. ++ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. ++ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++ ++ 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. */ ++ ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#if defined STDC_HEADERS || defined _LIBC ++# include <stdlib.h> ++#endif ++ ++#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC ++# include <string.h> ++#else ++# include <strings.h> ++# ifndef memcpy ++# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) ++# endif ++#endif ++ ++#ifdef _LIBC ++# include <libintl.h> ++#else ++# include "libgettext.h" ++#endif ++ ++/* @@ end of prolog @@ */ ++ ++/* Name of the default text domain. */ ++extern const char _nl_default_default_domain[]; ++ ++/* Default text domain in which entries for gettext(3) are to be found. */ ++extern const char *_nl_current_default_domain; ++ ++ ++/* Names for the libintl functions are a problem. They must not clash ++ with existing names and they should follow ANSI C. But this source ++ code is also used in GNU C Library where the names have a __ ++ prefix. So we have to make a difference here. */ ++#ifdef _LIBC ++# define TEXTDOMAIN __textdomain ++# ifndef strdup ++# define strdup(str) __strdup (str) ++# endif ++#else ++# define TEXTDOMAIN textdomain__ ++#endif ++ ++/* Set the current default message catalog to DOMAINNAME. ++ If DOMAINNAME is null, return the current default. ++ If DOMAINNAME is "", reset to the default of "messages". */ ++char * ++TEXTDOMAIN (domainname) ++ const char *domainname; ++{ ++ char *old; ++ ++ /* A NULL pointer requests the current setting. */ ++ if (domainname == NULL) ++ return (char *) _nl_current_default_domain; ++ ++ old = (char *) _nl_current_default_domain; ++ ++ /* If domain name is the null string set to default domain "messages". */ ++ if (domainname[0] == '\0' ++ || strcmp (domainname, _nl_default_default_domain) == 0) ++ _nl_current_default_domain = _nl_default_default_domain; ++ else ++ { ++ /* If the following malloc fails `_nl_current_default_domain' ++ will be NULL. This value will be returned and so signals we ++ are out of core. */ ++#if defined _LIBC || defined HAVE_STRDUP ++ _nl_current_default_domain = strdup (domainname); ++#else ++ size_t len = strlen (domainname) + 1; ++ char *cp = (char *) malloc (len); ++ if (cp != NULL) ++ memcpy (cp, domainname, len); ++ _nl_current_default_domain = cp; ++#endif ++ } ++ ++ if (old != _nl_default_default_domain) ++ free (old); ++ ++ return (char *) _nl_current_default_domain; ++} ++ ++#ifdef _LIBC ++/* Alias for function name in GNU C Library. */ ++weak_alias (__textdomain, textdomain); ++#endif +diff -urP gtkhtml-0.8.3.orig/intl/xopen-msg.sed gtkhtml-0.8.3/intl/xopen-msg.sed +--- gtkhtml-0.8.3.orig/intl/xopen-msg.sed Wed Dec 31 19:00:00 1969 ++++ gtkhtml-0.8.3/intl/xopen-msg.sed Fri Mar 16 14:46:14 2001 +@@ -0,0 +1,104 @@ ++# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file ++# Copyright (C) 1995 Free Software Foundation, Inc. ++# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. ++# ++# 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. ++# ++# ++# The first directive in the .msg should be the definition of the ++# message set number. We use always set number 1. ++# ++1 { ++ i\ ++$set 1 # Automatically created by po2msg.sed ++ h ++ s/.*/0/ ++ x ++} ++# ++# We copy all comments into the .msg file. Perhaps they can help. ++# ++/^#/ s/^#[ ]*/$ /p ++# ++# We copy the original message as a comment into the .msg file. ++# ++/^msgid/ { ++# Does not work now ++# /"$/! { ++# s/\\$// ++# s/$/ ... (more lines following)"/ ++# } ++ s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/ ++ p ++} ++# ++# The .msg file contains, other then the .po file, only the translations ++# but each given a unique ID. Starting from 1 and incrementing by 1 for ++# each message we assign them to the messages. ++# It is important that the .po file used to generate the cat-id-tbl.c file ++# (with po-to-tbl) is the same as the one used here. (At least the order ++# of declarations must not be changed.) ++# ++/^msgstr/ { ++ s/msgstr[ ]*"\(.*\)"/\1/ ++ x ++# The following nice solution is by ++# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de> ++ td ++# Increment a decimal number in pattern space. ++# First hide trailing `9' digits. ++ :d ++ s/9\(_*\)$/_\1/ ++ td ++# Assure at least one digit is available. ++ s/^\(_*\)$/0\1/ ++# Increment the last digit. ++ s/8\(_*\)$/9\1/ ++ s/7\(_*\)$/8\1/ ++ s/6\(_*\)$/7\1/ ++ s/5\(_*\)$/6\1/ ++ s/4\(_*\)$/5\1/ ++ s/3\(_*\)$/4\1/ ++ s/2\(_*\)$/3\1/ ++ s/1\(_*\)$/2\1/ ++ s/0\(_*\)$/1\1/ ++# Convert the hidden `9' digits to `0's. ++ s/_/0/g ++ x ++# Bring the line in the format `<number> <message>' ++ G ++ s/^[^\n]*$/& / ++ s/\(.*\)\n\([0-9]*\)/\2 \1/ ++# Clear flag from last substitution. ++ tb ++# Append the next line. ++ :b ++ N ++# Look whether second part is a continuation line. ++ s/\(.*\n\)"\(.*\)"/\1\2/ ++# Yes, then branch. ++ ta ++ P ++ D ++# Note that `D' includes a jump to the start!! ++# We found a continuation line. But before printing insert '\'. ++ :a ++ s/\(.*\)\(\n.*\)/\1\\\2/ ++ P ++# We cannot use the sed command `D' here ++ s/.*\n\(.*\)/\1/ ++ tb ++} ++d +diff -urP gtkhtml-0.8.3.orig/src/Makefile.am gtkhtml-0.8.3/src/Makefile.am +--- gtkhtml-0.8.3.orig/src/Makefile.am Wed Jan 24 07:10:23 2001 ++++ gtkhtml-0.8.3/src/Makefile.am Sun Apr 15 11:14:19 2001 +@@ -95,6 +95,7 @@ + htmltypes.h \ + htmlundo.h \ + htmlundo-action.h \ ++ htmlurl.h \ + htmlvspace.h \ + gtkhtml-keybinding.h \ + htmliframe.h \ +@@ -187,7 +188,6 @@ + + testgtkhtml_SOURCES = \ + testgtkhtml.c \ +- htmlurl.h \ + htmlurl.c + + testgtkhtml_CFLAGS = $(GLIBWWW_CFLAGS) diff --git a/gnome-extra/gtkhtml/gtkhtml-0.8.3.ebuild b/gnome-extra/gtkhtml/gtkhtml-0.8.3.ebuild new file mode 100644 index 000000000000..f25b62652d50 --- /dev/null +++ b/gnome-extra/gtkhtml/gtkhtml-0.8.3.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2000 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License, v2 or later +# Author Achim Gottinger <achim@gentoo.org> +# $Header: /var/cvsroot/gentoo-x86/gnome-extra/gtkhtml/gtkhtml-0.8.3.ebuild,v 1.1 2001/04/15 18:57:14 pete Exp $ + +A=${P}.tar.gz +S=${WORKDIR}/${P} +DESCRIPTION="gtkhtml" +SRC_URI="ftp://ftp.gnome.org/pub/GNOME/unstable/sources/gtkhtml/${A} + ftp://gnome.eazel.com/pub/gnome/unstable/sources/${PN}/${A}" +HOMEPAGE="http://www.gnome.org/" + +RDEPEND=">=gnome-base/gal-0.5 + >=gnome-base/gconf-1.0 + >=gnome-base/control-center-1.2.4 + >=gnome-base/glibwww-0.2-r1 + >=gnome-base/libghttp-1.0.9" + +DEPEND="${RDEPEND} + >=sys-devel/automake-1.4" + +src_unpack() { + unpack ${A} + cd ${S} + patch -p1 < ${FILESDIR}/${P}-gentoo.diff +# try aclocal -I macros +# try autoconf + try automake +} + +src_compile() { + + local myconf + + if [ -z "`use nls`" ] + then + myconf="--disable-nls" + fi + + if [ "`use bonobo`" ] + then + myconf="${myconf} --with-bonobo" + else + myconf="${myconf} --without-bonobo" + fi + + try ./configure --host=${CHOST} --prefix=/opt/gnome \ + --sysconfdir=/etc/opt/gnome ${myconf} --with-gconf + + try make +} + +src_install() { + + try make DESTDIR=${D} install + #insinto /opt/gnome/include/gtkhtml + #doins src/htmlurl.h + dodoc AUTHORS COPYING* ChangeLog README + dodoc NEWS TODO + +} + + + + + + + + + + + + + |