Preparing a new release. Updated gettext
authorWerner Koch <wk@gnupg.org>
Thu, 30 Sep 2004 14:34:34 +0000 (14:34 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 30 Sep 2004 14:34:34 +0000 (14:34 +0000)
74 files changed:
ABOUT-NLS
ChangeLog
README
agent/ChangeLog
agent/Makefile.am
configure.ac
g10/ChangeLog
g10/Makefile.am
intl/ChangeLog
intl/Makefile.in
intl/VERSION
intl/bindtextdom.c
intl/config.charset
intl/dcgettext.c
intl/dcigettext.c
intl/dcngettext.c
intl/dgettext.c
intl/dngettext.c
intl/eval-plural.h
intl/explodename.c
intl/finddomain.c
intl/gettext.c
intl/gettextP.h
intl/gmo.h
intl/hash-string.h
intl/intl-compat.c
intl/l10nflist.c
intl/libgnuintl.h.in
intl/loadinfo.h
intl/loadmsgcat.c
intl/localcharset.c
intl/locale.alias
intl/localealias.c
intl/localename.c
intl/log.c
intl/ngettext.c
intl/plural-exp.c
intl/plural-exp.h
intl/plural.c
intl/plural.y
intl/relocatable.c
intl/relocatable.h
intl/textdomain.c
kbx/ChangeLog
kbx/Makefile.am
m4/ChangeLog
m4/Makefile.am
m4/gettext.m4
m4/gpg-error.m4
m4/lib-ld.m4
m4/lib-prefix.m4
m4/libassuan.m4
m4/libgcrypt.m4
m4/po.m4
m4/ulonglong.m4
po/ChangeLog
po/Makefile.in.in
po/Rules-quot
scd/ChangeLog
scd/Makefile.am
scd/apdu.c
scd/apdu.h
scd/ccid-driver.c
scd/ccid-driver.h
scripts/ChangeLog
scripts/config.guess
scripts/config.rpath
scripts/config.sub
sm/ChangeLog
sm/Makefile.am
tests/ChangeLog
tests/Makefile.am
tools/ChangeLog
tools/Makefile.am

index 47d5e39..2f50c66 100644 (file)
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -1,8 +1,8 @@
 Notes on the Free Translation Project
 *************************************
 
-   Free software is going international!  The Free Translation Project
-is a way to get maintainers of free software, translators, and users all
+Free software is going international!  The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
 together, so that will gradually become able to speak many languages.
 A few packages already provide translations for their messages.
 
@@ -25,7 +25,7 @@ related to internationalization, you should tell about the version of
 Quick configuration advice
 ==========================
 
-   If you want to exploit the full power of internationalization, you
+If you want to exploit the full power of internationalization, you
 should configure it using
 
      ./configure --with-included-gettext
@@ -48,10 +48,10 @@ included `libintl'.
 INSTALL Matters
 ===============
 
-   Some packages are "localizable" when properly installed; the
-programs they contain can be made to speak your own native language.
-Most such packages use GNU `gettext'.  Other packages have their own
-ways to internationalization, predating GNU `gettext'.
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language.  Most such
+packages use GNU `gettext'.  Other packages have their own ways to
+internationalization, predating GNU `gettext'.
 
    By default, this package will be installed to allow translation of
 messages.  It will automatically detect whether the system already
@@ -98,7 +98,7 @@ codes, stating which languages are allowed.
 Using This Package
 ==================
 
-   As a user, if your language has been installed for this package, you
+As a user, if your language has been installed for this package, you
 only have to set the `LANG' environment variable to the appropriate
 `LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
 and `CC' is an ISO 3166 two-letter country code.  For example, let's
@@ -131,6 +131,13 @@ system libraries.  For example, some Swedish users who would rather
 read translations in German than English for when Swedish is not
 available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
 
+   Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003).  During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
    In the `LANGUAGE' environment variable, but not in the `LANG'
 environment variable, `LL_CC' combinations can be abbreviated as `LL'
 to denote the language's main dialect.  For example, `de' is equivalent
@@ -140,7 +147,7 @@ to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
 Translating Teams
 =================
 
-   For the Free Translation Project to be a success, we need interested
+For the Free Translation Project to be a success, we need interested
 people who like their own language and write it well, and who are also
 able to synergize with other translators speaking the same language.
 Each translation team has its own mailing list.  The up-to-date list of
@@ -170,423 +177,559 @@ programming skill, here.
 Available Packages
 ==================
 
-   Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of May 2003.
-The matrix shows, in regard of each package, for which languages PO
-files have been submitted to translation coordination, with a
+Languages are not equally supported in all packages.  The following
+matrix shows the current state of internationalization, as of January
+2004.  The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
 translation percentage of at least 50%.
 
-     Ready PO files       am az be bg ca cs da de el en en_GB eo es
-                        +-------------------------------------------+
-     a2ps               |       []          [] [] []                |
-     aegis              |                      ()                   |
-     anubis             |                                           |
-     ap-utils           |                                           |
-     bash               |                      []             [] [] |
-     batchelor          |                                           |
-     bfd                |                   []                   [] |
-     binutils           |                   []                   [] |
-     bison              |                   [] []                [] |
-     bluez-pin          |                []                   []    |
-     clisp              |                                           |
-     clisp              |                      []    []          [] |
-     coreutils          |             []    [] []                [] |
-     cpio               |                   [] []                [] |
-     darkstat           |                   ()                   [] |
-     diffutils          |             [] [] [] [] []          [] [] |
-     e2fsprogs          |                []    []                   |
-     enscript           |             []    [] []        []         |
-     error              |             []    [] []        []      [] |
-     fetchmail          |             [] () [] [] []             [] |
-     fileutils          |                   [] []                [] |
-     findutils          |             []    [] [] []          [] [] |
-     flex               |             []    [] []                [] |
-     gas                |                                        [] |
-     gawk               |             []    [] []                [] |
-     gcal               |             []                            |
-     gcc                |                   []                   [] |
-     gettext            |       []    []    [] []                [] |
-     gettext-runtime    |       []    []    [] []                [] |
-     gettext-tools      |                      []                [] |
-     gimp-print         |                [] [] []        []      [] |
-     gliv               |                                           |
-     glunarclock        |    []             [] []                   |
-     gnucash            |                      ()        []         |
-     gnucash-glossary   |                   [] ()                [] |
-     gnupg              |             [] ()    [] []          [] [] |
-     gpe-calendar       |                      []                   |
-     gpe-conf           |                      []                   |
-     gpe-contacts       |                      []                   |
-     gpe-edit           |                                           |
-     gpe-login          |                      []                   |
-     gpe-ownerinfo      |                      []                   |
-     gpe-sketchbook     |                      []                   |
-     gpe-timesheet      |                                           |
-     gpe-today          |                      []                   |
-     gpe-todo           |                      []                   |
-     gphoto2            |                [] [] []                [] |
-     gprof              |                   []                   [] |
-     gpsdrive           |                      ()    ()          () |
-     grep               |          [] []       [] []             [] |
-     gretl              |                                        [] |
-     hello              |             []    [] [] []          [] [] |
-     id-utils           |                   [] []                   |
-     indent             |             []       []             [] [] |
-     jpilot             |                [] [] []                [] |
-     jwhois             |                                        [] |
-     kbd                |                [] [] [] []             [] |
-     ld                 |                   []                   [] |
-     libc               |             [] [] [] [] []             [] |
-     libgpewidget       |                      []                   |
-     libiconv           |             []    [] []             [] [] |
-     lifelines          |                   [] ()                   |
-     lilypond           |                   []                      |
-     lingoteach         |                                           |
-     lingoteach_lessons |                      ()                () |
-     lynx               |             [] [] [] []                   |
-     m4                 |                [] [] [] []                |
-     mailutils          |             []                         [] |
-     make               |                   [] []                [] |
-     man-db             |             [] () [] []                () |
-     mysecretdiary      |                   [] []                [] |
-     nano               |             [] () [] []                [] |
-     nano_1_0           |             [] () [] []                [] |
-     opcodes            |                   []                   [] |
-     parted             |             [] [] [] []                [] |
-     ptx                |             []    [] []             [] [] |
-     python             |                                           |
-     radius             |                                           |
-     recode             |       []          [] [] []          [] [] |
-     screem             |                                           |
-     sed                |             []    [] []             [] [] |
-     sh-utils           |                   [] []                [] |
-     sharutils          |             [] [] [] [] []             [] |
-     sketch             |                   [] ()                [] |
-     soundtracker       |                   [] []                [] |
-     sp                 |                      []                   |
-     tar                |                [] [] []                [] |
-     texinfo            |                [] [] []             []    |
-     textutils          |             []    [] []                [] |
-     tin                |                      ()        ()         |
-     util-linux         |             [] [] [] []                [] |
-     vorbis-tools       |                [] []                   [] |
-     wastesedge         |                      ()                   |
-     wdiff              |             []    [] []                [] |
-     wget               |          [] [] [] [] [] []             [] |
-     xchat              |             []          []             [] |
-     xpad               |                                           |
-                        +-------------------------------------------+
-                          am az be bg ca cs da de el en en_GB eo es
-                           0  1  4  2 31 17 54 60 14  1   4   12 56
+     Ready PO files       af am ar az be bg bs ca cs da de el en en_GB eo es
+                        +----------------------------------------------------+
+     a2ps               |             []             [] [] []                |
+     aegis              |                               ()                   |
+     ant-phone          |                               ()                   |
+     anubis             |                                                    |
+     ap-utils           |                                                    |
+     aspell             |             []                                     |
+     bash               |                      []       []             [] [] |
+     batchelor          |                                                    |
+     bfd                |                            []                   [] |
+     binutils           |                            []                   [] |
+     bison              |                            [] []                [] |
+     bluez-pin          | []                      []                   []    |
+     clisp              |                                                    |
+     clisp              |                               []    []          [] |
+     console-tools      |                         []    []                   |
+     coreutils          |                      []    [] []                [] |
+     cpio               |                            [] []                [] |
+     darkstat           |                []          ()                   [] |
+     diffutils          |                      [] [] [] [] []          [] [] |
+     e2fsprogs          |                         []    []                [] |
+     enscript           |                      []    [] []        []         |
+     error              |                      []    [] []        []      [] |
+     fetchmail          |                      [] () [] [] []             [] |
+     fileutils          |                            [] []                [] |
+     findutils          |             []       []    [] [] []          [] [] |
+     flex               |                      []    [] []                [] |
+     fslint             |                                                    |
+     gas                |                                                 [] |
+     gawk               |                      []    [] []                [] |
+     gbiff              |                               []                   |
+     gcal               |                      []                            |
+     gcc                |                            []                   [] |
+     gettext            |             []       []    [] []                [] |
+     gettext-examples   | []                   []       []                [] |
+     gettext-runtime    |             []       []    [] []                [] |
+     gettext-tools      |                      []       []                [] |
+     gimp-print         |                         [] [] []        []      [] |
+     gliv               |                                                    |
+     glunarclock        |                            [] []                   |
+     gnubiff            |                               []                   |
+     gnucash            |                         []    ()        []      [] |
+     gnucash-glossary   |                            [] ()                [] |
+     gnupg              |                      [] ()    [] []          [] [] |
+     gpe-aerial         |                         []                         |
+     gpe-beam           |                         []    []                   |
+     gpe-calendar       |                         []    []                   |
+     gpe-clock          |                         []    []                   |
+     gpe-conf           |                         []    []                   |
+     gpe-contacts       |                         []    []                   |
+     gpe-edit           |                         []                         |
+     gpe-go             |                         []                         |
+     gpe-login          |                         []    []                   |
+     gpe-ownerinfo      |                         []    []                   |
+     gpe-sketchbook     |                         []    []                   |
+     gpe-su             |                         []    []                   |
+     gpe-taskmanager    |                         []    []                   |
+     gpe-timesheet      |                         []                         |
+     gpe-today          |                         []    []                   |
+     gpe-todo           |                         []    []                   |
+     gphoto2            |                         [] [] []                [] |
+     gprof              |                            [] []                [] |
+     gpsdrive           |                               ()    ()          () |
+     gramadoir          |                               []                   |
+     grep               |             [] []    []       [] []             [] |
+     gretl              |                                                 [] |
+     gtick              | []                            ()                   |
+     hello              |                      []    [] [] []          [] [] |
+     id-utils           |                            [] []                   |
+     indent             |                      []       []             [] [] |
+     iso_3166           |          []    [] [] [] [] [] [] []          [] [] |
+     iso_3166_1         |                      [] [] [] [] []             [] |
+     iso_3166_2         |                                                    |
+     iso_3166_3         |                               []                   |
+     iso_4217           |                      []    [] []                [] |
+     iso_639            |                                                    |
+     jpilot             |                         [] []                   [] |
+     jtag               |                                                    |
+     jwhois             |                                                 [] |
+     kbd                |                         [] [] [] []             [] |
+     latrine            |                               ()                   |
+     ld                 |                            []                   [] |
+     libc               |                      [] [] [] [] []             [] |
+     libgpewidget       |                         []    []                   |
+     libiconv           |                      []    [] []             [] [] |
+     lifelines          |                            [] ()                   |
+     lilypond           |                               []                   |
+     lingoteach         |                                                    |
+     lingoteach_lessons |                               ()                () |
+     lynx               |                      [] [] [] []                   |
+     m4                 |                         [] [] [] []                |
+     mailutils          |                      []                         [] |
+     make               |                            [] []                [] |
+     man-db             |                      [] () [] []                () |
+     minicom            |                         []    []                [] |
+     mysecretdiary      |                            [] []                [] |
+     nano               |                      [] () [] []                [] |
+     nano_1_0           |                      [] () [] []                [] |
+     opcodes            |                                                 [] |
+     parted             |                      [] [] [] []                [] |
+     ptx                |                      []    [] []             [] [] |
+     python             |                                                    |
+     radius             |                                                 [] |
+     recode             |             []       []    [] [] []          [] [] |
+     rpm                |                         [] []                      |
+     screem             |                                                    |
+     scrollkeeper       |             []       [] [] [] []                [] |
+     sed                | []                   []    [] []             [] [] |
+     sh-utils           |                            [] []                [] |
+     shared-mime-info   |                                                    |
+     sharutils          |                      [] [] [] [] []             [] |
+     silky              |                               ()                   |
+     skencil            |                            [] ()                [] |
+     sketch             |                            [] ()                [] |
+     soundtracker       |                            [] []                [] |
+     sp                 |                               []                   |
+     tar                |                         [] [] []                [] |
+     texinfo            |                            [] []             []    |
+     textutils          |                      []    [] []                [] |
+     tin                |                               ()        ()         |
+     tp-robot           |                                                    |
+     tuxpaint           |                      [] [] [] [] []     []      [] |
+     unicode-han-tra... |                                                    |
+     unicode-transla... |                                                    |
+     util-linux         |                      [] [] [] []                [] |
+     vorbis-tools       |             []          [] []                   [] |
+     wastesedge         |                               ()                   |
+     wdiff              |                      []    [] []                [] |
+     wget               |                []    []    [] [] []             [] |
+     xchat              |                      []       [] []             [] |
+     xfree86_xkb_xml    |                         [] []                      |
+     xpad               |                                                 [] |
+                        +----------------------------------------------------+
+                          af am ar az be bg bs ca cs da de el en en_GB eo es
+                           4  0  0  1  9  4  1 40 41 60 78 17  1   5   13 68
      
-                          et fa fi fr ga gl he hr hu id it ja ko
-                        +----------------------------------------+
-     a2ps               | []    [] []                   ()    () |
-     aegis              |                                        |
-     anubis             |          []                            |
-     ap-utils           |          []                            |
-     bash               |          []             []             |
-     batchelor          |             []                         |
-     bfd                |          []                      []    |
-     binutils           |          []                      []    |
-     bison              | []       []                [] []       |
-     bluez-pin          |          [] []          [] []          |
-     clisp              |                                        |
-     clisp              |          []                            |
-     coreutils          | []       []                   [] []    |
-     cpio               |          []    []       []          [] |
-     darkstat           |          () []          [] []          |
-     diffutils          |       [] []    [] []    [] []    []    |
-     e2fsprogs          |                                        |
-     enscript           |          []          []                |
-     error              |       [] [] []          []             |
-     fetchmail          |                                  []    |
-     fileutils          | []       []             []    [] []    |
-     findutils          | []    [] [] [] []    [] [] [] [] [] [] |
-     flex               |          []                         [] |
-     gas                |          []                            |
-     gawk               |          []       []                   |
-     gcal               |          []                            |
-     gcc                |          []                            |
-     gettext            |          []                      [] [] |
-     gettext-runtime    |          []                []    [] [] |
-     gettext-tools      |                                  []    |
-     gimp-print         |          []                      []    |
-     gliv               |          ()                            |
-     glunarclock        |             [] []       []       []    |
-     gnucash            |                               []       |
-     gnucash-glossary   |                               []       |
-     gnupg              | []    [] []    []          [] [] []    |
-     gpe-calendar       |                            []          |
-     gpe-conf           |                                        |
-     gpe-contacts       |          []                            |
-     gpe-edit           |          []                []          |
-     gpe-login          |          []                            |
-     gpe-ownerinfo      |          []             [] []          |
-     gpe-sketchbook     |          []                            |
-     gpe-timesheet      |          [] []             []          |
-     gpe-today          |          [] []                         |
-     gpe-todo           |          []                []          |
-     gphoto2            |          []             []       []    |
-     gprof              |          []                []          |
-     gpsdrive           |          ()             []    () ()    |
-     grep               | []    [] [] [] [] [] [] [] [] [] []    |
-     gretl              |          []                            |
-     hello              | [] [] [] [] [] [] [] [] [] [] [] [] [] |
-     id-utils           |          []             [] []          |
-     indent             | []    [] []    []       [] [] [] []    |
-     jpilot             |          []                      ()    |
-     jwhois             |          []             [] [] []       |
-     kbd                |          []                            |
-     ld                 |          []                            |
-     libc               |       [] []    []       []       [] [] |
-     libgpewidget       |          [] []             []          |
-     libiconv           |       [] [] [] []    [] [] [] []       |
-     lifelines          |          ()                            |
-     lilypond           |          []                            |
-     lingoteach         |          []                []          |
-     lingoteach_lessons |                                        |
-     lynx               | []                      []    [] []    |
-     m4                 |          []    []          []    []    |
-     mailutils          |                                        |
-     make               |          []    [] [] []          [] [] |
-     man-db             |          []                   () ()    |
-     mysecretdiary      |          []                []          |
-     nano               |          []    []          [] []       |
-     nano_1_0           |          []    []          [] []       |
-     opcodes            |          []                []          |
-     parted             |          []    []                []    |
-     ptx                | []    [] [] [] []       [] []          |
-     python             |                                        |
-     radius             |                                        |
-     recode             |          []    [] []    [] [] []       |
-     screem             |                                        |
-     sed                | []       [] [] []       [] [] [] []    |
-     sh-utils           | []    [] []             []    [] []    |
-     sharutils          | []       []    []       []       []    |
-     sketch             |          []                            |
-     soundtracker       |          []    []    []                |
-     sp                 |          []                      ()    |
-     tar                | []    [] []    []    [] [] [] [] []    |
-     texinfo            |          []       [] []          []    |
-     textutils          |          []    []       []       [] [] |
-     tin                | []       ()                            |
-     util-linux         | []    [] []             []    () []    |
-     vorbis-tools       |          []                            |
-     wastesedge         |          ()                            |
-     wdiff              | []       []    []       [] []          |
-     wget               | []    [] []    [] [] [] []       []    |
-     xchat              | []       []                      []    |
-     xpad               |                                        |
-                        +----------------------------------------+
-                          et fa fi fr ga gl he hr hu id it ja ko
-                          20  1 15 73 14 24  8 10 30 31 19 31  9
+                          et eu fa fi fr ga gl he hr hu id is it ja ko lg
+                        +-------------------------------------------------+
+     a2ps               | []       [] []                      ()    ()    |
+     aegis              |                                                 |
+     ant-phone          |             []                                  |
+     anubis             |             []                                  |
+     ap-utils           |             []                                  |
+     aspell             |             [] []                               |
+     bash               |             []             []                   |
+     batchelor          |             [] []                               |
+     bfd                |             []                                  |
+     binutils           |             []                         []       |
+     bison              | []          []                []    []          |
+     bluez-pin          |          [] [] []          [] []                |
+     clisp              |                                                 |
+     clisp              |             []                                  |
+     console-tools      |                                                 |
+     coreutils          | []       [] [] []                   [] []       |
+     cpio               |             []    []       []             []    |
+     darkstat           |             () []          [] []                |
+     diffutils          |          [] []    [] []    [] []       []       |
+     e2fsprogs          |                                                 |
+     enscript           |             []          []                      |
+     error              |          [] [] []          []                   |
+     fetchmail          |                                        []       |
+     fileutils          | []          [] []          []       [] []       |
+     findutils          | []       [] [] [] []    [] [] []    [] [] []    |
+     flex               |             [] []                         []    |
+     fslint             |             []                                  |
+     gas                |             []                                  |
+     gawk               |             []       []                []       |
+     gbiff              |             []                                  |
+     gcal               |             []                                  |
+     gcc                |             []                                  |
+     gettext            |             []                         [] []    |
+     gettext-examples   |             []                         []       |
+     gettext-runtime    |          [] []                []       [] []    |
+     gettext-tools      |             []                         [] []    |
+     gimp-print         |             []                         []       |
+     gliv               |             ()                                  |
+     glunarclock        |          []    [] []       []                   |
+     gnubiff            |             []                                  |
+     gnucash            |             ()                      []          |
+     gnucash-glossary   |                                     []          |
+     gnupg              | []       [] []    []          []    [] []       |
+     gpe-aerial         |             []                                  |
+     gpe-beam           |             []                                  |
+     gpe-calendar       |             []             [] []                |
+     gpe-clock          |             []                                  |
+     gpe-conf           |             []                                  |
+     gpe-contacts       |             []             []                   |
+     gpe-edit           |             []                []                |
+     gpe-go             |             []                                  |
+     gpe-login          |             []             []                   |
+     gpe-ownerinfo      |             []             [] []                |
+     gpe-sketchbook     |             []                                  |
+     gpe-su             |             []                                  |
+     gpe-taskmanager    |             []                                  |
+     gpe-timesheet      |             [] []             []                |
+     gpe-today          |             [] []                               |
+     gpe-todo           |             []                []                |
+     gphoto2            |             []             []          []       |
+     gprof              |             []                []                |
+     gpsdrive           |             ()                      () ()       |
+     gramadoir          |             [] []                               |
+     grep               | []       [] [] [] [] [] [] [] []    [] []       |
+     gretl              |             []                      []          |
+     gtick              |          [] [] []                               |
+     hello              | []    [] [] [] [] [] [] [] [] []    [] [] []    |
+     id-utils           |             []             [] []    []          |
+     indent             | []       [] [] [] []       [] []    [] []       |
+     iso_3166           |    []       [] []       [] [] []    []          |
+     iso_3166_1         |    []       [] []          [] []                |
+     iso_3166_2         |                                                 |
+     iso_3166_3         |                                                 |
+     iso_4217           | []          []    []       []       [] []       |
+     iso_639            |                                                 |
+     jpilot             |             []                         ()       |
+     jtag               |             []                                  |
+     jwhois             |             []             [] []    []          |
+     kbd                |             []                                  |
+     latrine            |             []                                  |
+     ld                 |             []                                  |
+     libc               |          [] []    []       []          [] []    |
+     libgpewidget       |             [] []          [] []                |
+     libiconv           | []       [] [] [] []    [] [] []    []          |
+     lifelines          |             ()                                  |
+     lilypond           |             []                                  |
+     lingoteach         |             []                []                |
+     lingoteach_lessons |                                                 |
+     lynx               | []                         []       [] []       |
+     m4                 |             []    []          []       []       |
+     mailutils          |                                                 |
+     make               |             []    [] [] []             [] []    |
+     man-db             |                                     () ()       |
+     minicom            |          [] []             []          []       |
+     mysecretdiary      |             []                []                |
+     nano               |             []    []          []    []          |
+     nano_1_0           |             []    []          []    []          |
+     opcodes            |             []                                  |
+     parted             |             []    []                   []       |
+     ptx                | []       [] [] [] []       [] []                |
+     python             |                                                 |
+     radius             |             []                                  |
+     recode             |             []    [] []    [] []    []          |
+     rpm                |             []                            []    |
+     screem             |                                                 |
+     scrollkeeper       |                            []                   |
+     sed                | []       [] [] [] []       [] []    [] []       |
+     sh-utils           | []       [] [] []          []       [] []       |
+     shared-mime-info   |          [] []             []                   |
+     sharutils          | []          []    []       []          []       |
+     silky              |          () []             ()       ()          |
+     skencil            |             []                                  |
+     sketch             |             []                                  |
+     soundtracker       |             []                      []          |
+     sp                 |             []                         ()       |
+     tar                | []       [] []    []    [] [] []    [] []       |
+     texinfo            |             []       [] []             []       |
+     textutils          |             [] [] []       []          [] []    |
+     tin                | []          ()                                  |
+     tp-robot           |             []                                  |
+     tuxpaint           |          [] []       []    [] [] [] [] [] []    |
+     unicode-han-tra... |                                                 |
+     unicode-transla... |             [] []                               |
+     util-linux         | []       [] []             []       () []       |
+     vorbis-tools       |             []                                  |
+     wastesedge         |             ()                                  |
+     wdiff              | []          [] [] []       [] []                |
+     wget               | []       [] []    []    [] []          []       |
+     xchat              | []       [] []                                  |
+     xfree86_xkb_xml    |             []             []                   |
+     xpad               |             [] []                               |
+                        +-------------------------------------------------+
+                          et eu fa fi fr ga gl he hr hu id is it ja ko lg
+                          22  2  1 26 106 28 24  8 10 41 33  1 26 33 12  0
      
-                          lg lt lv ms nb nl nn no pl pt pt_BR ro
-                        +----------------------------------------+
-     a2ps               |          []    []    () () ()  []   [] |
-     aegis              |                ()                      |
-     anubis             |          []                         [] |
-     ap-utils           |                         ()             |
-     bash               |                                []      |
-     batchelor          |                                        |
-     bfd                |                                        |
-     binutils           |                                        |
-     bison              |          []    []              []   [] |
-     bluez-pin          |                                     [] |
-     clisp              |                                        |
-     clisp              |                []                      |
-     coreutils          |                         []             |
-     cpio               |                []       []     []      |
-     darkstat           |          []    []              []   [] |
-     diffutils          |          []             []     []      |
-     e2fsprogs          |                                        |
-     enscript           |                []              []      |
-     error              |                []              []      |
-     fetchmail          |                         ()     ()      |
-     fileutils          |                         []             |
-     findutils          |                []       []     []   [] |
-     flex               |                                []      |
-     gas                |                                        |
-     gawk               |                                []      |
-     gcal               |                                        |
-     gcc                |                                        |
-     gettext            |                         []             |
-     gettext-runtime    |                         []             |
-     gettext-tools      |                                        |
-     gimp-print         |                []                      |
-     gliv               |                                []      |
-     glunarclock        |          []                            |
-     gnucash            |                                        |
-     gnucash-glossary   |                []          []          |
-     gnupg              |                                        |
-     gpe-calendar       |                            []       [] |
-     gpe-conf           |                            []       [] |
-     gpe-contacts       |                            []          |
-     gpe-edit           |                            []       [] |
-     gpe-login          |                            []       [] |
-     gpe-ownerinfo      |                            []       [] |
-     gpe-sketchbook     |                            []       [] |
-     gpe-timesheet      |                            []       [] |
-     gpe-today          |                            []       [] |
-     gpe-todo           |                            []       [] |
-     gphoto2            |                                        |
-     gprof              |                                []      |
-     gpsdrive           |                ()    ()        ()      |
-     grep               |                         [] []  []   [] |
-     gretl              |                                        |
-     hello              |       [] [] [] [] [] [] []     []   [] |
-     id-utils           |                []              []   [] |
-     indent             |                []              []   [] |
-     jpilot             |                ()    ()                |
-     jwhois             |                []              []   [] |
-     kbd                |                                        |
-     ld                 |                                        |
-     libc               |             []       [] []     []      |
-     libgpewidget       |                            []       [] |
-     libiconv           |                                []   [] |
-     lifelines          |                                        |
-     lilypond           |                []                      |
-     lingoteach         |                                        |
-     lingoteach_lessons |                                        |
-     lynx               |                []              []      |
-     m4                 |                []       []     []   [] |
-     mailutils          |                                        |
-     make               |                []              []      |
-     man-db             |                                []      |
-     mysecretdiary      |                                []      |
-     nano               |          []    []       []          [] |
-     nano_1_0           |          [] []    []    []             |
-     opcodes            |                []              []   [] |
-     parted             |                   []       []  []      |
-     ptx                |             [] []    [] [] []  []   [] |
-     python             |                                        |
-     radius             |                                        |
-     recode             |                         []     []   [] |
-     screem             |                                        |
-     sed                |                                []   [] |
-     sh-utils           |             []                         |
-     sharutils          |                []                      |
-     sketch             |                                []      |
-     soundtracker       |                                        |
-     sp                 |                                        |
-     tar                |          [] []       [] []     []   [] |
-     texinfo            |                                     [] |
-     textutils          |             []                         |
-     tin                |                                        |
-     util-linux         |                []              []      |
-     vorbis-tools       |                []                   [] |
-     wastesedge         |                                        |
-     wdiff              |          []             []     []   [] |
-     wget               |                []       []          [] |
-     xchat              |       []       []                      |
-     xpad               |                                     [] |
-                        +----------------------------------------+
-                          lg lt lv ms nb nl nn no pl pt pt_BR ro
-                           0  0  2 11  7 26  3  4 18 15  34   34
+                          lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
+                        +-----------------------------------------------------+
+     a2ps               |             []       []    ()     ()     []   [] [] |
+     aegis              |                      ()                       () () |
+     ant-phone          |                      []                       []    |
+     anubis             |             []    [] []           []          [] [] |
+     ap-utils           |                      []           ()          []    |
+     aspell             |                      []                             |
+     bash               |                                          []   [] [] |
+     batchelor          |                                               []    |
+     bfd                |                                               []    |
+     binutils           |                                                  [] |
+     bison              |             []       []                  []   [] [] |
+     bluez-pin          |                      []           []          []    |
+     clisp              |                                                     |
+     clisp              |                      []                             |
+     console-tools      |                                                  [] |
+     coreutils          |                                   []             [] |
+     cpio               |                      []           []     []   [] [] |
+     darkstat           |             []       []                  []   []    |
+     diffutils          |             []       []           []     []   [] [] |
+     e2fsprogs          |                                   []                |
+     enscript           |                      []                  []   [] [] |
+     error              |                      []                  []   []    |
+     fetchmail          |                      []           []     ()      [] |
+     fileutils          |                                   []          [] [] |
+     findutils          |                      []           []     []   [] [] |
+     flex               |                                   []     []   [] [] |
+     fslint             |                      []                       []    |
+     gas                |                                                     |
+     gawk               |                                   []     []   []    |
+     gbiff              |                      []                       []    |
+     gcal               |                                                     |
+     gcc                |                                                     |
+     gettext            |                                   []          [] [] |
+     gettext-examples   |                      []           []          []    |
+     gettext-runtime    |                      []           []          [] [] |
+     gettext-tools      |                                   []          []    |
+     gimp-print         |                      []                             |
+     gliv               |                      []                  []   []    |
+     glunarclock        |             []       []                       [] [] |
+     gnubiff            |                      []                             |
+     gnucash            |                      []              []  ()      [] |
+     gnucash-glossary   |                      []              []             |
+     gnupg              |                                               []    |
+     gpe-aerial         |                      []              []       [] [] |
+     gpe-beam           |                      []              []       [] [] |
+     gpe-calendar       |                      []              []       [] [] |
+     gpe-clock          |                      []              []       [] [] |
+     gpe-conf           |                      []              []       [] [] |
+     gpe-contacts       |                      []              []       [] [] |
+     gpe-edit           |                      []              []       [] [] |
+     gpe-go             |                      []                       [] [] |
+     gpe-login          |                      []              []       [] [] |
+     gpe-ownerinfo      |                      []              []       [] [] |
+     gpe-sketchbook     |                      []              []       [] [] |
+     gpe-su             |                      []              []       [] [] |
+     gpe-taskmanager    |                      []              []       [] [] |
+     gpe-timesheet      |                      []              []       [] [] |
+     gpe-today          |                      []              []       [] [] |
+     gpe-todo           |                      []              []       [] [] |
+     gphoto2            |                                               []    |
+     gprof              |                                          []   []    |
+     gpsdrive           |                      ()    ()                 []    |
+     gramadoir          |                      ()                       []    |
+     grep               |                                   [] []  []   [] [] |
+     gretl              |                                                     |
+     gtick              |                      []                       [] [] |
+     hello              |    []       []    [] [] [] []     []     []   [] [] |
+     id-utils           |                      []                  []   [] [] |
+     indent             |                      []                  []   [] [] |
+     iso_3166           |          []                [] []                    |
+     iso_3166_1         |                      []    []                       |
+     iso_3166_2         |                                                     |
+     iso_3166_3         |                      []                             |
+     iso_4217           |          []          [] [] []     [] []  []      [] |
+     iso_639            |          []                                         |
+     jpilot             |                      ()    ()                       |
+     jtag               |                                                     |
+     jwhois             |                      []           []     []   [] () |
+     kbd                |                      []           []          []    |
+     latrine            |                                               []    |
+     ld                 |                                                     |
+     libc               |                   []       []     []     []         |
+     libgpewidget       |                      []              []       []    |
+     libiconv           |                      []           []     []   [] [] |
+     lifelines          |                                                     |
+     lilypond           |                                                     |
+     lingoteach         |                                                     |
+     lingoteach_lessons |                                                     |
+     lynx               |                      []                  []      [] |
+     m4                 |                      []           []     []   [] [] |
+     mailutils          |                                   []          [] [] |
+     make               |                      []           []     []      [] |
+     man-db             |                                               []    |
+     minicom            |                                   []     []   [] [] |
+     mysecretdiary      |                      []                  []   []    |
+     nano               |             []       []           []          [] [] |
+     nano_1_0           |             []    []    []        []          [] [] |
+     opcodes            |                      []                       []    |
+     parted             |                         []        [] []  []         |
+     ptx                |                   [] []    []     [] []  []   [] [] |
+     python             |                                                     |
+     radius             |                                   []             [] |
+     recode             |                                   []     []   [] [] |
+     rpm                |                                   [] []          [] |
+     screem             |                                                     |
+     scrollkeeper       |                   [] []           []          [] [] |
+     sed                |                                   []     []   []    |
+     sh-utils           |                   []                             [] |
+     shared-mime-info   |                      [] []                          |
+     sharutils          |                      []                          [] |
+     silky              |                                                  () |
+     skencil            |                                      []  []         |
+     sketch             |                                      []  []         |
+     soundtracker       |                                                     |
+     sp                 |                                                     |
+     tar                |             []    []       []     []     []   []    |
+     texinfo            |                   []              []          [] [] |
+     textutils          |                   []                             [] |
+     tin                |                                                     |
+     tp-robot           |                      []                             |
+     tuxpaint           | []          []       [] []        [] []  []   []    |
+     unicode-han-tra... |                                                     |
+     unicode-transla... |                                                     |
+     util-linux         |                      []                  []      [] |
+     vorbis-tools       |                      []                       [] [] |
+     wastesedge         |                                                     |
+     wdiff              |             []                    []     []   [] [] |
+     wget               |                                   []          [] [] |
+     xchat              |    []                []                          [] |
+     xfree86_xkb_xml    |                      []                          [] |
+     xpad               |                      []                       []    |
+                        +-----------------------------------------------------+
+                          lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
+                           1  2  0  3 12  0 10 69  6  7  1  40 26  36   76 63
      
-                          ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
-                        +-------------------------------------------+
-     a2ps               | []    []    []    [] []                   | 16
-     aegis              | ()                                        |  0
-     anubis             |                   [] []                   |  5
-     ap-utils           |                      ()                   |  1
-     bash               | []                                        |  7
-     batchelor          |                                           |  1
-     bfd                |             []    []           []         |  7
-     binutils           |             []    []           []         |  7
-     bison              | []          []                            | 13
-     bluez-pin          |                                           |  7
-     clisp              |                                           |  0
-     clisp              |                                           |  5
-     coreutils          | []    []    []    []                 []   | 14
-     cpio               | []          []                 []         | 13
-     darkstat           |             []                 ()    ()   |  9
-     diffutils          | []          []    []                 []   | 21
-     e2fsprogs          |                   []                      |  3
-     enscript           | []          []    []                      | 11
-     error              |    []             []                 []   | 14
-     fetchmail          |                   []                      |  7
-     fileutils          | []    []    []    []           []    []   | 15
-     findutils          | [] [] []    []    []           []         | 27
-     flex               | []          []    []                      | 10
-     gas                |                   []                      |  3
-     gawk               |             []    []                      |  9
-     gcal               |             []    []                      |  4
-     gcc                |                   []                      |  4
-     gettext            | [] [] []    []    []                 []   | 15
-     gettext-runtime    | [] [] []    []    []                 []   | 16
-     gettext-tools      |    [] []                                  |  5
-     gimp-print         |    []       []                            | 10
-     gliv               |                                           |  1
-     glunarclock        | []          []             []             | 11
-     gnucash            |    []                                []   |  4
-     gnucash-glossary   |    []       []                       []   |  8
-     gnupg              |    []       []    []                 []   | 16
-     gpe-calendar       |                                      []   |  5
-     gpe-conf           |                                           |  3
-     gpe-contacts       |                                      []   |  4
-     gpe-edit           |                                      []   |  5
-     gpe-login          |                                      []   |  5
-     gpe-ownerinfo      |                                      []   |  7
-     gpe-sketchbook     |                                      []   |  5
-     gpe-timesheet      |                                      []   |  6
-     gpe-today          |                                      []   |  6
-     gpe-todo           |                                      []   |  6
-     gphoto2            |             []                 []         |  9
-     gprof              |             []    []                      |  7
-     gpsdrive           |    []       []                            |  3
-     grep               | []    []          [] []                   | 24
-     gretl              |                                           |  2
-     hello              | [] []       []    [] []                   | 33
-     id-utils           | []          []    []                      | 11
-     indent             | [] []       []    []                      | 19
-     jpilot             |             []    []    []     []    []   | 10
-     jwhois             | ()          ()    []                 []   | 10
-     kbd                |             []    []                      |  8
-     ld                 |             []    []                      |  5
-     libc               |    []       []    []           []         | 20
-     libgpewidget       |                                           |  6
-     libiconv           | [] [] []    []    [] []                   | 21
-     lifelines          |             []                            |  2
-     lilypond           |             []                            |  4
-     lingoteach         |                                           |  2
-     lingoteach_lessons |                                ()         |  0
-     lynx               | []          []    [] []                   | 14
-     m4                 | []          []                 []         | 15
-     mailutils          |                                           |  2
-     make               | []          []    []           []         | 15
-     man-db             |             []                            |  6
-     mysecretdiary      |             []    []                      |  8
-     nano               | []          []       []                   | 15
-     nano_1_0           | []          []       []                   | 15
-     opcodes            |             []    []                      |  9
-     parted             |             []    []                      | 13
-     ptx                | []          []    []                      | 22
-     python             |                                           |  0
-     radius             |                                           |  0
-     recode             | []    []    []    []                      | 19
-     screem             |             []                            |  1
-     sed                |    [] []    []    [] []                   | 20
-     sh-utils           | []    []          []                      | 13
-     sharutils          | []          []    []                 []   | 16
-     sketch             |             []                            |  5
-     soundtracker       |             []                            |  7
-     sp                 |                   []                      |  3
-     tar                |    [] []    []    []           []         | 24
-     texinfo            | []          []    []           []         | 13
-     textutils          | []    []    []    []                 []   | 15
-     tin                |                                           |  1
-     util-linux         |             []    []                      | 14
-     vorbis-tools       | []                                        |  7
-     wastesedge         |                                           |  0
-     wdiff              | [] []       []    []                      | 17
-     wget               | [] [] []    []    [] []              []   | 25
-     xchat              |    [] []    []                            | 11
-     xpad               |                                           |  1
-                        +-------------------------------------------+
-       50 teams           ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
-       97 domains         32 19 16  0 56  0 48 10  1  1  12    23    913
+                          sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
+                        +-----------------------------------------------------+
+     a2ps               |    []    []       [] []                             | 16
+     aegis              |                                                     |  0
+     ant-phone          |                                                     |  3
+     anubis             |                   [] []                             |  9
+     ap-utils           |                      ()                             |  3
+     aspell             |                                                     |  4
+     bash               |                                                     |  9
+     batchelor          |                                                     |  3
+     bfd                |          []       []                                |  6
+     binutils           |          []       []                  []            |  8
+     bison              |          []       []                                | 14
+     bluez-pin          | []       []                    []                   | 14
+     clisp              |                                                     |  0
+     clisp              |                                                     |  5
+     console-tools      |                                                     |  3
+     coreutils          |    []    []       []                        []      | 16
+     cpio               |          []                           []            | 14
+     darkstat           | []    [] []                           ()    ()      | 12
+     diffutils          |          []       []                        []      | 23
+     e2fsprogs          |          []       []                                |  6
+     enscript           |          []       []                                | 12
+     error              | []                []                        []      | 15
+     fetchmail          | []                []                                | 11
+     fileutils          |    []    []       []                  []    []      | 17
+     findutils          | [] [] [] []       []                  []            | 29
+     flex               |          []       []                                | 13
+     fslint             |                                                     |  3
+     gas                |                   []                                |  3
+     gawk               |          []       []                                | 12
+     gbiff              |                                                     |  4
+     gcal               |          []       []                                |  4
+     gcc                |                   []                                |  4
+     gettext            | [] []    []       []                        []      | 16
+     gettext-examples   | []    [] []       []                  []            | 14
+     gettext-runtime    | [] [] [] []       [] []               []    []      | 22
+     gettext-tools      | [] [] [] []       []                  []            | 14
+     gimp-print         | []       []                                         | 10
+     gliv               |                                                     |  3
+     glunarclock        |       [] []                    []                   | 13
+     gnubiff            |                                                     |  3
+     gnucash            | []                                          []      |  9
+     gnucash-glossary   | []       []                                 []      |  8
+     gnupg              | []       []       []                        []      | 17
+     gpe-aerial         |          []                                         |  7
+     gpe-beam           |          []                                         |  8
+     gpe-calendar       | []       []                    []           []      | 13
+     gpe-clock          | []    [] []                                         | 10
+     gpe-conf           | []       []                                         |  9
+     gpe-contacts       | []       []                                 []      | 11
+     gpe-edit           | []    [] []                    []           []      | 12
+     gpe-go             |                                                     |  5
+     gpe-login          | []    [] []                    []           []      | 13
+     gpe-ownerinfo      | []    [] []                                 []      | 13
+     gpe-sketchbook     | []       []                                         |  9
+     gpe-su             | []    [] []                                         | 10
+     gpe-taskmanager    | []    [] []                                         | 10
+     gpe-timesheet      | []    [] []                                 []      | 12
+     gpe-today          | []    [] []                    []           []      | 13
+     gpe-todo           | []       []                    []           []      | 12
+     gphoto2            | []       []                           []            | 11
+     gprof              |          []       []                                |  9
+     gpsdrive           | []       []                                         |  3
+     gramadoir          | []                                                  |  5
+     grep               |    [] []          [] []                             | 26
+     gretl              |                                                     |  3
+     gtick              |                                                     |  7
+     hello              | []    [] []       [] []                             | 34
+     id-utils           |          []       []                                | 12
+     indent             | []    [] []       []                                | 21
+     iso_3166           | [] [] [] []       []    []     []                   | 27
+     iso_3166_1         | [] []             []                                | 16
+     iso_3166_2         |                                                     |  0
+     iso_3166_3         |                                                     |  2
+     iso_4217           | [] []    []       [] []               []            | 24
+     iso_639            |                                                     |  1
+     jpilot             |          []       []        []        []    []      |  9
+     jtag               | []                                                  |  2
+     jwhois             |          ()       []                        []      | 11
+     kbd                |          []       []                                | 11
+     latrine            |                                                     |  2
+     ld                 |          []       []                                |  5
+     libc               | []       []       []                  []            | 20
+     libgpewidget       | []    [] []                    []                   | 13
+     libiconv           | [] [] [] []       [] []        []     []            | 27
+     lifelines          |          []                                         |  2
+     lilypond           |          []                                         |  3
+     lingoteach         |                                                     |  2
+     lingoteach_lessons |                                       ()            |  0
+     lynx               |          []       [] []                             | 14
+     m4                 |          []                           []            | 15
+     mailutils          |                                                     |  5
+     make               |          []       []                  []            | 16
+     man-db             |          []                                         |  5
+     minicom            |                                                     | 11
+     mysecretdiary      |          []       []                                | 10
+     nano               |       [] []       [] []                             | 17
+     nano_1_0           |          []       [] []                             | 17
+     opcodes            |          []       []                                |  6
+     parted             |          []       []                  []            | 15
+     ptx                |          []       []                                | 22
+     python             |                                                     |  0
+     radius             |                                                     |  4
+     recode             |    []    []       []                                | 20
+     rpm                |          []       []                                |  9
+     screem             |          []                           []            |  2
+     scrollkeeper       | []    [] []                                         | 15
+     sed                | [] [] [] []       [] []                             | 24
+     sh-utils           |    []             []                                | 14
+     shared-mime-info   |       [] []                                         |  7
+     sharutils          |       [] []       []                        []      | 17
+     silky              | ()                                                  |  3
+     skencil            |          []                                         |  6
+     sketch             |          []                                         |  6
+     soundtracker       | []       []                                         |  7
+     sp                 |                   []                                |  3
+     tar                | [] []    []       []                  []            | 24
+     texinfo            |          []       []                  []            | 14
+     textutils          |    []    []       []                        []      | 16
+     tin                |                                                     |  1
+     tp-robot           |                                                     |  2
+     tuxpaint           | []       []       []           []     []            | 29
+     unicode-han-tra... |                                                     |  0
+     unicode-transla... |                                                     |  2
+     util-linux         |          []       []                                | 15
+     vorbis-tools       |                                                     |  8
+     wastesedge         |                                                     |  0
+     wdiff              | []       []       []                                | 18
+     wget               | [] [] [] []       [] []               []    []      | 24
+     xchat              | [] [] [] []                           []            | 15
+     xfree86_xkb_xml    | []    []          [] []               []            | 11
+     xpad               |                                                     |  5
+                        +-----------------------------------------------------+
+       63 teams           sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
+      131 domains         47 19 28 83  0  0 59 13  1   1 11  0  22    22    0  1373
 
    Some counters in the preceding matrix are higher than the number of
 visible blocks let us expect.  This is because a few extra PO files are
@@ -599,7 +742,7 @@ distributed as such by its maintainer.  There might be an observable
 lag between the mere existence a PO file and its wide availability in a
 distribution.
 
-   If May 2003 seems to be old, you may fetch a more recent copy of
+   If January 2004 seems to be old, you may fetch a more recent copy of
 this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
 matrix with full percentage details can be found at
 `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
@@ -607,7 +750,7 @@ matrix with full percentage details can be found at
 Using `gettext' in new packages
 ===============================
 
-   If you are writing a freely available program and want to
+If you are writing a freely available program and want to
 internationalize it you are welcome to use GNU `gettext' in your
 package.  Of course you have to respect the GNU Library General Public
 License which covers the use of the GNU `gettext' library.  This means
index 86bd01b..bb7379b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-09-30  Werner Koch  <wk@g10code.com>
+
+       * README: Minor updates.
+
+2004-09-30  gettextize  <bug-gnu-gettext@gnu.org>
+
+       * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.14.1.
+
 2004-08-16  Werner Koch  <wk@g10code.de>
 
        * configure.ac: Build Makefile for tests/pkits.  New option
diff --git a/README b/README
index 8027b69..c08c16a 100644 (file)
--- a/README
+++ b/README
@@ -19,8 +19,8 @@ BUILD INSTRUCTIONS
 
 GnuPG 1.9 depends on the following packages:
 
-  libgpg-error (ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/)
-  libgcrypt    (ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/)
+  libgpg-error (ftp://ftp.gnupg.org/gcrypt/libgpg-error/)
+  libgcrypt    (ftp://ftp.gnupg.org/gcrypt/libgcrypt/)
   libassuan    (ftp://ftp.gnupg.org/gcrypt/alpha/libassuan/)
   libksba      (ftp://ftp.gnupg.org/gcrypt/alpha/libksba/)
   
@@ -470,9 +470,9 @@ This requires that the gpg-agent is running.
 HOW TO EXPORT A PRIVATE KEY
 ===========================
 There is also limited support to export a private key in PKCS-12
-format. However the certificate is not stored and there is no MAC applied.
+format. However there is no MAC applied.
 
- gpgsm --call-protect-tool --p12-export  foo.key  >foo.p12
+ gpgsm --export-secret-key-p12 userIDey  >foo.p12
 
 
 SMARTCARD INTRO
index f72bd50..b65e7b1 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-30  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am: Adjusted from gettext 1.14.
+
 2004-09-29  Werner Koch  <wk@g10code.com>
 
        * minip12.c (parse_bag_encrypted_data): Print error if a bad
index e83311f..6f3ea70 100644 (file)
@@ -46,7 +46,7 @@ gpg_agent_SOURCES = \
 
 gpg_agent_LDADD = ../jnlib/libjnlib.a ../common/libcommon.a \
                 $(LIBGCRYPT_LIBS) $(PTH_LIBS) $(LIBASSUAN_LIBS) \
-                -lgpg-error @INTLLIBS@
+                -lgpg-error @LIBINTL@
 
 gpg_protect_tool_SOURCES = \
        protect-tool.c \
@@ -55,6 +55,6 @@ gpg_protect_tool_SOURCES = \
 
 gpg_protect_tool_LDADD = ../jnlib/libjnlib.a \
         ../common/libcommon.a ../common/libsimple-pwquery.a \
-        $(LIBGCRYPT_LIBS) -lgpg-error @INTLLIBS@
+        $(LIBGCRYPT_LIBS) -lgpg-error @LIBINTL@
 
 
index d04475f..bce1555 100644 (file)
@@ -685,7 +685,7 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
                    [A human readable text with the name of the OS])
 
 
-AM_GNU_GETTEXT_VERSION(0.12.1)
+AM_GNU_GETTEXT_VERSION(0.14.1)
 if test "$try_gettext" = yes; then
   AM_GNU_GETTEXT(,[need-ngettext])
 
@@ -1129,10 +1129,11 @@ scd/Makefile
 tools/Makefile
 doc/Makefile
 tests/Makefile
-tests/pkits/Makefile
 ])
 AC_OUTPUT
 
+#tests/pkits/Makefile
+
 
 
 
index b553c1c..187d858 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-30  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am (LDADD): Adjusted for gettext 0.14.
+
 2004-09-20  Werner Koch  <wk@g10code.com>
 
        * keyedit.c (show_key_with_all_names): Print the card S/N.
index 53d748e..aa7833f 100644 (file)
@@ -108,7 +108,7 @@ gpgv2_SOURCES = gpgv.c           \
 #             ks-db.h \
 #             $(common_source)
 
-LDADD =  $(needed_libs) @INTLLIBS@ @CAPLIBS@ @ZLIBS@ @W32LIBS@
+LDADD =  $(needed_libs) @LIBINTL@ @CAPLIBS@ @ZLIBS@ @W32LIBS@
 gpg2_LDADD = $(LIBGCRYPT_LIBS) $(LDADD) -lassuan -lgpg-error
 gpgv2_LDADD = $(LIBGCRYPT_LIBS) $(LDADD) -lassuan -lgpg-error
 
index eed2d21..7512919 100644 (file)
@@ -1,4 +1,4 @@
-2003-05-22  GNU  <bug-gnu-gettext@gnu.org>
+2004-01-29  GNU  <bug-gnu-gettext@gnu.org>
 
-       * Version 0.12.1 released.
+       * Version 0.14.1 released.
 
index 8823964..05f1532 100644 (file)
@@ -73,6 +73,10 @@ HEADERS = \
   eval-plural.h \
   localcharset.h \
   relocatable.h \
+  xsize.h \
+  printf-args.h printf-args.c \
+  printf-parse.h wprintf-parse.h printf-parse.c \
+  vasnprintf.h vasnwprintf.h vasnprintf.c \
   os2compat.h \
   libgnuintl.h.in
 SOURCES = \
@@ -96,6 +100,7 @@ SOURCES = \
   relocatable.c \
   localename.c \
   log.c \
+  printf.c \
   osdep.c \
   os2compat.c \
   intl-compat.c
@@ -120,6 +125,7 @@ OBJECTS = \
   relocatable.$lo \
   localename.$lo \
   log.$lo \
+  printf.$lo \
   osdep.$lo \
   intl-compat.$lo
 DISTFILES.common = Makefile.in \
@@ -127,7 +133,8 @@ config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
 DISTFILES.generated = plural.c
 DISTFILES.normal = VERSION
 DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \
-Makefile.vms libgnuintl.h.msvc-shared README.woe32 Makefile.msvc
+libgnuintl.h_vms Makefile.vms \
+libgnuintl.h.msvc-static libgnuintl.h.msvc-shared README.woe32 Makefile.msvc
 DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
 COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h
 
@@ -155,9 +162,9 @@ libintl.la libgnuintl.la: $(OBJECTS)
 # according to the libtool documentation, section "Library interface versions".
 # Maintainers of other packages that include the intl directory must *not*
 # change these values.
-LTV_CURRENT=5
+LTV_CURRENT=7
 LTV_REVISION=0
-LTV_AGE=3
+LTV_AGE=4
 
 .SUFFIXES:
 .SUFFIXES: .c .y .o .lo .sin .sed
@@ -209,6 +216,8 @@ localename.lo: $(srcdir)/localename.c
        $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c
 log.lo: $(srcdir)/log.c
        $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c
+printf.lo: $(srcdir)/printf.c
+       $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c
 osdep.lo: $(srcdir)/osdep.c
        $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c
 intl-compat.lo: $(srcdir)/intl-compat.c
@@ -224,7 +233,11 @@ ref-del.sed: $(srcdir)/ref-del.sin
 INCLUDES = -I. -I$(srcdir) -I..
 
 libgnuintl.h: $(srcdir)/libgnuintl.h.in
-       cp $(srcdir)/libgnuintl.h.in libgnuintl.h
+       sed -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \
+           -e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \
+           -e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \
+           -e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \
+         < $(srcdir)/libgnuintl.h.in > libgnuintl.h
 
 libintl.h: libgnuintl.h
        cp libgnuintl.h libintl.h
@@ -250,7 +263,7 @@ install-exec: all
            $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
          if test "@RELOCATABLE@" = yes; then \
            dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \
-           if test -n "$dependencies"; then \
+           if test -n "$$dependencies"; then \
              rm -f $(DESTDIR)$(libdir)/libintl.la; \
            fi; \
          fi; \
@@ -412,6 +425,7 @@ dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h
 dcigettext.$lo: $(srcdir)/eval-plural.h
 localcharset.$lo: $(srcdir)/localcharset.h
 localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h
+printf.$lo: $(srcdir)/printf-args.h $(srcdir)/printf-args.c $(srcdir)/printf-parse.h $(srcdir)/wprintf-parse.h $(srcdir)/xsize.h $(srcdir)/printf-parse.c $(srcdir)/vasnprintf.h $(srcdir)/vasnwprintf.h $(srcdir)/vasnprintf.c
 
 tags: TAGS
 
index 1303183..b4b846c 100644 (file)
@@ -1 +1 @@
-GNU gettext library from gettext-0.12.1
+GNU gettext library from gettext-0.14.1
index 250f5e8..dcdc400 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of the bindtextdomain(3) function
-   Copyright (C) 1995-1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
@@ -86,11 +86,6 @@ __libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
 # define BIND_TEXTDOMAIN_CODESET libintl_bind_textdomain_codeset
 #endif
 
-/* Prototypes for local functions.  */
-static void set_binding_values PARAMS ((const char *domainname,
-                                       const char **dirnamep,
-                                       const char **codesetp));
-
 /* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
    to be used for the DOMAINNAME message catalog.
    If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
@@ -98,10 +93,8 @@ static void set_binding_values PARAMS ((const char *domainname,
    If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
    modified nor returned.  */
 static void
-set_binding_values (domainname, dirnamep, codesetp)
-     const char *domainname;
-     const char **dirnamep;
-     const char **codesetp;
+set_binding_values (const char *domainname,
+                   const char **dirnamep, const char **codesetp)
 {
   struct binding *binding;
   int modified;
@@ -348,9 +341,7 @@ set_binding_values (domainname, dirnamep, codesetp)
 /* 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;
+BINDTEXTDOMAIN (const char *domainname, const char *dirname)
 {
   set_binding_values (domainname, &dirname, NULL);
   return (char *) dirname;
@@ -359,9 +350,7 @@ BINDTEXTDOMAIN (domainname, dirname)
 /* Specify the character encoding in which the messages from the
    DOMAINNAME message catalog will be returned.  */
 char *
-BIND_TEXTDOMAIN_CODESET (domainname, codeset)
-     const char *domainname;
-     const char *codeset;
+BIND_TEXTDOMAIN_CODESET (const char *domainname, const char *codeset)
 {
   set_binding_values (domainname, NULL, &codeset);
   return (char *) codeset;
index 32becec..43d45fb 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Output a system dependent table of character encoding aliases.
 #
-#   Copyright (C) 2000-2003 Free Software Foundation, Inc.
+#   Copyright (C) 2000-2004 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or modify it
 #   under the terms of the GNU Library General Public License as published
 # MIME charset name is preferred.
 # The current list of GNU canonical charset names is as follows.
 #
-#       name                         used by which systems         a MIME name?
-#   ASCII, ANSI_X3.4-1968     glibc solaris freebsd
-#   ISO-8859-1                glibc aix hpux irix osf solaris freebsd   yes
-#   ISO-8859-2                glibc aix hpux irix osf solaris freebsd   yes
-#   ISO-8859-3                glibc solaris                             yes
-#   ISO-8859-4                osf solaris freebsd                       yes
-#   ISO-8859-5                glibc aix hpux irix osf solaris freebsd   yes
-#   ISO-8859-6                glibc aix hpux solaris                    yes
-#   ISO-8859-7                glibc aix hpux irix osf solaris           yes
-#   ISO-8859-8                glibc aix hpux osf solaris                yes
-#   ISO-8859-9                glibc aix hpux irix osf solaris           yes
-#   ISO-8859-13               glibc
-#   ISO-8859-14               glibc
-#   ISO-8859-15               glibc aix osf solaris freebsd
-#   KOI8-R                    glibc solaris freebsd                     yes
-#   KOI8-U                    glibc freebsd                             yes
-#   KOI8-T                    glibc
-#   CP437                     dos
-#   CP775                     dos
-#   CP850                     aix osf dos
-#   CP852                     dos
-#   CP855                     dos
-#   CP856                     aix
-#   CP857                     dos
-#   CP861                     dos
-#   CP862                     dos
-#   CP864                     dos
-#   CP865                     dos
-#   CP866                     freebsd dos
-#   CP869                     dos
-#   CP874                     woe32 dos
-#   CP922                     aix
-#   CP932                     aix woe32 dos
-#   CP943                     aix
-#   CP949                     osf woe32 dos
-#   CP950                     woe32 dos
-#   CP1046                    aix
-#   CP1124                    aix
-#   CP1125                    dos
-#   CP1129                    aix
-#   CP1250                    woe32
-#   CP1251                    glibc solaris woe32
-#   CP1252                    aix woe32
-#   CP1253                    woe32
-#   CP1254                    woe32
-#   CP1255                    glibc woe32
-#   CP1256                    woe32
-#   CP1257                    woe32
-#   GB2312                    glibc aix hpux irix solaris freebsd       yes
-#   EUC-JP                    glibc aix hpux irix osf solaris freebsd   yes
-#   EUC-KR                    glibc aix hpux irix osf solaris freebsd   yes
-#   EUC-TW                    glibc aix hpux irix osf solaris
-#   BIG5                      glibc aix hpux osf solaris freebsd        yes
-#   BIG5-HKSCS                glibc solaris
-#   GBK                       glibc aix osf solaris woe32 dos
-#   GB18030                   glibc solaris
-#   SHIFT_JIS                 hpux osf solaris freebsd                  yes
-#   JOHAB                     glibc solaris woe32
-#   TIS-620                   glibc aix hpux osf solaris
-#   VISCII                    glibc                                     yes
-#   TCVN5712-1                glibc
-#   GEORGIAN-PS               glibc
-#   HP-ROMAN8                 hpux
-#   HP-ARABIC8                hpux
-#   HP-GREEK8                 hpux
-#   HP-HEBREW8                hpux
-#   HP-TURKISH8               hpux
-#   HP-KANA8                  hpux
-#   DEC-KANJI                 osf
-#   DEC-HANYU                 osf
-#   UTF-8                     glibc aix hpux osf solaris                yes
+#       name              MIME?             used by which systems
+#   ASCII, ANSI_X3.4-1968       glibc solaris freebsd darwin
+#   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd darwin
+#   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd darwin
+#   ISO-8859-3              Y   glibc solaris
+#   ISO-8859-4              Y   osf solaris freebsd darwin
+#   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd darwin
+#   ISO-8859-6              Y   glibc aix hpux solaris
+#   ISO-8859-7              Y   glibc aix hpux irix osf solaris
+#   ISO-8859-8              Y   glibc aix hpux osf solaris
+#   ISO-8859-9              Y   glibc aix hpux irix osf solaris
+#   ISO-8859-13                 glibc
+#   ISO-8859-14                 glibc
+#   ISO-8859-15                 glibc aix osf solaris freebsd
+#   KOI8-R                  Y   glibc solaris freebsd darwin
+#   KOI8-U                  Y   glibc freebsd darwin
+#   KOI8-T                      glibc
+#   CP437                       dos
+#   CP775                       dos
+#   CP850                       aix osf dos
+#   CP852                       dos
+#   CP855                       dos
+#   CP856                       aix
+#   CP857                       dos
+#   CP861                       dos
+#   CP862                       dos
+#   CP864                       dos
+#   CP865                       dos
+#   CP866                       freebsd darwin dos
+#   CP869                       dos
+#   CP874                       woe32 dos
+#   CP922                       aix
+#   CP932                       aix woe32 dos
+#   CP943                       aix
+#   CP949                       osf woe32 dos
+#   CP950                       woe32 dos
+#   CP1046                      aix
+#   CP1124                      aix
+#   CP1125                      dos
+#   CP1129                      aix
+#   CP1250                      woe32
+#   CP1251                      glibc solaris darwin woe32
+#   CP1252                      aix woe32
+#   CP1253                      woe32
+#   CP1254                      woe32
+#   CP1255                      glibc woe32
+#   CP1256                      woe32
+#   CP1257                      woe32
+#   GB2312                  Y   glibc aix hpux irix solaris freebsd darwin
+#   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd darwin
+#   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd darwin
+#   EUC-TW                      glibc aix hpux irix osf solaris
+#   BIG5                    Y   glibc aix hpux osf solaris freebsd darwin
+#   BIG5-HKSCS                  glibc solaris
+#   GBK                         glibc aix osf solaris woe32 dos
+#   GB18030                     glibc solaris
+#   SHIFT_JIS               Y   hpux osf solaris freebsd darwin
+#   JOHAB                       glibc solaris woe32
+#   TIS-620                     glibc aix hpux osf solaris
+#   VISCII                  Y   glibc
+#   TCVN5712-1                  glibc
+#   GEORGIAN-PS                 glibc
+#   HP-ROMAN8                   hpux
+#   HP-ARABIC8                  hpux
+#   HP-GREEK8                   hpux
+#   HP-HEBREW8                  hpux
+#   HP-TURKISH8                 hpux
+#   HP-KANA8                    hpux
+#   DEC-KANJI                   osf
+#   DEC-HANYU                   osf
+#   UTF-8                   Y   glibc aix hpux osf solaris
 #
 # Note: Names which are not marked as being a MIME name should not be used in
 # Internet protocols for information interchange (mail, news, etc.).
@@ -121,6 +121,105 @@ echo "# It was automatically generated from config.charset."
 # List of references, updated during installation:
 echo "# Packages using this file: "
 case "$os" in
+    linux-gnulibc1*)
+       # Linux libc5 doesn't have nl_langinfo(CODESET); therefore
+       # localcharset.c falls back to using the full locale name
+       # from the environment variables.
+       echo "C ASCII"
+       echo "POSIX ASCII"
+       for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
+                en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
+                en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
+                es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
+                et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
+                fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
+                it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
+                sv_FI sv_SE; do
+         echo "$l ISO-8859-1"
+         echo "$l.iso-8859-1 ISO-8859-1"
+         echo "$l.iso-8859-15 ISO-8859-15"
+         echo "$l.iso-8859-15@euro ISO-8859-15"
+         echo "$l@euro ISO-8859-15"
+         echo "$l.cp-437 CP437"
+         echo "$l.cp-850 CP850"
+         echo "$l.cp-1252 CP1252"
+         echo "$l.cp-1252@euro CP1252"
+         #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
+         echo "$l.utf-8 UTF-8"
+         echo "$l.utf-8@euro UTF-8"
+       done
+       for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
+                sl_SI sr sr_CS sr_YU; do
+         echo "$l ISO-8859-2"
+         echo "$l.iso-8859-2 ISO-8859-2"
+         echo "$l.cp-852 CP852"
+         echo "$l.cp-1250 CP1250"
+         echo "$l.utf-8 UTF-8"
+       done
+       for l in mk mk_MK ru ru_RU; do
+         echo "$l ISO-8859-5"
+         echo "$l.iso-8859-5 ISO-8859-5"
+         echo "$l.koi8-r KOI8-R"
+         echo "$l.cp-866 CP866"
+         echo "$l.cp-1251 CP1251"
+         echo "$l.utf-8 UTF-8"
+       done
+       for l in ar ar_SA; do
+         echo "$l ISO-8859-6"
+         echo "$l.iso-8859-6 ISO-8859-6"
+         echo "$l.cp-864 CP864"
+         #echo "$l.cp-868 CP868" # not a commonly used encoding
+         echo "$l.cp-1256 CP1256"
+         echo "$l.utf-8 UTF-8"
+       done
+       for l in el el_GR gr gr_GR; do
+         echo "$l ISO-8859-7"
+         echo "$l.iso-8859-7 ISO-8859-7"
+         echo "$l.cp-869 CP869"
+         echo "$l.cp-1253 CP1253"
+         echo "$l.cp-1253@euro CP1253"
+         echo "$l.utf-8 UTF-8"
+         echo "$l.utf-8@euro UTF-8"
+       done
+       for l in he he_IL iw iw_IL; do
+         echo "$l ISO-8859-8"
+         echo "$l.iso-8859-8 ISO-8859-8"
+         echo "$l.cp-862 CP862"
+         echo "$l.cp-1255 CP1255"
+         echo "$l.utf-8 UTF-8"
+       done
+       for l in tr tr_TR; do
+         echo "$l ISO-8859-9"
+         echo "$l.iso-8859-9 ISO-8859-9"
+         echo "$l.cp-857 CP857"
+         echo "$l.cp-1254 CP1254"
+         echo "$l.utf-8 UTF-8"
+       done
+       for l in lt lt_LT lv lv_LV; do
+         #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
+         echo "$l ISO-8859-13"
+       done
+       for l in ru_UA uk uk_UA; do
+         echo "$l KOI8-U"
+       done
+       for l in zh zh_CN; do
+         #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
+         echo "$l GB2312"
+       done
+       for l in ja ja_JP ja_JP.EUC; do
+         echo "$l EUC-JP"
+       done
+       for l in ko ko_KR; do
+         echo "$l EUC-KR"
+       done
+       for l in th th_TH; do
+         echo "$l TIS-620"
+       done
+       for l in fa fa_IR; do
+         #echo "$l ISIRI-3342" # a broken encoding
+         echo "$l.utf-8 UTF-8"
+       done
+       ;;
     linux* | *-gnu*)
        # With glibc-2.1 or newer, we don't need any canonicalization,
        # because glibc has iconv and both glibc and libiconv support all
@@ -297,6 +396,47 @@ case "$os" in
        echo "BIG5 BIG5"
        echo "SJIS SHIFT_JIS"
        ;;
+    darwin*)
+       # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
+       # localcharset.c falls back to using the full locale name
+       # from the environment variables.
+       echo "C ASCII"
+       for l in en_AU en_CA en_GB en_US la_LN; do
+         echo "$l.US-ASCII ASCII"
+       done
+       for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+                fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
+                nl_NL no_NO pt_PT sv_SE; do
+         echo "$l ISO-8859-1"
+         echo "$l.ISO8859-1 ISO-8859-1"
+         echo "$l.ISO8859-15 ISO-8859-15"
+       done
+       for l in la_LN; do
+         echo "$l.ISO8859-1 ISO-8859-1"
+         echo "$l.ISO8859-15 ISO-8859-15"
+       done
+       for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
+         echo "$l.ISO8859-2 ISO-8859-2"
+       done
+       for l in la_LN lt_LT; do
+         echo "$l.ISO8859-4 ISO-8859-4"
+       done
+       for l in ru_RU; do
+         echo "$l.KOI8-R KOI8-R"
+         echo "$l.ISO8859-5 ISO-8859-5"
+         echo "$l.CP866 CP866"
+       done
+       for l in bg_BG; do
+         echo "$l.CP1251 CP1251"
+       done
+       echo "uk_UA.KOI8-U KOI8-U"
+       echo "zh_TW.BIG5 BIG5"
+       echo "zh_TW.Big5 BIG5"
+       echo "zh_CN.EUC GB2312"
+       echo "ja_JP.EUC EUC-JP"
+       echo "ja_JP.SJIS SHIFT_JIS"
+       echo "ko_KR.EUC EUC-KR"
+       ;;
     beos*)
        # BeOS has a single locale, and it has UTF-8 encoding.
        echo "* UTF-8"
@@ -410,6 +550,7 @@ case "$os" in
        echo "sq CP852"
        echo "sq_AL CP852"
        echo "sr CP852"    # CP852 or CP866 or CP855 ??
+       echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
        echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
        # ISO-8859-3 languages
        echo "mt CP850"
index ca6a1c8..850acde 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of the dcgettext(3) function.
-   Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
 /* 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;
+DCGETTEXT (const char *domainname, const char *msgid, int category)
 {
   return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
 }
index f6edb95..35238e2 100644 (file)
@@ -148,13 +148,17 @@ extern int errno;
 char *getwd ();
 #  define getcwd(buf, max) getwd (buf)
 # else
+#  if VMS
+#   define getcwd(buf, max) (getcwd) (buf, max, 0)
+#  else
 char *getcwd ();
+#  endif
 # endif
 # ifndef HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
+static char *stpcpy (char *dest, const char *src);
 # endif
 # ifndef HAVE_MEMPCPY
-static void *mempcpy PARAMS ((void *dest, const void *src, size_t n));
+static void *mempcpy (void *dest, const void *src, size_t n);
 # endif
 #endif
 
@@ -248,11 +252,8 @@ static void *root;
 # endif
 
 /* Function to compare two entries in the table of known translations.  */
-static int transcmp PARAMS ((const void *p1, const void *p2));
 static int
-transcmp (p1, p2)
-     const void *p1;
-     const void *p2;
+transcmp (const void *p1, const void *p2)
 {
   const struct known_translation_t *s1;
   const struct known_translation_t *s2;
@@ -304,19 +305,18 @@ INTVARDEF (_nl_default_dirname)
 struct binding *_nl_domain_bindings;
 
 /* Prototypes for local functions.  */
-static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain,
-                                   unsigned long int n,
-                                   const char *translation,
-                                   size_t translation_len))
+static char *plural_lookup (struct loaded_l10nfile *domain,
+                           unsigned long int n,
+                           const char *translation, size_t translation_len)
      internal_function;
-static const char *guess_category_value PARAMS ((int category,
-                                                const char *categoryname))
+static const char *guess_category_value (int category,
+                                        const char *categoryname)
      internal_function;
 #ifdef _LIBC
 # include "../locale/localeinfo.h"
 # define category_to_name(category)    _nl_category_names[category]
 #else
-static const char *category_to_name PARAMS ((int category)) internal_function;
+static const char *category_to_name (int category) internal_function;
 #endif
 
 
@@ -424,13 +424,8 @@ static int enable_secure;
    CATEGORY locale and, if PLURAL is nonzero, search over string
    depending on the plural form determined by N.  */
 char *
-DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
-     const char *domainname;
-     const char *msgid1;
-     const char *msgid2;
-     int plural;
-     unsigned long int n;
-     int category;
+DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
+           int plural, unsigned long int n, int category)
 {
 #ifndef HAVE_ALLOCA
   struct block_list *block_list = NULL;
@@ -703,11 +698,10 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
 #ifndef _LIBC
   if (!ENABLE_SECURE)
     {
-      extern void _nl_log_untranslated PARAMS ((const char *logfilename,
-                                               const char *domainname,
-                                               const char *msgid1,
-                                               const char *msgid2,
-                                               int plural));
+      extern void _nl_log_untranslated (const char *logfilename,
+                                       const char *domainname,
+                                       const char *msgid1, const char *msgid2,
+                                       int plural);
       const char *logfilename = getenv ("GETTEXT_LOG_UNTRANSLATED");
 
       if (logfilename != NULL && logfilename[0] != '\0')
@@ -724,11 +718,9 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
 
 char *
 internal_function
-_nl_find_msg (domain_file, domainbinding, msgid, lengthp)
-     struct loaded_l10nfile *domain_file;
-     struct binding *domainbinding;
-     const char *msgid;
-     size_t *lengthp;
+_nl_find_msg (struct loaded_l10nfile *domain_file,
+             struct binding *domainbinding, const char *msgid,
+             size_t *lengthp)
 {
   struct loaded_domain *domain;
   nls_uint32 nstrings;
@@ -1035,11 +1027,8 @@ _nl_find_msg (domain_file, domainbinding, msgid, lengthp)
 /* Look up a plural variant.  */
 static char *
 internal_function
-plural_lookup (domain, n, translation, translation_len)
-     struct loaded_l10nfile *domain;
-     unsigned long int n;
-     const char *translation;
-     size_t translation_len;
+plural_lookup (struct loaded_l10nfile *domain, unsigned long int n,
+              const char *translation, size_t translation_len)
 {
   struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
   unsigned long int index;
@@ -1076,8 +1065,7 @@ plural_lookup (domain, n, translation, translation_len)
 /* Return string representation of locale CATEGORY.  */
 static const char *
 internal_function
-category_to_name (category)
-     int category;
+category_to_name (int category)
 {
   const char *retval;
 
@@ -1137,9 +1125,7 @@ category_to_name (category)
 /* 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;
+guess_category_value (int category, const char *categoryname)
 {
   const char *language;
   const char *retval;
@@ -1180,9 +1166,7 @@ guess_category_value (category, categoryname)
    to be defined.  */
 #if !_LIBC && !HAVE_STPCPY
 static char *
-stpcpy (dest, src)
-     char *dest;
-     const char *src;
+stpcpy (char *dest, const char *src)
 {
   while ((*dest++ = *src++) != '\0')
     /* Do nothing. */ ;
@@ -1192,10 +1176,7 @@ stpcpy (dest, src)
 
 #if !_LIBC && !HAVE_MEMPCPY
 static void *
-mempcpy (dest, src, n)
-     void *dest;
-     const void *src;
-     size_t n;
+mempcpy (void *dest, const void *src, size_t n)
 {
   return (void *) ((char *) memcpy (dest, src, n) + n);
 }
index 3a3404e..48a3e09 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of the dcngettext(3) function.
-   Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
 /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
    locale.  */
 char *
-DCNGETTEXT (domainname, msgid1, msgid2, n, category)
-     const char *domainname;
-     const char *msgid1;
-     const char *msgid2;
-     unsigned long int n;
-     int category;
+DCNGETTEXT (const char *domainname,
+           const char *msgid1, const char *msgid2, unsigned long int n,
+           int category)
 {
   return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
 }
index cf5b403..b64b0f5 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of the dgettext(3) function.
-   Copyright (C) 1995-1997, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
 # include <config.h>
 #endif
 
+#include "gettextP.h"
+
 #include <locale.h>
 
-#include "gettextP.h"
 #ifdef _LIBC
 # include <libintl.h>
 #else
@@ -46,9 +47,7 @@
 /* Look up MSGID in the DOMAINNAME message catalog of the current
    LC_MESSAGES locale.  */
 char *
-DGETTEXT (domainname, msgid)
-     const char *domainname;
-     const char *msgid;
+DGETTEXT (const char *domainname, const char *msgid)
 {
   return DCGETTEXT (domainname, msgid, LC_MESSAGES);
 }
index 67fd030..7815637 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of the dngettext(3) function.
-   Copyright (C) 1995-1997, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
 # include <config.h>
 #endif
 
+#include "gettextP.h"
+
 #include <locale.h>
 
-#include "gettextP.h"
 #ifdef _LIBC
 # include <libintl.h>
 #else
 /* Look up MSGID in the DOMAINNAME message catalog of the current
    LC_MESSAGES locale and skip message according to the plural form.  */
 char *
-DNGETTEXT (domainname, msgid1, msgid2, n)
-     const char *domainname;
-     const char *msgid1;
-     const char *msgid2;
-     unsigned long int n;
+DNGETTEXT (const char *domainname,
+          const char *msgid1, const char *msgid2, unsigned long int n)
 {
   return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
 }
index 19c7ca6..01bd5af 100644 (file)
@@ -1,5 +1,5 @@
 /* Plural expression evaluation.
-   Copyright (C) 2000-2002 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
 #endif
 
 /* Evaluate the plural expression and return an index value.  */
-STATIC unsigned long int plural_eval PARAMS ((struct expression *pexp,
-                                             unsigned long int n))
-     internal_function;
-
 STATIC
 unsigned long int
 internal_function
-plural_eval (pexp, n)
-     struct expression *pexp;
-     unsigned long int n;
+plural_eval (struct expression *pexp, unsigned long int n)
 {
   switch (pexp->nargs)
     {
index 2985064..52c25e7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1998, 2000-2001, 2003 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
@@ -38,8 +38,7 @@
 /* @@ end of prolog @@ */
 
 char *
-_nl_find_language (name)
-     const char *name;
+_nl_find_language (const char *name)
 {
   while (name[0] != '\0' && name[0] != '_' && name[0] != '@'
         && name[0] != '+' && name[0] != ',')
@@ -50,17 +49,11 @@ _nl_find_language (name)
 
 
 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;
+_nl_explode_name (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;
index d242764..4992a8c 100644 (file)
@@ -1,5 +1,5 @@
 /* Handle list of needed message catalogs
-   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc.
    Written by Ulrich Drepper <drepper@gnu.org>, 1995.
 
    This program is free software; you can redistribute it and/or modify it
@@ -47,11 +47,8 @@ static struct loaded_l10nfile *_nl_loaded_domains;
    established bindings.  */
 struct loaded_l10nfile *
 internal_function
-_nl_find_domain (dirname, locale, domainname, domainbinding)
-     const char *dirname;
-     char *locale;
-     const char *domainname;
-     struct binding *domainbinding;
+_nl_find_domain (const char *dirname, char *locale,
+                const char *domainname, struct binding *domainbinding)
 {
   struct loaded_l10nfile *retval;
   const char *language;
index 43d689f..92c42fa 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of gettext(3) function.
-   Copyright (C) 1995, 1997, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
@@ -52,8 +52,7 @@
    LC_MESSAGES locale.  If not found, returns MSGID itself (the default
    text).  */
 char *
-GETTEXT (msgid)
-     const char *msgid;
+GETTEXT (const char *msgid)
 {
   return DCGETTEXT (NULL, msgid, LC_MESSAGES);
 }
index f1748a3..4d66c3d 100644 (file)
 
 /* @@ end of prolog @@ */
 
-#ifndef PARAMS
-# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
-#  define PARAMS(args) args
-# else
-#  define PARAMS(args) ()
-# endif
-#endif
-
 #ifndef internal_function
 # define internal_function
 #endif
@@ -159,64 +151,63 @@ struct binding
 extern int _nl_msg_cat_cntr;
 
 #ifndef _LIBC
-const char *_nl_locale_name PARAMS ((int category, const char *categoryname));
+const char *_nl_locale_name (int category, const char *categoryname);
 #endif
 
-struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
-                                                char *__locale,
-                                                const char *__domainname,
-                                             struct binding *__domainbinding))
+struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale,
+                                        const char *__domainname,
+                                        struct binding *__domainbinding)
      internal_function;
-void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
-                             struct binding *__domainbinding))
+void _nl_load_domain (struct loaded_l10nfile *__domain,
+                     struct binding *__domainbinding)
      internal_function;
-void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
+void _nl_unload_domain (struct loaded_domain *__domain)
      internal_function;
-const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
-                                         struct loaded_domain *__domain,
-                                         struct binding *__domainbinding))
+const char *_nl_init_domain_conv (struct loaded_l10nfile *__domain_file,
+                                 struct loaded_domain *__domain,
+                                 struct binding *__domainbinding)
      internal_function;
-void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
+void _nl_free_domain_conv (struct loaded_domain *__domain)
      internal_function;
 
-char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
-                           struct binding *domainbinding,
-                           const char *msgid, size_t *lengthp))
+char *_nl_find_msg (struct loaded_l10nfile *domain_file,
+                   struct binding *domainbinding, const char *msgid,
+                   size_t *lengthp)
      internal_function;
 
 #ifdef _LIBC
-extern char *__gettext PARAMS ((const char *__msgid));
-extern char *__dgettext PARAMS ((const char *__domainname,
-                                const char *__msgid));
-extern char *__dcgettext PARAMS ((const char *__domainname,
-                                 const char *__msgid, int __category));
-extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
-                                unsigned long int __n));
-extern char *__dngettext PARAMS ((const char *__domainname,
-                                 const char *__msgid1, const char *__msgid2,
-                                 unsigned long int n));
-extern char *__dcngettext PARAMS ((const char *__domainname,
-                                  const char *__msgid1, const char *__msgid2,
-                                  unsigned long int __n, int __category));
-extern char *__dcigettext PARAMS ((const char *__domainname,
-                                  const char *__msgid1, const char *__msgid2,
-                                  int __plural, unsigned long int __n,
-                                  int __category));
-extern char *__textdomain PARAMS ((const char *__domainname));
-extern char *__bindtextdomain PARAMS ((const char *__domainname,
-                                      const char *__dirname));
-extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname,
-                                               const char *__codeset));
+extern char *__gettext (const char *__msgid);
+extern char *__dgettext (const char *__domainname, const char *__msgid);
+extern char *__dcgettext (const char *__domainname, const char *__msgid,
+                         int __category);
+extern char *__ngettext (const char *__msgid1, const char *__msgid2,
+                        unsigned long int __n);
+extern char *__dngettext (const char *__domainname,
+                         const char *__msgid1, const char *__msgid2,
+                         unsigned long int n);
+extern char *__dcngettext (const char *__domainname,
+                          const char *__msgid1, const char *__msgid2,
+                          unsigned long int __n, int __category);
+extern char *__dcigettext (const char *__domainname,
+                          const char *__msgid1, const char *__msgid2,
+                          int __plural, unsigned long int __n,
+                          int __category);
+extern char *__textdomain (const char *__domainname);
+extern char *__bindtextdomain (const char *__domainname,
+                              const char *__dirname);
+extern char *__bind_textdomain_codeset (const char *__domainname,
+                                       const char *__codeset);
 #else
 /* Declare the exported libintl_* functions, in a way that allows us to
    call them under their real name.  */
+# undef _INTL_REDIRECT_INLINE
+# undef _INTL_REDIRECT_MACROS
 # define _INTL_REDIRECT_MACROS
 # include "libgnuintl.h"
-extern char *libintl_dcigettext PARAMS ((const char *__domainname,
-                                        const char *__msgid1,
-                                        const char *__msgid2,
-                                        int __plural, unsigned long int __n,
-                                        int __category));
+extern char *libintl_dcigettext (const char *__domainname,
+                                const char *__msgid1, const char *__msgid2,
+                                int __plural, unsigned long int __n,
+                                int __category);
 #endif
 
 /* @@ begin of epilog @@ */
index d1fe4d6..e7c9cc1 100644 (file)
@@ -1,5 +1,5 @@
 /* Description of GNU message catalog format: general file layout.
-   Copyright (C) 1995, 1997, 2000-2002 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 2000-2002, 2004 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
@@ -29,6 +29,7 @@
 
 /* Revision number of the currently used .mo (binary) file format.  */
 #define MO_REVISION_NUMBER 0
+#define MO_REVISION_NUMBER_WITH_SYSDEP_I 1
 
 /* The following contortions are an attempt to use the C preprocessor
    to determine an unsigned integral type that is 32 bits wide.  An
@@ -76,7 +77,7 @@ struct mo_file_header
   /* The revision number of the file format.  */
   nls_uint32 revision;
 
-  /* The following are only used in .mo files with major revision 0.  */
+  /* The following are only used in .mo files with major revision 0 or 1.  */
 
   /* The number of strings pairs.  */
   nls_uint32 nstrings;
index b267a87..093e3b1 100644 (file)
@@ -1,5 +1,5 @@
 /* Description of GNU message catalog format: string hashing function.
-   Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997-1998, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
 
 /* @@ end of prolog @@ */
 
-#ifndef PARAMS
-# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
-#  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 int hash_string PARAMS ((const char *__str_param));
-
 static inline unsigned long int
-hash_string (str_param)
-     const char *str_param;
+hash_string (const char *str_param)
 {
   unsigned long int hval, g;
   const char *str = str_param;
@@ -47,7 +36,7 @@ hash_string (str_param)
   while (*str != '\0')
     {
       hval <<= 4;
-      hval += (unsigned long int) *str++;
+      hval += (unsigned char) *str++;
       g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
       if (g != 0)
        {
index 36b7af0..96f9d95 100644 (file)
@@ -58,8 +58,7 @@
 
 DLL_EXPORTED
 char *
-gettext (msgid)
-     const char *msgid;
+gettext (const char *msgid)
 {
   return libintl_gettext (msgid);
 }
@@ -67,9 +66,7 @@ gettext (msgid)
 
 DLL_EXPORTED
 char *
-dgettext (domainname, msgid)
-     const char *domainname;
-     const char *msgid;
+dgettext (const char *domainname, const char *msgid)
 {
   return libintl_dgettext (domainname, msgid);
 }
@@ -77,10 +74,7 @@ dgettext (domainname, msgid)
 
 DLL_EXPORTED
 char *
-dcgettext (domainname, msgid, category)
-     const char *domainname;
-     const char *msgid;
-     int category;
+dcgettext (const char *domainname, const char *msgid, int category)
 {
   return libintl_dcgettext (domainname, msgid, category);
 }
@@ -88,10 +82,7 @@ dcgettext (domainname, msgid, category)
 
 DLL_EXPORTED
 char *
-ngettext (msgid1, msgid2, n)
-     const char *msgid1;
-     const char *msgid2;
-     unsigned long int n;
+ngettext (const char *msgid1, const char *msgid2, unsigned long int n)
 {
   return libintl_ngettext (msgid1, msgid2, n);
 }
@@ -99,11 +90,8 @@ ngettext (msgid1, msgid2, n)
 
 DLL_EXPORTED
 char *
-dngettext (domainname, msgid1, msgid2, n)
-     const char *domainname;
-     const char *msgid1;
-     const char *msgid2;
-     unsigned long int n;
+dngettext (const char *domainname,
+          const char *msgid1, const char *msgid2, unsigned long int n)
 {
   return libintl_dngettext (domainname, msgid1, msgid2, n);
 }
@@ -111,12 +99,9 @@ dngettext (domainname, msgid1, msgid2, n)
 
 DLL_EXPORTED
 char *
-dcngettext (domainname, msgid1, msgid2, n, category)
-     const char *domainname;
-     const char *msgid1;
-     const char *msgid2;
-     unsigned long int n;
-     int category;
+dcngettext (const char *domainname,
+           const char *msgid1, const char *msgid2, unsigned long int n,
+           int category)
 {
   return libintl_dcngettext (domainname, msgid1, msgid2, n, category);
 }
@@ -124,8 +109,7 @@ dcngettext (domainname, msgid1, msgid2, n, category)
 
 DLL_EXPORTED
 char *
-textdomain (domainname)
-     const char *domainname;
+textdomain (const char *domainname)
 {
   return libintl_textdomain (domainname);
 }
@@ -133,9 +117,7 @@ textdomain (domainname)
 
 DLL_EXPORTED
 char *
-bindtextdomain (domainname, dirname)
-     const char *domainname;
-     const char *dirname;
+bindtextdomain (const char *domainname, const char *dirname)
 {
   return libintl_bindtextdomain (domainname, dirname);
 }
@@ -143,9 +125,7 @@ bindtextdomain (domainname, dirname)
 
 DLL_EXPORTED
 char *
-bind_textdomain_codeset (domainname, codeset)
-     const char *domainname;
-     const char *codeset;
+bind_textdomain_codeset (const char *domainname, const char *codeset)
 {
   return libintl_bind_textdomain_codeset (domainname, codeset);
 }
index ec8713f..eb995aa 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000-2003 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
@@ -58,7 +58,7 @@
 # endif
 #else
 # ifndef HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
+static char *stpcpy (char *dest, const char *src);
 # endif
 #endif
 
@@ -84,12 +84,8 @@ static char *stpcpy PARAMS ((char *dest, const char *src));
 
 #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;
+argz_count__ (const char *argz, size_t len)
 {
   size_t count = 0;
   while (len > 0)
@@ -112,13 +108,8 @@ argz_count__ (argz, len)
 #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;
+argz_stringify__ (char *argz, size_t len, int sep)
 {
   while (len > 0)
     {
@@ -139,14 +130,8 @@ 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;
+argz_next__ (char *argz, size_t argz_len, const char *entry)
 {
   if (entry)
     {
@@ -167,11 +152,8 @@ argz_next__ (argz, argz_len, entry)
 
 
 /* Return number of bits set in X.  */
-static int pop PARAMS ((int x));
-
 static inline int
-pop (x)
-     int x;
+pop (int x)
 {
   /* We assume that no more than 16 bits are used.  */
   x = ((x & ~0x5555) >> 1) + (x & 0x5555);
@@ -184,23 +166,13 @@ pop (x)
 
 \f
 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;
+_nl_make_l10nflist (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 **lastp;
@@ -393,9 +365,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
    names.  The return value is dynamically allocated and has to be
    freed by the caller.  */
 const char *
-_nl_normalize_codeset (codeset, name_len)
-     const char *codeset;
-     size_t name_len;
+_nl_normalize_codeset (const char *codeset, size_t name_len)
 {
   int len = 0;
   int only_digit = 1;
@@ -442,9 +412,7 @@ _nl_normalize_codeset (codeset, name_len)
    to be defined.  */
 #if !_LIBC && !HAVE_STPCPY
 static char *
-stpcpy (dest, src)
-     char *dest;
-     const char *src;
+stpcpy (char *dest, const char *src)
 {
   while ((*dest++ = *src++) != '\0')
     /* Do nothing. */ ;
index f596cfc..3be7eb9 100644 (file)
 # undef gettext
 #endif
 
-/* Use _INTL_PARAMS, not PARAMS, in order to avoid clashes with identifiers
-   used by programs.  Similarly, test __PROTOTYPES, not PROTOTYPES.  */
-#ifndef _INTL_PARAMS
-# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
-#  define _INTL_PARAMS(args) args
-# else
-#  define _INTL_PARAMS(args) ()
-# endif
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -93,7 +83,7 @@ extern "C" {
    If he doesn't, we choose the method.  A third possible method is
    _INTL_REDIRECT_ASM, supported only by GCC.  */
 #if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)
-# if __GNUC__ >= 2 && !defined __APPLE_CC__ && (defined __STDC__ || defined __cplusplus)
+# if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
 #  define _INTL_REDIRECT_ASM
 # else
 #  ifdef __cplusplus
@@ -125,7 +115,7 @@ static inline char *gettext (const char *__msgid)
 #ifdef _INTL_REDIRECT_MACROS
 # define gettext libintl_gettext
 #endif
-extern char *gettext _INTL_PARAMS ((const char *__msgid))
+extern char *gettext (const char *__msgid)
        _INTL_ASM (libintl_gettext);
 #endif
 
@@ -141,8 +131,7 @@ static inline char *dgettext (const char *__domainname, const char *__msgid)
 #ifdef _INTL_REDIRECT_MACROS
 # define dgettext libintl_dgettext
 #endif
-extern char *dgettext _INTL_PARAMS ((const char *__domainname,
-                                    const char *__msgid))
+extern char *dgettext (const char *__domainname, const char *__msgid)
        _INTL_ASM (libintl_dgettext);
 #endif
 
@@ -160,9 +149,8 @@ static inline char *dcgettext (const char *__domainname, const char *__msgid,
 #ifdef _INTL_REDIRECT_MACROS
 # define dcgettext libintl_dcgettext
 #endif
-extern char *dcgettext _INTL_PARAMS ((const char *__domainname,
-                                     const char *__msgid,
-                                     int __category))
+extern char *dcgettext (const char *__domainname, const char *__msgid,
+                       int __category)
        _INTL_ASM (libintl_dcgettext);
 #endif
 
@@ -181,9 +169,8 @@ static inline char *ngettext (const char *__msgid1, const char *__msgid2,
 #ifdef _INTL_REDIRECT_MACROS
 # define ngettext libintl_ngettext
 #endif
-extern char *ngettext _INTL_PARAMS ((const char *__msgid1,
-                                    const char *__msgid2,
-                                    unsigned long int __n))
+extern char *ngettext (const char *__msgid1, const char *__msgid2,
+                      unsigned long int __n)
        _INTL_ASM (libintl_ngettext);
 #endif
 
@@ -201,10 +188,9 @@ static inline char *dngettext (const char *__domainname, const char *__msgid1,
 #ifdef _INTL_REDIRECT_MACROS
 # define dngettext libintl_dngettext
 #endif
-extern char *dngettext _INTL_PARAMS ((const char *__domainname,
-                                     const char *__msgid1,
-                                     const char *__msgid2,
-                                     unsigned long int __n))
+extern char *dngettext (const char *__domainname,
+                       const char *__msgid1, const char *__msgid2,
+                       unsigned long int __n)
        _INTL_ASM (libintl_dngettext);
 #endif
 
@@ -224,11 +210,9 @@ static inline char *dcngettext (const char *__domainname,
 #ifdef _INTL_REDIRECT_MACROS
 # define dcngettext libintl_dcngettext
 #endif
-extern char *dcngettext _INTL_PARAMS ((const char *__domainname,
-                                      const char *__msgid1,
-                                      const char *__msgid2,
-                                      unsigned long int __n,
-                                      int __category))
+extern char *dcngettext (const char *__domainname,
+                        const char *__msgid1, const char *__msgid2,
+                        unsigned long int __n, int __category)
        _INTL_ASM (libintl_dcngettext);
 #endif
 
@@ -246,7 +230,7 @@ static inline char *textdomain (const char *__domainname)
 #ifdef _INTL_REDIRECT_MACROS
 # define textdomain libintl_textdomain
 #endif
-extern char *textdomain _INTL_PARAMS ((const char *__domainname))
+extern char *textdomain (const char *__domainname)
        _INTL_ASM (libintl_textdomain);
 #endif
 
@@ -264,8 +248,7 @@ static inline char *bindtextdomain (const char *__domainname,
 #ifdef _INTL_REDIRECT_MACROS
 # define bindtextdomain libintl_bindtextdomain
 #endif
-extern char *bindtextdomain _INTL_PARAMS ((const char *__domainname,
-                                          const char *__dirname))
+extern char *bindtextdomain (const char *__domainname, const char *__dirname)
        _INTL_ASM (libintl_bindtextdomain);
 #endif
 
@@ -283,12 +266,103 @@ static inline char *bind_textdomain_codeset (const char *__domainname,
 #ifdef _INTL_REDIRECT_MACROS
 # define bind_textdomain_codeset libintl_bind_textdomain_codeset
 #endif
-extern char *bind_textdomain_codeset _INTL_PARAMS ((const char *__domainname,
-                                                   const char *__codeset))
+extern char *bind_textdomain_codeset (const char *__domainname,
+                                     const char *__codeset)
        _INTL_ASM (libintl_bind_textdomain_codeset);
 #endif
 
 
+/* Support for format strings with positions in *printf(), following the
+   POSIX/XSI specification.
+   Note: These replacements for the *printf() functions are visible only
+   in source files that #include <libintl.h> or #include "gettext.h".
+   Packages that use *printf() in source files that don't refer to _()
+   or gettext() but for which the format string could be the return value
+   of _() or gettext() need to add this #include.  Oh well.  */
+
+#if !@HAVE_POSIX_PRINTF@
+
+#include <stdio.h>
+#include <stddef.h>
+
+/* Get va_list.  */
+#if __STDC__ || defined __cplusplus || defined _MSC_VER
+# include <stdarg.h>
+#else
+# include <varargs.h>
+#endif
+
+#undef fprintf
+#define fprintf libintl_fprintf
+extern int fprintf (FILE *, const char *, ...);
+#undef vfprintf
+#define vfprintf libintl_vfprintf
+extern int vfprintf (FILE *, const char *, va_list);
+
+#undef printf
+#define printf libintl_printf
+extern int printf (const char *, ...);
+#undef vprintf
+#define vprintf libintl_vprintf
+extern int vprintf (const char *, va_list);
+
+#undef sprintf
+#define sprintf libintl_sprintf
+extern int sprintf (char *, const char *, ...);
+#undef vsprintf
+#define vsprintf libintl_vsprintf
+extern int vsprintf (char *, const char *, va_list);
+
+#if @HAVE_SNPRINTF@
+
+#undef snprintf
+#define snprintf libintl_snprintf
+extern int snprintf (char *, size_t, const char *, ...);
+#undef vsnprintf
+#define vsnprintf libintl_vsnprintf
+extern int vsnprintf (char *, size_t, const char *, va_list);
+
+#endif
+
+#if @HAVE_ASPRINTF@
+
+#undef asprintf
+#define asprintf libintl_asprintf
+extern int asprintf (char **, const char *, ...);
+#undef vasprintf
+#define vasprintf libintl_vasprintf
+extern int vasprintf (char **, const char *, va_list);
+
+#endif
+
+#if @HAVE_WPRINTF@
+
+#undef fwprintf
+#define fwprintf libintl_fwprintf
+extern int fwprintf (FILE *, const wchar_t *, ...);
+#undef vfwprintf
+#define vfwprintf libintl_vfwprintf
+extern int vfwprintf (FILE *, const wchar_t *, va_list);
+
+#undef wprintf
+#define wprintf libintl_wprintf
+extern int wprintf (const wchar_t *, ...);
+#undef vwprintf
+#define vwprintf libintl_vwprintf
+extern int vwprintf (const wchar_t *, va_list);
+
+#undef swprintf
+#define swprintf libintl_swprintf
+extern int swprintf (wchar_t *, size_t, const wchar_t *, ...);
+#undef vswprintf
+#define vswprintf libintl_vswprintf
+extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list);
+
+#endif
+
+#endif
+
+
 /* Support for relocatable packages.  */
 
 /* Sets the original and the current installation prefix of the package.
@@ -298,8 +372,8 @@ extern char *bind_textdomain_codeset _INTL_PARAMS ((const char *__domainname,
    instead of "/").  */
 #define libintl_set_relocation_prefix libintl_set_relocation_prefix
 extern void
-       libintl_set_relocation_prefix _INTL_PARAMS ((const char *orig_prefix,
-                                                   const char *curr_prefix));
+       libintl_set_relocation_prefix (const char *orig_prefix,
+                                     const char *curr_prefix);
 
 
 #ifdef __cplusplus
index 1d3ba61..65e5ebd 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-1999, 2000-2002 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999, 2000-2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
    in gettextP.h.
  */
 
-#ifndef PARAMS
-# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
-#  define PARAMS(args) args
-# else
-#  define PARAMS(args) ()
-# endif
-#endif
-
 #ifndef internal_function
 # define internal_function
 #endif
@@ -89,8 +81,8 @@ struct loaded_l10nfile
    names.  Normalization allows the user to use any of the common
    names.  The return value is dynamically allocated and has to be
    freed by the caller.  */
-extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
-                                                 size_t name_len));
+extern const char *_nl_normalize_codeset (const char *codeset,
+                                         size_t name_len);
 
 /* Lookup a locale dependent file.
    *L10NFILE_LIST denotes a pool of lookup results of locale dependent
@@ -107,19 +99,18 @@ extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
    furthermore its ->successor[] field contains a list of other lookup
    results from which this lookup result inherits.  */
 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));
+_nl_make_l10nflist (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);
 
 /* Lookup the real locale name for a locale alias NAME, or NULL if
    NAME is not a locale alias (but possibly a real locale name).
    The return value is statically allocated and must not be freed.  */
-extern const char *_nl_expand_alias PARAMS ((const char *name));
+extern const char *_nl_expand_alias (const char *name);
 
 /* Split a locale name NAME into its pieces: language, modifier,
    territory, codeset, special, sponsor, revision.
@@ -139,18 +130,16 @@ extern const char *_nl_expand_alias PARAMS ((const char *name));
      CEN_SPONSOR                 for *SPONSOR,
      CEN_REVISION                for *REVISION.
  */
-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));
+extern int _nl_explode_name (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);
 
 /* Split a locale name NAME into a leading language part and all the
    rest.  Return a pointer to the first character after the language,
    i.e. to the first byte of the rest.  */
-extern char *_nl_find_language PARAMS ((const char *name));
+extern char *_nl_find_language (const char *name);
 
 #endif /* loadinfo.h */
index 8509bd3..99c51b4 100644 (file)
@@ -1,5 +1,5 @@
 /* Load needed message catalogs.
-   Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
@@ -491,11 +491,6 @@ char *alloca ();
 #endif
 
 
-/* Prototypes for local functions.  Needed to ensure compiler checking of
-   function argument counts despite of K&R C function definition syntax.  */
-static const char *get_sysdep_segment_value PARAMS ((const char *name));
-
-
 /* 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.  */
@@ -504,8 +499,7 @@ int _nl_msg_cat_cntr;
 
 /* Expand a system dependent string segment.  Return NULL if unsupported.  */
 static const char *
-get_sysdep_segment_value (name)
-     const char *name;
+get_sysdep_segment_value (const char *name)
 {
   /* Test for an ISO C 99 section 7.8.1 format string directive.
      Syntax:
@@ -754,6 +748,18 @@ get_sysdep_segment_value (name)
            }
        }
     }
+  /* Test for a glibc specific printf() format directive flag.  */
+  if (name[0] == 'I' && name[1] == '\0')
+    {
+#if defined _LIBC || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+      /* The 'I' flag, in numeric format directives, replaces ASCII digits
+        with the 'outdigits' defined in the LC_CTYPE locale facet.  This is
+        used for Farsi (Persian) and maybe Arabic.  */
+      return "I";
+#else
+      return "";
+#endif
+    }
   /* Other system dependent strings are not valid.  */
   return NULL;
 }
@@ -762,10 +768,9 @@ get_sysdep_segment_value (name)
    Return the header entry.  */
 const char *
 internal_function
-_nl_init_domain_conv (domain_file, domain, domainbinding)
-     struct loaded_l10nfile *domain_file;
-     struct loaded_domain *domain;
-     struct binding *domainbinding;
+_nl_init_domain_conv (struct loaded_l10nfile *domain_file,
+                     struct loaded_domain *domain,
+                     struct binding *domainbinding)
 {
   /* Find out about the character set the file is encoded with.
      This can be found (in textual form) in the entry "".  If this
@@ -829,7 +834,7 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
                  outcharset = _NL_CURRENT (LC_CTYPE, CODESET);
 # else
 #  if HAVE_ICONV
-                 extern const char *locale_charset PARAMS ((void));
+                 extern const char *locale_charset (void);
                  outcharset = locale_charset ();
 #  endif
 # endif
@@ -881,8 +886,7 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
 /* Frees the codeset dependent parts of an opened message catalog.  */
 void
 internal_function
-_nl_free_domain_conv (domain)
-     struct loaded_domain *domain;
+_nl_free_domain_conv (struct loaded_domain *domain)
 {
   if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
     free (domain->conv_tab);
@@ -902,9 +906,8 @@ _nl_free_domain_conv (domain)
    message catalog do nothing.  */
 void
 internal_function
-_nl_load_domain (domain_file, domainbinding)
-     struct loaded_l10nfile *domain_file;
-     struct binding *domainbinding;
+_nl_load_domain (struct loaded_l10nfile *domain_file,
+                struct binding *domainbinding)
 {
   int fd;
   size_t size;
@@ -1028,10 +1031,11 @@ _nl_load_domain (domain_file, domainbinding)
 
   /* Fill in the information about the available tables.  */
   revision = W (domain->must_swap, data->revision);
-  /* We support only the major revision 0.  */
+  /* We support only the major revisions 0 and 1.  */
   switch (revision >> 16)
     {
     case 0:
+    case 1:
       domain->nstrings = W (domain->must_swap, data->nstrings);
       domain->orig_tab = (const struct string_desc *)
        ((char *) data + W (domain->must_swap, data->orig_tab_offset));
@@ -1071,12 +1075,13 @@ _nl_load_domain (domain_file, domainbinding)
                const char **sysdep_segment_values;
                const nls_uint32 *orig_sysdep_tab;
                const nls_uint32 *trans_sysdep_tab;
+               nls_uint32 n_inmem_sysdep_strings;
                size_t memneed;
                char *mem;
                struct sysdep_string_desc *inmem_orig_sysdep_tab;
                struct sysdep_string_desc *inmem_trans_sysdep_tab;
                nls_uint32 *inmem_hash_tab;
-               unsigned int i;
+               unsigned int i, j;
 
                /* Get the values of the system dependent segments.  */
                n_sysdep_segments =
@@ -1111,153 +1116,247 @@ _nl_load_domain (domain_file, domainbinding)
                   + W (domain->must_swap, data->trans_sysdep_tab_offset));
 
                /* Compute the amount of additional memory needed for the
-                  system dependent strings and the augmented hash table.  */
-               memneed = 2 * n_sysdep_strings
-                         * sizeof (struct sysdep_string_desc)
-                         + domain->hash_size * sizeof (nls_uint32);
-               for (i = 0; i < 2 * n_sysdep_strings; i++)
+                  system dependent strings and the augmented hash table.
+                  At the same time, also drop string pairs which refer to
+                  an undefined system dependent segment.  */
+               n_inmem_sysdep_strings = 0;
+               memneed = domain->hash_size * sizeof (nls_uint32);
+               for (i = 0; i < n_sysdep_strings; i++)
                  {
-                   const struct sysdep_string *sysdep_string =
-                     (const struct sysdep_string *)
-                     ((char *) data
-                      + W (domain->must_swap,
-                           i < n_sysdep_strings
-                           ? orig_sysdep_tab[i]
-                           : trans_sysdep_tab[i - n_sysdep_strings]));
-                   size_t need = 0;
-                   const struct segment_pair *p = sysdep_string->segments;
-
-                   if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END)
-                     for (p = sysdep_string->segments;; p++)
-                       {
-                         nls_uint32 sysdepref;
-
-                         need += W (domain->must_swap, p->segsize);
-
-                         sysdepref = W (domain->must_swap, p->sysdepref);
-                         if (sysdepref == SEGMENTS_END)
-                           break;
-
-                         if (sysdepref >= n_sysdep_segments)
+                   int valid = 1;
+                   size_t needs[2];
+
+                   for (j = 0; j < 2; j++)
+                     {
+                       const struct sysdep_string *sysdep_string =
+                         (const struct sysdep_string *)
+                         ((char *) data
+                          + W (domain->must_swap,
+                               j == 0
+                               ? orig_sysdep_tab[i]
+                               : trans_sysdep_tab[i]));
+                       size_t need = 0;
+                       const struct segment_pair *p = sysdep_string->segments;
+
+                       if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END)
+                         for (p = sysdep_string->segments;; p++)
                            {
-                             /* Invalid.  */
-                             freea (sysdep_segment_values);
-                             goto invalid;
-                           }
+                             nls_uint32 sysdepref;
 
-                         need += strlen (sysdep_segment_values[sysdepref]);
-                       }
+                             need += W (domain->must_swap, p->segsize);
 
-                   memneed += need;
-                 }
+                             sysdepref = W (domain->must_swap, p->sysdepref);
+                             if (sysdepref == SEGMENTS_END)
+                               break;
 
-               /* Allocate additional memory.  */
-               mem = (char *) malloc (memneed);
-               if (mem == NULL)
-                 goto invalid;
-
-               domain->malloced = mem;
-               inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem;
-               mem += n_sysdep_strings * sizeof (struct sysdep_string_desc);
-               inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem;
-               mem += n_sysdep_strings * sizeof (struct sysdep_string_desc);
-               inmem_hash_tab = (nls_uint32 *) mem;
-               mem += domain->hash_size * sizeof (nls_uint32);
-
-               /* Compute the system dependent strings.  */
-               for (i = 0; i < 2 * n_sysdep_strings; i++)
-                 {
-                   const struct sysdep_string *sysdep_string =
-                     (const struct sysdep_string *)
-                     ((char *) data
-                      + W (domain->must_swap,
-                           i < n_sysdep_strings
-                           ? orig_sysdep_tab[i]
-                           : trans_sysdep_tab[i - n_sysdep_strings]));
-                   const char *static_segments =
-                     (char *) data
-                     + W (domain->must_swap, sysdep_string->offset);
-                   const struct segment_pair *p = sysdep_string->segments;
+                             if (sysdepref >= n_sysdep_segments)
+                               {
+                                 /* Invalid.  */
+                                 freea (sysdep_segment_values);
+                                 goto invalid;
+                               }
+
+                             if (sysdep_segment_values[sysdepref] == NULL)
+                               {
+                                 /* This particular string pair is invalid.  */
+                                 valid = 0;
+                                 break;
+                               }
+
+                             need += strlen (sysdep_segment_values[sysdepref]);
+                           }
 
-                   /* Concatenate the segments, and fill
-                      inmem_orig_sysdep_tab[i] (for i < n_sysdep_strings) and
-                      inmem_trans_sysdep_tab[i-n_sysdep_strings] (for
-                      i >= n_sysdep_strings).  */
+                       needs[j] = need;
+                       if (!valid)
+                         break;
+                     }
 
-                   if (W (domain->must_swap, p->sysdepref) == SEGMENTS_END)
+                   if (valid)
                      {
-                       /* Only one static segment.  */
-                       inmem_orig_sysdep_tab[i].length =
-                         W (domain->must_swap, p->segsize);
-                       inmem_orig_sysdep_tab[i].pointer = static_segments;
+                       n_inmem_sysdep_strings++;
+                       memneed += needs[0] + needs[1];
                      }
-                   else
+                 }
+               memneed += 2 * n_inmem_sysdep_strings
+                          * sizeof (struct sysdep_string_desc);
+
+               if (n_inmem_sysdep_strings > 0)
+                 {
+                   unsigned int k;
+
+                   /* Allocate additional memory.  */
+                   mem = (char *) malloc (memneed);
+                   if (mem == NULL)
+                     goto invalid;
+
+                   domain->malloced = mem;
+                   inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem;
+                   mem += n_inmem_sysdep_strings
+                          * sizeof (struct sysdep_string_desc);
+                   inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem;
+                   mem += n_inmem_sysdep_strings
+                          * sizeof (struct sysdep_string_desc);
+                   inmem_hash_tab = (nls_uint32 *) mem;
+                   mem += domain->hash_size * sizeof (nls_uint32);
+
+                   /* Compute the system dependent strings.  */
+                   k = 0;
+                   for (i = 0; i < n_sysdep_strings; i++)
                      {
-                       inmem_orig_sysdep_tab[i].pointer = mem;
+                       int valid = 1;
 
-                       for (p = sysdep_string->segments;; p++)
+                       for (j = 0; j < 2; j++)
                          {
-                           nls_uint32 segsize =
-                             W (domain->must_swap, p->segsize);
-                           nls_uint32 sysdepref =
-                             W (domain->must_swap, p->sysdepref);
-                           size_t n;
+                           const struct sysdep_string *sysdep_string =
+                             (const struct sysdep_string *)
+                             ((char *) data
+                              + W (domain->must_swap,
+                                   j == 0
+                                   ? orig_sysdep_tab[i]
+                                   : trans_sysdep_tab[i]));
+                           const struct segment_pair *p =
+                             sysdep_string->segments;
+
+                           if (W (domain->must_swap, p->sysdepref)
+                               != SEGMENTS_END)
+                             for (p = sysdep_string->segments;; p++)
+                               {
+                                 nls_uint32 sysdepref;
+
+                                 sysdepref =
+                                   W (domain->must_swap, p->sysdepref);
+                                 if (sysdepref == SEGMENTS_END)
+                                   break;
+
+                                 if (sysdep_segment_values[sysdepref] == NULL)
+                                   {
+                                     /* This particular string pair is
+                                        invalid.  */
+                                     valid = 0;
+                                     break;
+                                   }
+                               }
+
+                           if (!valid)
+                             break;
+                         }
 
-                           if (segsize > 0)
+                       if (valid)
+                         {
+                           for (j = 0; j < 2; j++)
                              {
-                               memcpy (mem, static_segments, segsize);
-                               mem += segsize;
-                               static_segments += segsize;
+                               const struct sysdep_string *sysdep_string =
+                                 (const struct sysdep_string *)
+                                 ((char *) data
+                                  + W (domain->must_swap,
+                                       j == 0
+                                       ? orig_sysdep_tab[i]
+                                       : trans_sysdep_tab[i]));
+                               const char *static_segments =
+                                 (char *) data
+                                 + W (domain->must_swap, sysdep_string->offset);
+                               const struct segment_pair *p =
+                                 sysdep_string->segments;
+
+                               /* Concatenate the segments, and fill
+                                  inmem_orig_sysdep_tab[k] (for j == 0) and
+                                  inmem_trans_sysdep_tab[k] (for j == 1).  */
+
+                               struct sysdep_string_desc *inmem_tab_entry =
+                                 (j == 0
+                                  ? inmem_orig_sysdep_tab
+                                  : inmem_trans_sysdep_tab)
+                                 + k;
+
+                               if (W (domain->must_swap, p->sysdepref)
+                                   == SEGMENTS_END)
+                                 {
+                                   /* Only one static segment.  */
+                                   inmem_tab_entry->length =
+                                     W (domain->must_swap, p->segsize);
+                                   inmem_tab_entry->pointer = static_segments;
+                                 }
+                               else
+                                 {
+                                   inmem_tab_entry->pointer = mem;
+
+                                   for (p = sysdep_string->segments;; p++)
+                                     {
+                                       nls_uint32 segsize =
+                                         W (domain->must_swap, p->segsize);
+                                       nls_uint32 sysdepref =
+                                         W (domain->must_swap, p->sysdepref);
+                                       size_t n;
+
+                                       if (segsize > 0)
+                                         {
+                                           memcpy (mem, static_segments, segsize);
+                                           mem += segsize;
+                                           static_segments += segsize;
+                                         }
+
+                                       if (sysdepref == SEGMENTS_END)
+                                         break;
+
+                                       n = strlen (sysdep_segment_values[sysdepref]);
+                                       memcpy (mem, sysdep_segment_values[sysdepref], n);
+                                       mem += n;
+                                     }
+
+                                   inmem_tab_entry->length =
+                                     mem - inmem_tab_entry->pointer;
+                                 }
                              }
 
-                           if (sysdepref == SEGMENTS_END)
-                             break;
-
-                           n = strlen (sysdep_segment_values[sysdepref]);
-                           memcpy (mem, sysdep_segment_values[sysdepref], n);
-                           mem += n;
+                           k++;
                          }
-
-                       inmem_orig_sysdep_tab[i].length =
-                         mem - inmem_orig_sysdep_tab[i].pointer;
                      }
-                 }
-
-               /* Compute the augmented hash table.  */
-               for (i = 0; i < domain->hash_size; i++)
-                 inmem_hash_tab[i] =
-                   W (domain->must_swap_hash_tab, domain->hash_tab[i]);
-               for (i = 0; i < n_sysdep_strings; i++)
-                 {
-                   const char *msgid = inmem_orig_sysdep_tab[i].pointer;
-                   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));
-
-                   for (;;)
+                   if (k != n_inmem_sysdep_strings)
+                     abort ();
+
+                   /* Compute the augmented hash table.  */
+                   for (i = 0; i < domain->hash_size; i++)
+                     inmem_hash_tab[i] =
+                       W (domain->must_swap_hash_tab, domain->hash_tab[i]);
+                   for (i = 0; i < n_inmem_sysdep_strings; i++)
                      {
-                       if (inmem_hash_tab[idx] == 0)
+                       const char *msgid = inmem_orig_sysdep_tab[i].pointer;
+                       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));
+
+                       for (;;)
                          {
-                           /* Hash table entry is empty.  Use it.  */
-                           inmem_hash_tab[idx] = 1 + domain->nstrings + i;
-                           break;
-                         }
+                           if (inmem_hash_tab[idx] == 0)
+                             {
+                               /* Hash table entry is empty.  Use it.  */
+                               inmem_hash_tab[idx] = 1 + domain->nstrings + i;
+                               break;
+                             }
 
-                       if (idx >= domain->hash_size - incr)
-                         idx -= domain->hash_size - incr;
-                       else
-                         idx += incr;
+                           if (idx >= domain->hash_size - incr)
+                             idx -= domain->hash_size - incr;
+                           else
+                             idx += incr;
+                         }
                      }
-                 }
 
-               freea (sysdep_segment_values);
+                   domain->n_sysdep_strings = n_inmem_sysdep_strings;
+                   domain->orig_sysdep_tab = inmem_orig_sysdep_tab;
+                   domain->trans_sysdep_tab = inmem_trans_sysdep_tab;
 
-               domain->n_sysdep_strings = n_sysdep_strings;
-               domain->orig_sysdep_tab = inmem_orig_sysdep_tab;
-               domain->trans_sysdep_tab = inmem_trans_sysdep_tab;
+                   domain->hash_tab = inmem_hash_tab;
+                   domain->must_swap_hash_tab = 0;
+                 }
+               else
+                 {
+                   domain->n_sysdep_strings = 0;
+                   domain->orig_sysdep_tab = NULL;
+                   domain->trans_sysdep_tab = NULL;
+                 }
 
-               domain->hash_tab = inmem_hash_tab;
-               domain->must_swap_hash_tab = 0;
+               freea (sysdep_segment_values);
              }
            else
              {
@@ -1299,8 +1398,7 @@ _nl_load_domain (domain_file, domainbinding)
 #ifdef _LIBC
 void
 internal_function
-_nl_unload_domain (domain)
-     struct loaded_domain *domain;
+_nl_unload_domain (struct loaded_domain *domain)
 {
   if (domain->plural != &__gettext_germanic_plural)
     __gettext_free_exp (domain->plural);
index d04d053..4865f10 100644 (file)
@@ -86,7 +86,7 @@
 # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
 #endif
 
-#ifdef HAVE_GETC_UNLOCKED
+#if HAVE_DECL_GETC_UNLOCKED
 # undef getc
 # define getc getc_unlocked
 #endif
index bd7b9b3..bd6bb25 100644 (file)
@@ -1,5 +1,5 @@
 # Locale name alias data base.
-# Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
+# Copyright (C) 1996-2001,2003 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU Library General Public License as published
@@ -29,8 +29,8 @@
 
 # Packages using this file: 
 
-bokmal         no_NO.ISO-8859-1
-bokmål         no_NO.ISO-8859-1
+bokmal         nb_NO.ISO-8859-1
+bokmål         nb_NO.ISO-8859-1
 catalan                ca_ES.ISO-8859-1
 croatian       hr_HR.ISO-8859-2
 czech          cs_CZ.ISO-8859-2
@@ -61,9 +61,9 @@ korean                ko_KR.eucKR
 korean.euc     ko_KR.eucKR
 ko_KR          ko_KR.eucKR
 lithuanian      lt_LT.ISO-8859-13
-nb_NO          no_NO.ISO-8859-1
-nb_NO.ISO-8859-1 no_NO.ISO-8859-1
-norwegian       no_NO.ISO-8859-1
+no_NO          nb_NO.ISO-8859-1
+no_NO.ISO-8859-1 nb_NO.ISO-8859-1
+norwegian       nb_NO.ISO-8859-1
 nynorsk                nn_NO.ISO-8859-1
 polish          pl_PL.ISO-8859-2
 portuguese      pt_PT.ISO-8859-1
index 7c4ce58..2eaf881 100644 (file)
@@ -110,11 +110,11 @@ __libc_lock_define_initialized (static, lock);
 # define freea(p) free (p)
 #endif
 
-#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED
+#if defined _LIBC_REENTRANT || HAVE_DECL_FGETS_UNLOCKED
 # undef fgets
 # define fgets(buf, len, s) fgets_unlocked (buf, len, s)
 #endif
-#if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED
+#if defined _LIBC_REENTRANT || HAVE_DECL_FEOF_UNLOCKED
 # undef feof
 # define feof(s) feof_unlocked (s)
 #endif
@@ -140,16 +140,15 @@ static size_t maxmap;
 
 
 /* Prototypes for local functions.  */
-static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
+static size_t read_alias_file (const char *fname, int fname_len)
      internal_function;
-static int extend_alias_table PARAMS ((void));
-static int alias_compare PARAMS ((const struct alias_map *map1,
-                                 const struct alias_map *map2));
+static int extend_alias_table (void);
+static int alias_compare (const struct alias_map *map1,
+                         const struct alias_map *map2);
 
 
 const char *
-_nl_expand_alias (name)
-    const char *name;
+_nl_expand_alias (const char *name)
 {
   static const char *locale_alias_path;
   struct alias_map *retval;
@@ -172,8 +171,8 @@ _nl_expand_alias (name)
       if (nmap > 0)
        retval = (struct alias_map *) bsearch (&item, map, nmap,
                                               sizeof (struct alias_map),
-                                              (int (*) PARAMS ((const void *,
-                                                                const void *))
+                                              (int (*) (const void *,
+                                                        const void *)
                                                ) alias_compare);
       else
        retval = NULL;
@@ -215,9 +214,7 @@ _nl_expand_alias (name)
 
 static size_t
 internal_function
-read_alias_file (fname, fname_len)
-     const char *fname;
-     int fname_len;
+read_alias_file (const char *fname, int fname_len)
 {
   FILE *fp;
   char *full_fname;
@@ -361,7 +358,7 @@ read_alias_file (fname, fname_len)
 
   if (added > 0)
     qsort (map, nmap, sizeof (struct alias_map),
-          (int (*) PARAMS ((const void *, const void *))) alias_compare);
+          (int (*) (const void *, const void *)) alias_compare);
 
   return added;
 }
@@ -387,9 +384,7 @@ extend_alias_table ()
 
 
 static int
-alias_compare (map1, map2)
-     const struct alias_map *map1;
-     const struct alias_map *map2;
+alias_compare (const struct alias_map *map1, const struct alias_map *map2)
 {
 #if defined _LIBC || defined HAVE_STRCASECMP
   return strcasecmp (map1->alias, map2->alias);
index faacecd..5662e54 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine the current selected locale.
-   Copyright (C) 1995-1999, 2000-2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
 #ifdef WIN32
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
+/* List of language codes, sorted by value:
+   0x01 LANG_ARABIC
+   0x02 LANG_BULGARIAN
+   0x03 LANG_CATALAN
+   0x04 LANG_CHINESE
+   0x05 LANG_CZECH
+   0x06 LANG_DANISH
+   0x07 LANG_GERMAN
+   0x08 LANG_GREEK
+   0x09 LANG_ENGLISH
+   0x0a LANG_SPANISH
+   0x0b LANG_FINNISH
+   0x0c LANG_FRENCH
+   0x0d LANG_HEBREW
+   0x0e LANG_HUNGARIAN
+   0x0f LANG_ICELANDIC
+   0x10 LANG_ITALIAN
+   0x11 LANG_JAPANESE
+   0x12 LANG_KOREAN
+   0x13 LANG_DUTCH
+   0x14 LANG_NORWEGIAN
+   0x15 LANG_POLISH
+   0x16 LANG_PORTUGUESE
+   0x17 LANG_RHAETO_ROMANCE
+   0x18 LANG_ROMANIAN
+   0x19 LANG_RUSSIAN
+   0x1a LANG_CROATIAN == LANG_SERBIAN
+   0x1b LANG_SLOVAK
+   0x1c LANG_ALBANIAN
+   0x1d LANG_SWEDISH
+   0x1e LANG_THAI
+   0x1f LANG_TURKISH
+   0x20 LANG_URDU
+   0x21 LANG_INDONESIAN
+   0x22 LANG_UKRAINIAN
+   0x23 LANG_BELARUSIAN
+   0x24 LANG_SLOVENIAN
+   0x25 LANG_ESTONIAN
+   0x26 LANG_LATVIAN
+   0x27 LANG_LITHUANIAN
+   0x28 LANG_TAJIK
+   0x29 LANG_FARSI
+   0x2a LANG_VIETNAMESE
+   0x2b LANG_ARMENIAN
+   0x2c LANG_AZERI
+   0x2d LANG_BASQUE
+   0x2e LANG_SORBIAN
+   0x2f LANG_MACEDONIAN
+   0x30 LANG_SUTU
+   0x31 LANG_TSONGA
+   0x32 LANG_TSWANA
+   0x33 LANG_VENDA
+   0x34 LANG_XHOSA
+   0x35 LANG_ZULU
+   0x36 LANG_AFRIKAANS
+   0x37 LANG_GEORGIAN
+   0x38 LANG_FAEROESE
+   0x39 LANG_HINDI
+   0x3a LANG_MALTESE
+   0x3b LANG_SAAMI
+   0x3c LANG_GAELIC
+   0x3d LANG_YIDDISH
+   0x3e LANG_MALAY
+   0x3f LANG_KAZAK
+   0x40 LANG_KYRGYZ
+   0x41 LANG_SWAHILI
+   0x42 LANG_TURKMEN
+   0x43 LANG_UZBEK
+   0x44 LANG_TATAR
+   0x45 LANG_BENGALI
+   0x46 LANG_PUNJABI
+   0x47 LANG_GUJARATI
+   0x48 LANG_ORIYA
+   0x49 LANG_TAMIL
+   0x4a LANG_TELUGU
+   0x4b LANG_KANNADA
+   0x4c LANG_MALAYALAM
+   0x4d LANG_ASSAMESE
+   0x4e LANG_MARATHI
+   0x4f LANG_SANSKRIT
+   0x50 LANG_MONGOLIAN
+   0x51 LANG_TIBETAN
+   0x52 LANG_WELSH
+   0x53 LANG_CAMBODIAN
+   0x54 LANG_LAO
+   0x55 LANG_BURMESE
+   0x56 LANG_GALICIAN
+   0x57 LANG_KONKANI
+   0x58 LANG_MANIPURI
+   0x59 LANG_SINDHI
+   0x5a LANG_SYRIAC
+   0x5b LANG_SINHALESE
+   0x5c LANG_CHEROKEE
+   0x5d LANG_INUKTITUT
+   0x5e LANG_AMHARIC
+   0x5f LANG_TAMAZIGHT
+   0x60 LANG_KASHMIRI
+   0x61 LANG_NEPALI
+   0x62 LANG_FRISIAN
+   0x63 LANG_PASHTO
+   0x64 LANG_TAGALOG
+   0x65 LANG_DIVEHI
+   0x66 LANG_EDO
+   0x67 LANG_FULFULDE
+   0x68 LANG_HAUSA
+   0x69 LANG_IBIBIO
+   0x6a LANG_YORUBA
+   0x70 LANG_IGBO
+   0x71 LANG_KANURI
+   0x72 LANG_OROMO
+   0x73 LANG_TIGRINYA
+   0x74 LANG_GUARANI
+   0x75 LANG_HAWAIIAN
+   0x76 LANG_LATIN
+   0x77 LANG_SOMALI
+   0x78 LANG_YI
+   0x79 LANG_PAPIAMENTU
+*/
 /* Mingw headers don't have latest language and sublanguage codes.  */
 # ifndef LANG_AFRIKAANS
 # define LANG_AFRIKAANS 0x36
 # ifndef LANG_ALBANIAN
 # define LANG_ALBANIAN 0x1c
 # endif
+# ifndef LANG_AMHARIC
+# define LANG_AMHARIC 0x5e
+# endif
 # ifndef LANG_ARABIC
 # define LANG_ARABIC 0x01
 # endif
 # ifndef LANG_BENGALI
 # define LANG_BENGALI 0x45
 # endif
+# ifndef LANG_BURMESE
+# define LANG_BURMESE 0x55
+# endif
+# ifndef LANG_CAMBODIAN
+# define LANG_CAMBODIAN 0x53
+# endif
 # ifndef LANG_CATALAN
 # define LANG_CATALAN 0x03
 # endif
+# ifndef LANG_CHEROKEE
+# define LANG_CHEROKEE 0x5c
+# endif
 # ifndef LANG_DIVEHI
 # define LANG_DIVEHI 0x65
 # endif
+# ifndef LANG_EDO
+# define LANG_EDO 0x66
+# endif
 # ifndef LANG_ESTONIAN
 # define LANG_ESTONIAN 0x25
 # endif
 # ifndef LANG_FARSI
 # define LANG_FARSI 0x29
 # endif
+# ifndef LANG_FRISIAN
+# define LANG_FRISIAN 0x62
+# endif
+# ifndef LANG_FULFULDE
+# define LANG_FULFULDE 0x67
+# endif
+# ifndef LANG_GAELIC
+# define LANG_GAELIC 0x3c
+# endif
 # ifndef LANG_GALICIAN
 # define LANG_GALICIAN 0x56
 # endif
 # ifndef LANG_GEORGIAN
 # define LANG_GEORGIAN 0x37
 # endif
+# ifndef LANG_GUARANI
+# define LANG_GUARANI 0x74
+# endif
 # ifndef LANG_GUJARATI
 # define LANG_GUJARATI 0x47
 # endif
+# ifndef LANG_HAUSA
+# define LANG_HAUSA 0x68
+# endif
+# ifndef LANG_HAWAIIAN
+# define LANG_HAWAIIAN 0x75
+# endif
 # ifndef LANG_HEBREW
 # define LANG_HEBREW 0x0d
 # endif
 # ifndef LANG_HINDI
 # define LANG_HINDI 0x39
 # endif
+# ifndef LANG_IBIBIO
+# define LANG_IBIBIO 0x69
+# endif
+# ifndef LANG_IGBO
+# define LANG_IGBO 0x70
+# endif
 # ifndef LANG_INDONESIAN
 # define LANG_INDONESIAN 0x21
 # endif
+# ifndef LANG_INUKTITUT
+# define LANG_INUKTITUT 0x5d
+# endif
 # ifndef LANG_KANNADA
 # define LANG_KANNADA 0x4b
 # endif
+# ifndef LANG_KANURI
+# define LANG_KANURI 0x71
+# endif
 # ifndef LANG_KASHMIRI
 # define LANG_KASHMIRI 0x60
 # endif
 # ifndef LANG_KYRGYZ
 # define LANG_KYRGYZ 0x40
 # endif
+# ifndef LANG_LAO
+# define LANG_LAO 0x54
+# endif
+# ifndef LANG_LATIN
+# define LANG_LATIN 0x76
+# endif
 # ifndef LANG_LATVIAN
 # define LANG_LATVIAN 0x26
 # endif
 # ifndef LANG_MALAYALAM
 # define LANG_MALAYALAM 0x4c
 # endif
+# ifndef LANG_MALTESE
+# define LANG_MALTESE 0x3a
+# endif
 # ifndef LANG_MANIPURI
 # define LANG_MANIPURI 0x58
 # endif
 # ifndef LANG_ORIYA
 # define LANG_ORIYA 0x48
 # endif
+# ifndef LANG_OROMO
+# define LANG_OROMO 0x72
+# endif
+# ifndef LANG_PAPIAMENTU
+# define LANG_PAPIAMENTU 0x79
+# endif
+# ifndef LANG_PASHTO
+# define LANG_PASHTO 0x63
+# endif
 # ifndef LANG_PUNJABI
 # define LANG_PUNJABI 0x46
 # endif
+# ifndef LANG_RHAETO_ROMANCE
+# define LANG_RHAETO_ROMANCE 0x17
+# endif
+# ifndef LANG_SAAMI
+# define LANG_SAAMI 0x3b
+# endif
 # ifndef LANG_SANSKRIT
 # define LANG_SANSKRIT 0x4f
 # endif
 # ifndef LANG_SINDHI
 # define LANG_SINDHI 0x59
 # endif
+# ifndef LANG_SINHALESE
+# define LANG_SINHALESE 0x5b
+# endif
 # ifndef LANG_SLOVAK
 # define LANG_SLOVAK 0x1b
 # endif
+# ifndef LANG_SOMALI
+# define LANG_SOMALI 0x77
+# endif
 # ifndef LANG_SORBIAN
 # define LANG_SORBIAN 0x2e
 # endif
+# ifndef LANG_SUTU
+# define LANG_SUTU 0x30
+# endif
 # ifndef LANG_SWAHILI
 # define LANG_SWAHILI 0x41
 # endif
 # ifndef LANG_SYRIAC
 # define LANG_SYRIAC 0x5a
 # endif
+# ifndef LANG_TAGALOG
+# define LANG_TAGALOG 0x64
+# endif
+# ifndef LANG_TAJIK
+# define LANG_TAJIK 0x28
+# endif
+# ifndef LANG_TAMAZIGHT
+# define LANG_TAMAZIGHT 0x5f
+# endif
 # ifndef LANG_TAMIL
 # define LANG_TAMIL 0x49
 # endif
 # ifndef LANG_THAI
 # define LANG_THAI 0x1e
 # endif
+# ifndef LANG_TIBETAN
+# define LANG_TIBETAN 0x51
+# endif
+# ifndef LANG_TIGRINYA
+# define LANG_TIGRINYA 0x73
+# endif
+# ifndef LANG_TSONGA
+# define LANG_TSONGA 0x31
+# endif
+# ifndef LANG_TSWANA
+# define LANG_TSWANA 0x32
+# endif
+# ifndef LANG_TURKMEN
+# define LANG_TURKMEN 0x42
+# endif
 # ifndef LANG_UKRAINIAN
 # define LANG_UKRAINIAN 0x22
 # endif
 # ifndef LANG_UZBEK
 # define LANG_UZBEK 0x43
 # endif
+# ifndef LANG_VENDA
+# define LANG_VENDA 0x33
+# endif
 # ifndef LANG_VIETNAMESE
 # define LANG_VIETNAMESE 0x2a
 # endif
+# ifndef LANG_WELSH
+# define LANG_WELSH 0x52
+# endif
+# ifndef LANG_XHOSA
+# define LANG_XHOSA 0x34
+# endif
+# ifndef LANG_YI
+# define LANG_YI 0x78
+# endif
+# ifndef LANG_YIDDISH
+# define LANG_YIDDISH 0x3d
+# endif
+# ifndef LANG_YORUBA
+# define LANG_YORUBA 0x6a
+# endif
+# ifndef LANG_ZULU
+# define LANG_ZULU 0x35
+# endif
 # ifndef SUBLANG_ARABIC_SAUDI_ARABIA
 # define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
 # endif
 # ifndef SUBLANG_AZERI_CYRILLIC
 # define SUBLANG_AZERI_CYRILLIC 0x02
 # endif
+# ifndef SUBLANG_BENGALI_INDIA
+# define SUBLANG_BENGALI_INDIA 0x00
+# endif
+# ifndef SUBLANG_BENGALI_BANGLADESH
+# define SUBLANG_BENGALI_BANGLADESH 0x01
+# endif
 # ifndef SUBLANG_CHINESE_MACAU
 # define SUBLANG_CHINESE_MACAU 0x05
 # endif
 # ifndef SUBLANG_ENGLISH_PHILIPPINES
 # define SUBLANG_ENGLISH_PHILIPPINES 0x0d
 # endif
+# ifndef SUBLANG_ENGLISH_INDONESIA
+# define SUBLANG_ENGLISH_INDONESIA 0x0e
+# endif
+# ifndef SUBLANG_ENGLISH_HONGKONG
+# define SUBLANG_ENGLISH_HONGKONG 0x0f
+# endif
+# ifndef SUBLANG_ENGLISH_INDIA
+# define SUBLANG_ENGLISH_INDIA 0x10
+# endif
+# ifndef SUBLANG_ENGLISH_MALAYSIA
+# define SUBLANG_ENGLISH_MALAYSIA 0x11
+# endif
+# ifndef SUBLANG_ENGLISH_SINGAPORE
+# define SUBLANG_ENGLISH_SINGAPORE 0x12
+# endif
 # ifndef SUBLANG_FRENCH_LUXEMBOURG
 # define SUBLANG_FRENCH_LUXEMBOURG 0x05
 # endif
 # ifndef SUBLANG_FRENCH_MONACO
 # define SUBLANG_FRENCH_MONACO 0x06
 # endif
+# ifndef SUBLANG_FRENCH_WESTINDIES
+# define SUBLANG_FRENCH_WESTINDIES 0x07
+# endif
+# ifndef SUBLANG_FRENCH_REUNION
+# define SUBLANG_FRENCH_REUNION 0x08
+# endif
+# ifndef SUBLANG_FRENCH_CONGO
+# define SUBLANG_FRENCH_CONGO 0x09
+# endif
+# ifndef SUBLANG_FRENCH_SENEGAL
+# define SUBLANG_FRENCH_SENEGAL 0x0a
+# endif
+# ifndef SUBLANG_FRENCH_CAMEROON
+# define SUBLANG_FRENCH_CAMEROON 0x0b
+# endif
+# ifndef SUBLANG_FRENCH_COTEDIVOIRE
+# define SUBLANG_FRENCH_COTEDIVOIRE 0x0c
+# endif
+# ifndef SUBLANG_FRENCH_MALI
+# define SUBLANG_FRENCH_MALI 0x0d
+# endif
+# ifndef SUBLANG_FRENCH_MOROCCO
+# define SUBLANG_FRENCH_MOROCCO 0x0e
+# endif
+# ifndef SUBLANG_FRENCH_HAITI
+# define SUBLANG_FRENCH_HAITI 0x0f
+# endif
 # ifndef SUBLANG_GERMAN_LUXEMBOURG
 # define SUBLANG_GERMAN_LUXEMBOURG 0x04
 # endif
 # ifndef SUBLANG_NEPALI_INDIA
 # define SUBLANG_NEPALI_INDIA 0x02
 # endif
+# ifndef SUBLANG_PUNJABI_INDIA
+# define SUBLANG_PUNJABI_INDIA 0x00
+# endif
+# ifndef SUBLANG_PUNJABI_PAKISTAN
+# define SUBLANG_PUNJABI_PAKISTAN 0x01
+# endif
+# ifndef SUBLANG_ROMANIAN_ROMANIA
+# define SUBLANG_ROMANIAN_ROMANIA 0x00
+# endif
+# ifndef SUBLANG_ROMANIAN_MOLDOVA
+# define SUBLANG_ROMANIAN_MOLDOVA 0x01
+# endif
 # ifndef SUBLANG_SERBIAN_LATIN
 # define SUBLANG_SERBIAN_LATIN 0x02
 # endif
 # ifndef SUBLANG_SERBIAN_CYRILLIC
 # define SUBLANG_SERBIAN_CYRILLIC 0x03
 # endif
+# ifndef SUBLANG_SINDHI_INDIA
+# define SUBLANG_SINDHI_INDIA 0x00
+# endif
+# ifndef SUBLANG_SINDHI_PAKISTAN
+# define SUBLANG_SINDHI_PAKISTAN 0x01
+# endif
 # ifndef SUBLANG_SPANISH_GUATEMALA
 # define SUBLANG_SPANISH_GUATEMALA 0x04
 # endif
 # ifndef SUBLANG_SWEDISH_FINLAND
 # define SUBLANG_SWEDISH_FINLAND 0x02
 # endif
+# ifndef SUBLANG_TAMAZIGHT_ARABIC
+# define SUBLANG_TAMAZIGHT_ARABIC 0x01
+# endif
+# ifndef SUBLANG_TAMAZIGHT_LATIN
+# define SUBLANG_TAMAZIGHT_LATIN 0x02
+# endif
+# ifndef SUBLANG_TIGRINYA_ETHIOPIA
+# define SUBLANG_TIGRINYA_ETHIOPIA 0x00
+# endif
+# ifndef SUBLANG_TIGRINYA_ERITREA
+# define SUBLANG_TIGRINYA_ERITREA 0x01
+# endif
 # ifndef SUBLANG_URDU_PAKISTAN
 # define SUBLANG_URDU_PAKISTAN 0x01
 # endif
    The result must not be freed; it is statically allocated.  */
 
 const char *
-_nl_locale_name (category, categoryname)
-     int category;
-     const char *categoryname;
+_nl_locale_name (int category, const char *categoryname)
 {
   const char *retval;
 
@@ -454,7 +771,7 @@ _nl_locale_name (category, categoryname)
     {
     case LANG_AFRIKAANS: return "af_ZA";
     case LANG_ALBANIAN: return "sq_AL";
-    case 0x5e: /* AMHARIC */ return "am_ET";
+    case LANG_AMHARIC: return "am_ET";
     case LANG_ARABIC:
       switch (sub)
        {
@@ -489,12 +806,18 @@ _nl_locale_name (category, categoryname)
     case LANG_BASQUE:
       return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR".  */
     case LANG_BELARUSIAN: return "be_BY";
-    case LANG_BENGALI: return "bn_IN";
+    case LANG_BENGALI:
+      switch (sub)
+       {
+       case SUBLANG_BENGALI_INDIA: return "bn_IN";
+       case SUBLANG_BENGALI_BANGLADESH: return "bn_BD";
+       }
+      return "bn";
     case LANG_BULGARIAN: return "bg_BG";
-    case 0x55: /* BURMESE */ return "my_MM";
-    case 0x53: /* CAMBODIAN */ return "km_KH";
+    case LANG_BURMESE: return "my_MM";
+    case LANG_CAMBODIAN: return "km_KH";
     case LANG_CATALAN: return "ca_ES";
-    case 0x5c: /* CHEROKEE */ return "chr_US";
+    case LANG_CHEROKEE: return "chr_US";
     case LANG_CHINESE:
       switch (sub)
        {
@@ -516,13 +839,13 @@ _nl_locale_name (category, categoryname)
       switch (sub)
        {
        case SUBLANG_DEFAULT: return "hr_HR";
-       case SUBLANG_SERBIAN_LATIN: return "sr_YU";
-       case SUBLANG_SERBIAN_CYRILLIC: return "sr_YU@cyrillic";
+       case SUBLANG_SERBIAN_LATIN: return "sr_CS";
+       case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS@cyrillic";
        }
       return "hr";
     case LANG_CZECH: return "cs_CZ";
     case LANG_DANISH: return "da_DK";
-    case LANG_DIVEHI: return "div_MV";
+    case LANG_DIVEHI: return "dv_MV";
     case LANG_DUTCH:
       switch (sub)
        {
@@ -530,7 +853,7 @@ _nl_locale_name (category, categoryname)
        case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE";
        }
       return "nl";
-    case 0x66: /* EDO */ return "bin_NG";
+    case LANG_EDO: return "bin_NG";
     case LANG_ENGLISH:
       switch (sub)
        {
@@ -551,6 +874,11 @@ _nl_locale_name (category, categoryname)
        case SUBLANG_ENGLISH_TRINIDAD: return "en_TT";
        case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW";
        case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH";
+       case SUBLANG_ENGLISH_INDONESIA: return "en_ID";
+       case SUBLANG_ENGLISH_HONGKONG: return "en_HK";
+       case SUBLANG_ENGLISH_INDIA: return "en_IN";
+       case SUBLANG_ENGLISH_MALAYSIA: return "en_MY";
+       case SUBLANG_ENGLISH_SINGAPORE: return "en_SG";
        }
       return "en";
     case LANG_ESTONIAN: return "et_EE";
@@ -566,11 +894,22 @@ _nl_locale_name (category, categoryname)
        case SUBLANG_FRENCH_SWISS: return "fr_CH";
        case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU";
        case SUBLANG_FRENCH_MONACO: return "fr_MC";
+       case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */
+       case SUBLANG_FRENCH_REUNION: return "fr_RE";
+       case SUBLANG_FRENCH_CONGO: return "fr_CG";
+       case SUBLANG_FRENCH_SENEGAL: return "fr_SN";
+       case SUBLANG_FRENCH_CAMEROON: return "fr_CM";
+       case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI";
+       case SUBLANG_FRENCH_MALI: return "fr_ML";
+       case SUBLANG_FRENCH_MOROCCO: return "fr_MA";
+       case SUBLANG_FRENCH_HAITI: return "fr_HT";
        }
       return "fr";
-    case 0x62: /* FRISIAN */ return "fy_NL";
-    case 0x67: /* FULFULDE */ return "ful_NG";
-    case 0x3c: /* GAELIC */
+    case LANG_FRISIAN: return "fy_NL";
+    case LANG_FULFULDE:
+      /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */
+      return "ff_NG";
+    case LANG_GAELIC:
       switch (sub)
        {
        case 0x01: /* SCOTTISH */ return "gd_GB";
@@ -590,21 +929,21 @@ _nl_locale_name (category, categoryname)
        }
       return "de";
     case LANG_GREEK: return "el_GR";
-    case 0x74: /* GUARANI */ return "gn_PY";
+    case LANG_GUARANI: return "gn_PY";
     case LANG_GUJARATI: return "gu_IN";
-    case 0x68: /* HAUSA */ return "ha_NG";
-    case 0x75: /* HAWAIIAN */
+    case LANG_HAUSA: return "ha_NG";
+    case LANG_HAWAIIAN:
       /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers)
         or Hawaii Creole English ("cpe_US", 600000 speakers)?  */
       return "cpe_US";
     case LANG_HEBREW: return "he_IL";
     case LANG_HINDI: return "hi_IN";
     case LANG_HUNGARIAN: return "hu_HU";
-    case 0x69: /* IBIBIO */ return "nic_NG";
+    case LANG_IBIBIO: return "nic_NG";
     case LANG_ICELANDIC: return "is_IS";
-    case 0x70: /* IGBO */ return "ibo_NG";
+    case LANG_IGBO: return "ig_NG";
     case LANG_INDONESIAN: return "id_ID";
-    case 0x5d: /* INUKTITUT */ return "iu_CA";
+    case LANG_INUKTITUT: return "iu_CA";
     case LANG_ITALIAN:
       switch (sub)
        {
@@ -614,7 +953,7 @@ _nl_locale_name (category, categoryname)
       return "it";
     case LANG_JAPANESE: return "ja_JP";
     case LANG_KANNADA: return "kn_IN";
-    case 0x71: /* KANURI */ return "kau_NG";
+    case LANG_KANURI: return "kr_NG";
     case LANG_KASHMIRI:
       switch (sub)
        {
@@ -628,8 +967,8 @@ _nl_locale_name (category, categoryname)
       return "kok_IN";
     case LANG_KOREAN: return "ko_KR";
     case LANG_KYRGYZ: return "ky_KG";
-    case 0x54: /* LAO */ return "lo_LA";
-    case 0x76: /* LATIN */ return "la_VA";
+    case LANG_LAO: return "lo_LA";
+    case LANG_LATIN: return "la_VA";
     case LANG_LATVIAN: return "lv_LV";
     case LANG_LITHUANIAN: return "lt_LT";
     case LANG_MACEDONIAN: return "mk_MK";
@@ -641,7 +980,7 @@ _nl_locale_name (category, categoryname)
        }
       return "ms";
     case LANG_MALAYALAM: return "ml_IN";
-    case 0x3a: /* MALTESE */ return "mt_MT";
+    case LANG_MALTESE: return "mt_MT";
     case LANG_MANIPURI:
       /* FIXME: Adjust this when such locales appear on Unix.  */
       return "mni_IN";
@@ -663,9 +1002,9 @@ _nl_locale_name (category, categoryname)
        }
       return "no";
     case LANG_ORIYA: return "or_IN";
-    case 0x72: /* OROMO */ return "om_ET";
-    case 0x79: /* PAPIAMENTU */ return "pap_AN";
-    case 0x63: /* PASHTO */
+    case LANG_OROMO: return "om_ET";
+    case LANG_PAPIAMENTU: return "pap_AN";
+    case LANG_PASHTO:
       return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF".  */
     case LANG_POLISH: return "pl_PL";
     case LANG_PORTUGUESE:
@@ -677,18 +1016,36 @@ _nl_locale_name (category, categoryname)
        case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR";
        }
       return "pt";
-    case LANG_PUNJABI: return "pa_IN";
-    case 0x17: /* RHAETO-ROMANCE */ return "rm_CH";
-    case LANG_ROMANIAN: return "ro_RO";
+    case LANG_PUNJABI:
+      switch (sub)
+       {
+       case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */
+       case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */
+       }
+      return "pa";
+    case LANG_RHAETO_ROMANCE: return "rm_CH";
+    case LANG_ROMANIAN:
+      switch (sub)
+       {
+       case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO";
+       case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD";
+       }
+      return "ro";
     case LANG_RUSSIAN:
-      return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA".  */
-    case 0x3b: /* SAMI */ return "se_NO";
+      return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD".  */
+    case LANG_SAAMI: /* actually Northern Sami */ return "se_NO";
     case LANG_SANSKRIT: return "sa_IN";
-    case LANG_SINDHI: return "sd";
-    case 0x5b: /* SINHALESE */ return "si_LK";
+    case LANG_SINDHI:
+      switch (sub)
+       {
+       case SUBLANG_SINDHI_INDIA: return "sd_IN";
+       case SUBLANG_SINDHI_PAKISTAN: return "sd_PK";
+       }
+      return "sd";
+    case LANG_SINHALESE: return "si_LK";
     case LANG_SLOVAK: return "sk_SK";
     case LANG_SLOVENIAN: return "sl_SI";
-    case 0x77: /* SOMALI */ return "so_SO";
+    case LANG_SOMALI: return "so_SO";
     case LANG_SORBIAN:
       /* FIXME: Adjust this when such locales appear on Unix.  */
       return "wen_DE";
@@ -718,7 +1075,7 @@ _nl_locale_name (category, categoryname)
        case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR";
        }
       return "es";
-    case 0x30: /* SUTU */ return "bnt_TZ";
+    case LANG_SUTU: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */
     case LANG_SWAHILI: return "sw_KE";
     case LANG_SWEDISH:
       switch (sub)
@@ -728,19 +1085,33 @@ _nl_locale_name (category, categoryname)
        }
       return "sv";
     case LANG_SYRIAC: return "syr_TR"; /* An extinct language.  */
-    case 0x64: /* TAGALOG */ return "tl_PH";
-    case 0x28: /* TAJIK */ return "tg_TJ";
-    case 0x5f: /* TAMAZIGHT */ return "ber_MA";
+    case LANG_TAGALOG: return "tl_PH";
+    case LANG_TAJIK: return "tg_TJ";
+    case LANG_TAMAZIGHT:
+      switch (sub)
+       {
+       /* FIXME: Adjust this when Tamazight locales appear on Unix.  */
+       case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA@arabic";
+       case SUBLANG_TAMAZIGHT_LATIN: return "ber_MA@latin";
+       }
+      return "ber_MA";
     case LANG_TAMIL:
       return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG".  */
     case LANG_TATAR: return "tt_RU";
     case LANG_TELUGU: return "te_IN";
     case LANG_THAI: return "th_TH";
-    case 0x51: /* TIBETAN */ return "bo_CN";
-    case 0x73: /* TIGRINYA */ return "ti_ET";
-    case 0x31: /* TSONGA */ return "ts_ZA";
+    case LANG_TIBETAN: return "bo_CN";
+    case LANG_TIGRINYA:
+      switch (sub)
+       {
+       case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET";
+       case SUBLANG_TIGRINYA_ERITREA: return "ti_ER";
+       }
+      return "ti";
+    case LANG_TSONGA: return "ts_ZA";
+    case LANG_TSWANA: return "tn_BW";
     case LANG_TURKISH: return "tr_TR";
-    case 0x42: /* TURKMEN */ return "tk_TM";
+    case LANG_TURKMEN: return "tk_TM";
     case LANG_UKRAINIAN: return "uk_UA";
     case LANG_URDU:
       switch (sub)
@@ -752,19 +1123,18 @@ _nl_locale_name (category, categoryname)
     case LANG_UZBEK:
       switch (sub)
        {
-       /* FIXME: Adjust this when Uzbek locales appear on Unix.  */
-       case SUBLANG_UZBEK_LATIN: return "uz_UZ@latin";
+       case SUBLANG_UZBEK_LATIN: return "uz_UZ";
        case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic";
        }
       return "uz";
-    case 0x33: /* VENDA */ return "ven_ZA";
+    case LANG_VENDA: return "ve_ZA";
     case LANG_VIETNAMESE: return "vi_VN";
-    case 0x52: /* WELSH */ return "cy_GB";
-    case 0x34: /* XHOSA */ return "xh_ZA";
-    case 0x78: /* YI */ return "sit_CN";
-    case 0x3d: /* YIDDISH */ return "yi_IL";
-    case 0x6a: /* YORUBA */ return "yo_NG";
-    case 0x35: /* ZULU */ return "zu_ZA";
+    case LANG_WELSH: return "cy_GB";
+    case LANG_XHOSA: return "xh_ZA";
+    case LANG_YI: return "sit_CN";
+    case LANG_YIDDISH: return "yi_IL";
+    case LANG_YORUBA: return "yo_NG";
+    case LANG_ZULU: return "zu_ZA";
     default: return "C";
     }
 
index 9c84791..cb6076e 100644 (file)
@@ -28,9 +28,7 @@
 
 /* Print an ASCII string with quotes and escape sequences where needed.  */
 static void
-print_escaped (stream, str)
-     FILE *stream;
-     const char *str;
+print_escaped (FILE *stream, const char *str)
 {
   putc ('"', stream);
   for (; *str != '\0'; str++)
@@ -52,12 +50,8 @@ print_escaped (stream, str)
 
 /* Add to the log file an entry denoting a failed translation.  */
 void
-_nl_log_untranslated (logfilename, domainname, msgid1, msgid2, plural)
-     const char *logfilename;
-     const char *domainname;
-     const char *msgid1;
-     const char *msgid2;
-     int plural;
+_nl_log_untranslated (const char *logfilename, const char *domainname,
+                     const char *msgid1, const char *msgid2, int plural)
 {
   static char *last_logfilename = NULL;
   static FILE *last_logfile = NULL;
index 17a27f4..e73e00c 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of ngettext(3) function.
-   Copyright (C) 1995, 1997, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
    LC_MESSAGES locale.  If not found, returns MSGID itself (the default
    text).  */
 char *
-NGETTEXT (msgid1, msgid2, n)
-     const char *msgid1;
-     const char *msgid2;
-     unsigned long int n;
+NGETTEXT (const char *msgid1, const char *msgid2, unsigned long int n)
 {
   return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
 }
index c937c01..8c04e64 100644 (file)
@@ -1,5 +1,5 @@
 /* Expression parsing for plural form selection.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
    Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
 
    This program is free software; you can redistribute it and/or modify it
@@ -96,10 +96,8 @@ init_germanic_plural ()
 
 void
 internal_function
-EXTRACT_PLURAL_EXPRESSION (nullentry, pluralp, npluralsp)
-     const char *nullentry;
-     struct expression **pluralp;
-     unsigned long int *npluralsp;
+EXTRACT_PLURAL_EXPRESSION (const char *nullentry, struct expression **pluralp,
+                          unsigned long int *npluralsp)
 {
   if (nullentry != NULL)
     {
index 9e5d165..49e2c5b 100644 (file)
@@ -1,5 +1,5 @@
 /* Expression parsing and evaluation for plural form selection.
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003 Free Software Foundation, Inc.
    Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
 
    This program is free software; you can redistribute it and/or modify it
 #ifndef _PLURAL_EXP_H
 #define _PLURAL_EXP_H
 
-#ifndef PARAMS
-# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
-#  define PARAMS(args) args
-# else
-#  define PARAMS(args) ()
-# endif
-#endif
-
 #ifndef internal_function
 # define internal_function
 #endif
@@ -109,18 +101,18 @@ struct parse_args
 # define EXTRACT_PLURAL_EXPRESSION extract_plural_expression
 #endif
 
-extern void FREE_EXPRESSION PARAMS ((struct expression *exp))
+extern void FREE_EXPRESSION (struct expression *exp)
      internal_function;
-extern int PLURAL_PARSE PARAMS ((void *arg));
+extern int PLURAL_PARSE (void *arg);
 extern struct expression GERMANIC_PLURAL attribute_hidden;
-extern void EXTRACT_PLURAL_EXPRESSION PARAMS ((const char *nullentry,
-                                              struct expression **pluralp,
-                                              unsigned long int *npluralsp))
+extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
+                                      struct expression **pluralp,
+                                      unsigned long int *npluralsp)
      internal_function;
 
 #if !defined (_LIBC) && !defined (IN_LIBINTL)
-extern unsigned long int plural_eval PARAMS ((struct expression *pexp,
-                                             unsigned long int n));
+extern unsigned long int plural_eval (struct expression *pexp,
+                                     unsigned long int n);
 #endif
 
 #endif /* _PLURAL_EXP_H */
index 3a4fa20..72494f9 100644 (file)
@@ -19,7 +19,7 @@
 #line 1 "plural.y"
 
 /* Expression parsing for plural form selection.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
    Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
 
    This program is free software; you can redistribute it and/or modify it
@@ -75,28 +75,13 @@ typedef union {
 #line 55 "plural.y"
 
 /* Prototypes for local functions.  */
-static struct expression *new_exp PARAMS ((int nargs, enum operator op,
-                                          struct expression * const *args));
-static inline struct expression *new_exp_0 PARAMS ((enum operator op));
-static inline struct expression *new_exp_1 PARAMS ((enum operator op,
-                                                  struct expression *right));
-static struct expression *new_exp_2 PARAMS ((enum operator op,
-                                            struct expression *left,
-                                            struct expression *right));
-static inline struct expression *new_exp_3 PARAMS ((enum operator op,
-                                                  struct expression *bexp,
-                                                  struct expression *tbranch,
-                                                  struct expression *fbranch));
-static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
-static void yyerror PARAMS ((const char *str));
+static int yylex (YYSTYPE *lval, const char **pexp);
+static void yyerror (const char *str);
 
 /* Allocation of expressions.  */
 
 static struct expression *
-new_exp (nargs, op, args)
-     int nargs;
-     enum operator op;
-     struct expression * const *args;
+new_exp (int nargs, enum operator op, struct expression * const *args)
 {
   int i;
   struct expression *newp;
@@ -125,16 +110,13 @@ new_exp (nargs, op, args)
 }
 
 static inline struct expression *
-new_exp_0 (op)
-     enum operator op;
+new_exp_0 (enum operator op)
 {
   return new_exp (0, op, NULL);
 }
 
 static inline struct expression *
-new_exp_1 (op, right)
-     enum operator op;
-     struct expression *right;
+new_exp_1 (enum operator op, struct expression *right)
 {
   struct expression *args[1];
 
@@ -143,10 +125,7 @@ new_exp_1 (op, right)
 }
 
 static struct expression *
-new_exp_2 (op, left, right)
-     enum operator op;
-     struct expression *left;
-     struct expression *right;
+new_exp_2 (enum operator op, struct expression *left, struct expression *right)
 {
   struct expression *args[2];
 
@@ -156,11 +135,8 @@ new_exp_2 (op, left, right)
 }
 
 static inline struct expression *
-new_exp_3 (op, bexp, tbranch, fbranch)
-     enum operator op;
-     struct expression *bexp;
-     struct expression *tbranch;
-     struct expression *fbranch;
+new_exp_3 (enum operator op, struct expression *bexp,
+          struct expression *tbranch, struct expression *fbranch)
 {
   struct expression *args[3];
 
@@ -236,8 +212,8 @@ static const short yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
 static const short yyrline[] =
 {
-       0,   174,   182,   186,   190,   194,   198,   202,   206,   210,
-     214,   218,   223
+       0,   150,   158,   162,   166,   170,   174,   178,   182,   186,
+     190,   194,   199
 };
 #endif
 
@@ -1027,7 +1003,7 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 175 "plural.y"
+#line 151 "plural.y"
 {
            if (yyvsp[0].exp == NULL)
              YYABORT;
@@ -1035,68 +1011,68 @@ case 1:
          }
     break;
 case 2:
-#line 183 "plural.y"
+#line 159 "plural.y"
 {
            yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
 case 3:
-#line 187 "plural.y"
+#line 163 "plural.y"
 {
            yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
 case 4:
-#line 191 "plural.y"
+#line 167 "plural.y"
 {
            yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
 case 5:
-#line 195 "plural.y"
+#line 171 "plural.y"
 {
            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
 case 6:
-#line 199 "plural.y"
+#line 175 "plural.y"
 {
            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
 case 7:
-#line 203 "plural.y"
+#line 179 "plural.y"
 {
            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
 case 8:
-#line 207 "plural.y"
+#line 183 "plural.y"
 {
            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
 case 9:
-#line 211 "plural.y"
+#line 187 "plural.y"
 {
            yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
          }
     break;
 case 10:
-#line 215 "plural.y"
+#line 191 "plural.y"
 {
            yyval.exp = new_exp_0 (var);
          }
     break;
 case 11:
-#line 219 "plural.y"
+#line 195 "plural.y"
 {
            if ((yyval.exp = new_exp_0 (num)) != NULL)
              yyval.exp->val.num = yyvsp[0].num;
          }
     break;
 case 12:
-#line 224 "plural.y"
+#line 200 "plural.y"
 {
            yyval.exp = yyvsp[-1].exp;
          }
@@ -1334,13 +1310,12 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 229 "plural.y"
+#line 205 "plural.y"
 
 
 void
 internal_function
-FREE_EXPRESSION (exp)
-     struct expression *exp;
+FREE_EXPRESSION (struct expression *exp)
 {
   if (exp == NULL)
     return;
@@ -1366,9 +1341,7 @@ FREE_EXPRESSION (exp)
 
 
 static int
-yylex (lval, pexp)
-     YYSTYPE *lval;
-     const char **pexp;
+yylex (YYSTYPE *lval, const char **pexp)
 {
   const char *exp = *pexp;
   int result;
@@ -1511,8 +1484,7 @@ yylex (lval, pexp)
 
 
 static void
-yyerror (str)
-     const char *str;
+yyerror (const char *str)
 {
   /* Do nothing.  We don't print error messages here.  */
 }
index 616b7c1..4d33bd7 100644 (file)
@@ -1,6 +1,6 @@
 %{
 /* Expression parsing for plural form selection.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
    Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
 
    This program is free software; you can redistribute it and/or modify it
 
 %{
 /* Prototypes for local functions.  */
-static struct expression *new_exp PARAMS ((int nargs, enum operator op,
-                                          struct expression * const *args));
-static inline struct expression *new_exp_0 PARAMS ((enum operator op));
-static inline struct expression *new_exp_1 PARAMS ((enum operator op,
-                                                  struct expression *right));
-static struct expression *new_exp_2 PARAMS ((enum operator op,
-                                            struct expression *left,
-                                            struct expression *right));
-static inline struct expression *new_exp_3 PARAMS ((enum operator op,
-                                                  struct expression *bexp,
-                                                  struct expression *tbranch,
-                                                  struct expression *fbranch));
-static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
-static void yyerror PARAMS ((const char *str));
+static int yylex (YYSTYPE *lval, const char **pexp);
+static void yyerror (const char *str);
 
 /* Allocation of expressions.  */
 
 static struct expression *
-new_exp (nargs, op, args)
-     int nargs;
-     enum operator op;
-     struct expression * const *args;
+new_exp (int nargs, enum operator op, struct expression * const *args)
 {
   int i;
   struct expression *newp;
@@ -104,16 +89,13 @@ new_exp (nargs, op, args)
 }
 
 static inline struct expression *
-new_exp_0 (op)
-     enum operator op;
+new_exp_0 (enum operator op)
 {
   return new_exp (0, op, NULL);
 }
 
 static inline struct expression *
-new_exp_1 (op, right)
-     enum operator op;
-     struct expression *right;
+new_exp_1 (enum operator op, struct expression *right)
 {
   struct expression *args[1];
 
@@ -122,10 +104,7 @@ new_exp_1 (op, right)
 }
 
 static struct expression *
-new_exp_2 (op, left, right)
-     enum operator op;
-     struct expression *left;
-     struct expression *right;
+new_exp_2 (enum operator op, struct expression *left, struct expression *right)
 {
   struct expression *args[2];
 
@@ -135,11 +114,8 @@ new_exp_2 (op, left, right)
 }
 
 static inline struct expression *
-new_exp_3 (op, bexp, tbranch, fbranch)
-     enum operator op;
-     struct expression *bexp;
-     struct expression *tbranch;
-     struct expression *fbranch;
+new_exp_3 (enum operator op, struct expression *bexp,
+          struct expression *tbranch, struct expression *fbranch)
 {
   struct expression *args[3];
 
@@ -230,8 +206,7 @@ exp:          exp '?' exp ':' exp
 
 void
 internal_function
-FREE_EXPRESSION (exp)
-     struct expression *exp;
+FREE_EXPRESSION (struct expression *exp)
 {
   if (exp == NULL)
     return;
@@ -257,9 +232,7 @@ FREE_EXPRESSION (exp)
 
 
 static int
-yylex (lval, pexp)
-     YYSTYPE *lval;
-     const char **pexp;
+yylex (YYSTYPE *lval, const char **pexp)
 {
   const char *exp = *pexp;
   int result;
@@ -402,8 +375,7 @@ yylex (lval, pexp)
 
 
 static void
-yyerror (str)
-     const char *str;
+yyerror (const char *str)
 {
   /* Do nothing.  We don't print error messages here.  */
 }
index 16f79a5..bf7c708 100644 (file)
 #ifdef NO_XMALLOC
 # define xmalloc malloc
 #else
-# include "xmalloc.h"
+# include "xalloc.h"
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
 #endif
 
 #if DEPENDS_ON_LIBCHARSET
@@ -152,6 +157,8 @@ set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg)
 #endif
 }
 
+#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
+
 /* Convenience function:
    Computes the current installation prefix, based on the original
    installation prefix, the original installation directory of a particular
@@ -266,6 +273,8 @@ compute_curr_prefix (const char *orig_installprefix,
   }
 }
 
+#endif /* !IN_LIBRARY || PIC */
+
 #if defined PIC && defined INSTALLDIR
 
 /* Full pathname of shared library, or NULL.  */
@@ -304,7 +313,8 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved)
 static void
 find_shared_library_fullname ()
 {
-#ifdef __linux__
+#if defined __linux__ && __GLIBC__ >= 2
+  /* Linux has /proc/self/maps. glibc 2 has the getline() function.  */
   FILE *fp;
 
   /* Open the current process' maps file.  It describes one VMA per line.  */
index d141200..48c5b71 100644 (file)
 #ifndef _RELOCATABLE_H
 #define _RELOCATABLE_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
 /* This can be enabled through the configure --enable-relocatable option.  */
 #if ENABLE_RELOCATABLE
 
@@ -64,4 +69,9 @@ extern const char * compute_curr_prefix (const char *orig_installprefix,
 
 #endif
 
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _RELOCATABLE_H */
index f259c69..8745a84 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of the textdomain(3) function.
-   Copyright (C) 1995-1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
@@ -77,8 +77,7 @@ __libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
    If DOMAINNAME is null, return the current default.
    If DOMAINNAME is "", reset to the default of "messages".  */
 char *
-TEXTDOMAIN (domainname)
-     const char *domainname;
+TEXTDOMAIN (const char *domainname)
 {
   char *new_domain;
   char *old_domain;
index f13434d..546b4c3 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-30  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am: Adjusted fro gettext 0.14.
+
 2004-08-24  Werner Koch  <wk@g10code.de>
 
        * kbxutil.c: New command --import-openpgp.
index 6b6a59b..0b35587 100644 (file)
@@ -45,7 +45,7 @@ libkeybox_a_SOURCES = $(common_sources)
 
 kbxutil_SOURCES = kbxutil.c $(common_sources)
 kbxutil_LDADD   = ../jnlib/libjnlib.a  $(KSBA_LIBS) $(LIBGCRYPT_LIBS) \
-                  -lgpg-error @INTLLIBS
+                  -lgpg-error @LIBINTL
 
 
 
index efcded7..a7a9d1e 100644 (file)
@@ -1,3 +1,25 @@
+2004-09-30  Werner Koch  <wk@g10code.com>
+
+       * gpg-error.m4, libassuan.m4, libgcrypt.m4: Updated.
+
+2004-09-30  gettextize  <bug-gnu-gettext@gnu.org>
+
+       * gettext.m4: Upgrade to gettext-0.14.1.
+       * intmax.m4: New file, from gettext-0.14.1.
+       * lib-ld.m4: Upgrade to gettext-0.14.1.
+       * lib-prefix.m4: Upgrade to gettext-0.14.1.
+       * longdouble.m4: New file, from gettext-0.14.1.
+       * longlong.m4: New file, from gettext-0.14.1.
+       * po.m4: Upgrade to gettext-0.14.1.
+       * printf-posix.m4: New file, from gettext-0.14.1.
+       * signed.m4: New file, from gettext-0.14.1.
+       * size_max.m4: New file, from gettext-0.14.1.
+       * ulonglong.m4: Upgrade to gettext-0.14.1.
+       * wchar_t.m4: New file, from gettext-0.14.1.
+       * wint_t.m4: New file, from gettext-0.14.1.
+       * xsize.m4: New file, from gettext-0.14.1.
+       * Makefile.am (EXTRA_DIST): Add the new files.
+
 2004-03-06  Werner Koch  <wk@gnupg.org>
 
        * libgcrypt.m4: Updated.
index 0eb02f6..a31103f 100644 (file)
@@ -1,3 +1,3 @@
-EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4
+EXTRA_DIST = intmax.m4 longdouble.m4 longlong.m4 printf-posix.m4 signed.m4 size_max.m4 wchar_t.m4 wint_t.m4 xsize.m4  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4
 
 EXTRA_DIST += gpg-error.m4 libgcrypt.m4 libassuan.m4 ksba.m4
index 16070b4..a374f03 100644 (file)
@@ -1,4 +1,4 @@
-# gettext.m4 serial 20 (gettext-0.12)
+# gettext.m4 serial 28 (gettext-0.13)
 dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
 dnl This file is free software, distributed under the terms of the GNU
 dnl General Public License.  As a special exception to the GNU General
@@ -354,9 +354,18 @@ AC_DEFUN([AM_INTL_SUBDIR],
   AC_REQUIRE([AC_ISC_POSIX])dnl
   AC_REQUIRE([AC_HEADER_STDC])dnl
   AC_REQUIRE([AC_C_CONST])dnl
+  AC_REQUIRE([bh_C_SIGNED])dnl
   AC_REQUIRE([AC_C_INLINE])dnl
   AC_REQUIRE([AC_TYPE_OFF_T])dnl
   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+  AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl
+  AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
+  AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+  AC_REQUIRE([gt_TYPE_WINT_T])dnl
+  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
+  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
+  AC_REQUIRE([gt_TYPE_INTMAX_T])
+  AC_REQUIRE([gt_PRINTF_POSIX])
   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
   AC_REQUIRE([AC_FUNC_MMAP])dnl
   AC_REQUIRE([jm_GLIBC21])dnl
@@ -364,14 +373,57 @@ AC_DEFUN([AM_INTL_SUBDIR],
   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
   AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
   AC_REQUIRE([gt_INTTYPES_PRI])dnl
+  AC_REQUIRE([gl_XSIZE])dnl
 
+  AC_CHECK_TYPE([ptrdiff_t], ,
+    [AC_DEFINE([ptrdiff_t], [long],
+       [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+    ])
   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
 stdlib.h string.h unistd.h sys/param.h])
-  AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
-geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
-strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \
+  AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
+mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
+strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
 __fsetlocking])
 
+  dnl Use the _snprintf function only if it is declared (because on NetBSD it
+  dnl is defined as a weak alias of snprintf; we prefer to use the latter).
+  gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
+  gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
+
+  dnl Use the *_unlocked functions only if they are declared.
+  dnl (because some of them were defined without being declared in Solaris
+  dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+  dnl on Solaris 2.5.1 to run on Solaris 2.6).
+  dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+  gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
+  gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
+  gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
+
+  case $gt_cv_func_printf_posix in
+    *yes) HAVE_POSIX_PRINTF=1 ;;
+    *) HAVE_POSIX_PRINTF=0 ;;
+  esac
+  AC_SUBST([HAVE_POSIX_PRINTF])
+  if test "$ac_cv_func_asprintf" = yes; then
+    HAVE_ASPRINTF=1
+  else
+    HAVE_ASPRINTF=0
+  fi
+  AC_SUBST([HAVE_ASPRINTF])
+  if test "$ac_cv_func_snprintf" = yes; then
+    HAVE_SNPRINTF=1
+  else
+    HAVE_SNPRINTF=0
+  fi
+  AC_SUBST([HAVE_SNPRINTF])
+  if test "$ac_cv_func_wprintf" = yes; then
+    HAVE_WPRINTF=1
+  else
+    HAVE_WPRINTF=0
+  fi
+  AC_SUBST([HAVE_WPRINTF])
+
   AM_ICONV
   AM_LANGINFO_CODESET
   if test $ac_cv_header_locale_h = yes; then
@@ -411,5 +463,25 @@ changequote([,])dnl
 ])
 
 
+dnl gt_CHECK_DECL(FUNC, INCLUDES)
+dnl Check whether a function is declared.
+AC_DEFUN([gt_CHECK_DECL],
+[
+  AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
+    [AC_TRY_COMPILE([$2], [
+#ifndef $1
+  char *p = (char *) $1;
+#endif
+], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
+  if test $ac_cv_have_decl_$1 = yes; then
+    gt_value=1
+  else
+    gt_value=0
+  fi
+  AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
+    [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
+])
+
+
 dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
index 931630b..a5875f0 100644 (file)
@@ -4,7 +4,7 @@ dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
 dnl                   [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
 dnl Test for libgpg-error and define GPG_ERROR_CFLAGS and GPG_ERROR_LIBS
 dnl
-AC_DEFUN(AM_PATH_GPG_ERROR,
+AC_DEFUN([AM_PATH_GPG_ERROR],
 [ AC_ARG_WITH(gpg-error-prefix,
             AC_HELP_STRING([--with-gpg-error-prefix=PFX],
                            [prefix where GPG Error is installed (optional)]),
index 11d0ce7..38aeaec 100644 (file)
@@ -1,4 +1,4 @@
-# lib-ld.m4 serial 2 (gettext-0.12)
+# lib-ld.m4 serial 3 (gettext-0.13)
 dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
 dnl This file is free software, distributed under the terms of the GNU
 dnl General Public License.  As a special exception to the GNU General
@@ -14,11 +14,12 @@ dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
 AC_DEFUN([AC_LIB_PROG_LD_GNU],
 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
-  acl_cv_prog_gnu_ld=yes
-else
-  acl_cv_prog_gnu_ld=no
-fi])
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac])
 with_gnu_ld=$acl_cv_prog_gnu_ld
 ])
 
@@ -88,11 +89,12 @@ AC_CACHE_VAL(acl_cv_path_LD,
       # Check to see if the program is GNU ld.  I'd rather use --version,
       # but apparently some GNU ld's only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
-      if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
-       test "$with_gnu_ld" != no && break
-      else
-       test "$with_gnu_ld" != yes && break
-      fi
+      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      *GNU* | *'with BFD'*)
+       test "$with_gnu_ld" != no && break ;;
+      *)
+       test "$with_gnu_ld" != yes && break ;;
+      esac
     fi
   done
   IFS="$ac_save_ifs"
index c719bc8..8aff5a9 100644 (file)
@@ -1,4 +1,4 @@
-# lib-prefix.m4 serial 2 (gettext-0.12)
+# lib-prefix.m4 serial 3 (gettext-0.13)
 dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
 dnl This file is free software, distributed under the terms of the GNU
 dnl General Public License.  As a special exception to the GNU General
@@ -13,7 +13,7 @@ dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
 dnl require excessive bracketing.
 ifdef([AC_HELP_STRING],
 [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
 
 dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
 dnl to access previously installed libraries. The basic assumption is that
index 2afc697..16b664c 100644 (file)
@@ -14,7 +14,7 @@ dnl AM_PATH_LIBASSUAN([MINIMUM-VERSION,
 dnl                   [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
 dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS
 dnl
-AC_DEFUN(AM_PATH_LIBASSUAN,
+AC_DEFUN([AM_PATH_LIBASSUAN],
 [ AC_ARG_WITH(libassuan-prefix,
             AC_HELP_STRING([--with-libassuan-prefix=PFX],
                            [prefix where LIBASSUAN is installed (optional)]),
index e5f2a43..20bd105 100644 (file)
@@ -20,7 +20,7 @@ dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1.  Using
 dnl this features allows to prevent build against newer versions of libgcrypt
 dnl with a changed API.
 dnl
-AC_DEFUN(AM_PATH_LIBGCRYPT,
+AC_DEFUN([AM_PATH_LIBGCRYPT],
 [ AC_ARG_WITH(libgcrypt-prefix,
             AC_HELP_STRING([--with-libgcrypt-prefix=PFX],
                            [prefix where LIBGCRYPT is installed (optional)]),
index 861e3de..e161998 100644 (file)
--- a/m4/po.m4
+++ b/m4/po.m4
@@ -1,4 +1,4 @@
-# po.m4 serial 1 (gettext-0.12)
+# po.m4 serial 3 (gettext-0.14)
 dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
 dnl This file is free software, distributed under the terms of the GNU
 dnl General Public License.  As a special exception to the GNU General
@@ -111,7 +111,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
           cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[  ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
           POMAKEFILEDEPS="POTFILES.in"
-          # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
+          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
           # on $ac_dir but don't depend on user-specified configuration
           # parameters.
           if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
@@ -127,19 +127,27 @@ AC_DEFUN([AM_PO_SUBDIRS],
             # The set of available languages was given in configure.in.
             eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
           fi
+          # Compute POFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+          # Compute UPDATEPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+          # Compute DUMMYPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+          # Compute GMOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
           case "$ac_given_srcdir" in
             .) srcdirpre= ;;
             *) srcdirpre='$(srcdir)/' ;;
           esac
           POFILES=
-          GMOFILES=
           UPDATEPOFILES=
           DUMMYPOFILES=
+          GMOFILES=
           for lang in $ALL_LINGUAS; do
             POFILES="$POFILES $srcdirpre$lang.po"
-            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
             UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
             DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
           done
           # CATALOGS depends on both $ac_dir and the user's LINGUAS
           # environment variable.
@@ -174,7 +182,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
             done
           fi
           test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
-          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
           for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
             if test -f "$f"; then
               case "$f" in
@@ -188,10 +196,231 @@ AC_DEFUN([AM_PO_SUBDIRS],
       esac
     done],
    [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
-    # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
     # from automake.
     eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
     # Capture the value of LINGUAS because we need it to compute CATALOGS.
     LINGUAS="${LINGUAS-%UNSET%}"
    ])
 ])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+  # When this code is run, in config.status, two variables have already been
+  # set:
+  # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+  # - LINGUAS is the value of the environment variable LINGUAS at configure
+  #   time.
+
+changequote(,)dnl
+  # Adjust a relative srcdir.
+  ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+  ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+  ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g&#