psmisc: upgraded to 22.2 from OE (with uClibc fix)
authorMarcin Juszkiewicz <hrw@openedhand.com>
Fri, 18 Jan 2008 15:11:16 +0000 (15:11 +0000)
committerMarcin Juszkiewicz <hrw@openedhand.com>
Fri, 18 Jan 2008 15:11:16 +0000 (15:11 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3543 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/psmisc/files/libintl-link.patch [new file with mode: 0644]
meta/packages/psmisc/psmisc-20.2/gettext.patch [deleted file]
meta/packages/psmisc/psmisc.inc [new file with mode: 0644]
meta/packages/psmisc/psmisc_20.2.bb

diff --git a/meta/packages/psmisc/files/libintl-link.patch b/meta/packages/psmisc/files/libintl-link.patch
new file mode 100644 (file)
index 0000000..d9cdd90
--- /dev/null
@@ -0,0 +1,29 @@
+uClibc needs to link against an external libintl but it doesn't do this by
+default. The configure script correctly figures out if this is needed, but
+doesn't actually link to the libraries it decides on. This makes it link to
+them if they are needed:
+
+--- psmisc-22.2/src/Makefile.am        2006/06/28 00:14:07     1.1
++++ psmisc-22.2/src/Makefile.am        2006/06/28 00:14:24
+@@ -5,15 +5,19 @@
+ oldfuser_SOURCES = oldfuser.c comm.h signals.c signals.h loop.h i18n.h
++oldfuser_LDADD = @INTLLIBS@
++
+ fuser_SOURCES = fuser.c comm.h signals.c signals.h i18n.h fuser.h
++fuser_LDADD = @INTLLIBS@
++
+ killall_SOURCES = killall.c comm.h signals.c signals.h i18n.h
+-killall_LDADD = @SELINUX_LIB@
++killall_LDADD = @SELINUX_LIB@ @INTLLIBS@
+ pstree_SOURCES = pstree.c comm.h i18n.h
+-pstree_LDADD = @TERMCAP_LIB@ @SELINUX_LIB@
++pstree_LDADD = @TERMCAP_LIB@ @SELINUX_LIB@ @INTLLIBS@
+ BUILT_SOURCES = signames.h
diff --git a/meta/packages/psmisc/psmisc-20.2/gettext.patch b/meta/packages/psmisc/psmisc-20.2/gettext.patch
deleted file mode 100644 (file)
index 971850f..0000000
+++ /dev/null
@@ -1,18062 +0,0 @@
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/ABOUT-NLS psmisc-20.2.works.clean/ABOUT-NLS
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/ABOUT-NLS      2001-04-13 23:00:47.000000000 -0500
-+++ psmisc-20.2.works.clean/ABOUT-NLS  2004-10-13 15:18:41.000000000 -0500
-@@ -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 @@
- 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 @@
- 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,18 +98,27 @@
- 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
--ISO 639 `LL' two-letter code prior to using the programs in the
--package.  For example, let's suppose that you speak German.  At the
--shell prompt, merely execute `setenv LANG de' (in `csh'),
--`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash').  This
--can be done from your `.login' or `.profile' file, once and for all.
-+`LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
-+and `CC' is an ISO 3166 two-letter country code.  For example, let's
-+suppose that you speak German and live in Germany.  At the shell
-+prompt, merely execute `setenv LANG de_DE' (in `csh'),
-+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
-+This can be done from your `.login' or `.profile' file, once and for
-+all.
--   Some languages have dialects in different countries.  To specify
--such a dialect, the notation `LL_CC' can be used, which combines an
--ISO 639 language code `LL' and an ISO 3166 two-letter country code
--`CC'.  For example, `de_AT' is used for Austria, and `pt_BR' for Brazil.
-+   You might think that the country code specification is redundant.
-+But in fact, some languages have dialects in different countries.  For
-+example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
-+country code serves to distinguish the dialects.
-+
-+   The locale naming convention of `LL_CC', with `LL' denoting the
-+language and `CC' denoting the country, is the one use on systems based
-+on GNU libc.  On other systems, some variations of this scheme are
-+used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
-+locales supported by your system for your country by running the command
-+`locale -a | grep '^LL''.
-    Not all programs have translations for all languages.  By default, an
- English message is shown in place of a nonexistent translation.  If you
-@@ -120,12 +129,25 @@
- set to the primary language; this is required by other parts of the
- system libraries.  For example, some Swedish users who would rather
- read translations in German than English for when Swedish is not
--available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
-+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
-+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
-+(Portuguese as spoken in Portugal) in this context.
- Translating Teams
- =================
--   For the Free Translation Project to be a success, we need interested
-+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
-@@ -155,99 +177,559 @@
- Available Packages
- ==================
--   Languages are not equally supported in all packages.  The following
--matrix shows the current state of internationalization, as of July
--2000.  The matrix shows, in regard of each package, for which languages
-+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    bg cs da de el en eo es et fi fr gl hr id it
--                     .----------------------------------------------.
--     a2ps            |          []             []                   |
--     bash            |          []       []          []             |
--     bison           |          []          [] []    []             |
--     clisp           |          []    []    []       []             |
--     cpio            |          []          []       []             |
--     diffutils       |       [] []          []       [] []          |
--     enscript        |          []                   []             |
--     error           |                               []             |
--     fileutils       |    [] [] [] []       []       [] []       [] |
--     findutils       |          []          [] []    [] []       [] |
--     flex            |                      []       []             |
--     gcal            |                                              |
--     gcc             |                                              |
--     gettext         |    [] [] [] []       []       [] []    [] [] |
--     gnupg           |          []       []          []          [] |
--     grep            | [] [] [] [] []    [] [] []    []          [] |
--     hello           |          []          [] [] [] []       [] [] |
--     id-utils        |                               []             |
--     indent          |       [] []             []    [] []          |
--     libc            |    [] [] [] []       []       [] []       [] |
--     lilypond        |                                              |
--     lynx            |    [] [] []                                  |
--     m4              |    [] [] [] []                [] []          |
--     make            |          []          []       [] []          |
--     music           |                               []             |
--     parted          |          []                      []          |
--     ptx             |       [] []          [] []    [] []    []    |
--     python          |                                              |
--     recode          |       [] [] []       []       [] []       [] |
--     sed             |    []    [] []          []    [] []       [] |
--     sh-utils        |    [] [] [] []       [] []    [] []       [] |
--     sharutils       |    []    [] []       []       [] []          |
--     tar             |    [] [] []          [] []    []          [] |
--     texinfo         |    []    []       []          []             |
--     textutils       |    [] [] [] []       []       [] []          |
--     util-linux      |                                              |
--     wdiff           |    [] []             [] []    []             |
--     wget            |    [] [] [] []          []    [] []       [] |
--                     `----------------------------------------------'
--                       bg cs da de el en eo es et fi fr gl hr id it
--                        1 14 15 28 11  1  4 19 12  1 30 16  0  3 12
-+     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
-      
--                       ja ko lv nl no pl pt pt_BR ru sk sl sv zh
--                     .-------------------------------------------.
--     a2ps            |          []                []    []       |  5
--     bash            |                                           |  3
--     bison           | []       []                []             |  7
--     clisp           |          []                               |  5
--     cpio            |    []    []    []     []   []             |  8
--     diffutils       |                []          []       []    |  8
--     enscript        |          []                []             |  4
--     error           |                                           |  1
--     fileutils       | [] []    []    []     []   [] [] [] []    | 17
--     findutils       |    []    []    []     []   []       []    | 12
--     flex            |    []                      []       []    |  5
--     gcal            |                                           |  0
--     gcc             | []                                        |  1
--     gettext         | [] []    []    []     []   []    [] [] [] | 18
--     gnupg           | []             []                   []    |  7
--     grep            | []       []    []     []   []    [] []    | 17
--     hello           | [] []    []    []     []   [] []    []    | 15
--     id-utils        |          []                []       []    |  4
--     indent          |    []          []          [] []    []    | 10
--     libc            | [] []    [] [] []     []      []    []    | 16
--     lilypond        | []       []                               |  2
--     lynx            | []       []           []   []             |  7
--     m4              | []       []    []          []       []    | 11
--     make            | []       []    []     []   []             |  9
--     music           |                []                         |  2
--     parted          | []       []           []   []             |  6
--     ptx             |          [] [] [] []       []       []    | 13
--     python          |                                           |  0
--     recode          |                            []    [] []    | 10
--     sed             | []       []           []   [] [] [] []    | 14
--     sh-utils        | []       [] [] []     []   [] [] [] [] [] | 19
--     sharutils       | []       []                []       []    | 10
--     tar             | []       [] [] []     []   []    [] []    | 15
--     texinfo         | []                         []             |  6
--     textutils       | []       [] [] []     []   [] [] []       | 15
--     util-linux      |                       []                  |  1
--     wdiff           |          []    []          [] []    []    | 10
--     wget            | []       [] []        []   [] [] [] [] [] | 17
--                     `-------------------------------------------'
--       28 teams        ja ko lv nl no pl pt pt_BR ru sk sl sv zh
--       38 domains      20  8  0 25  6 18  1  16   27  9 10 20  3  330
-+                          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
-+     
-+                          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
-+     
-+                          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
-@@ -260,7 +742,7 @@
- lag between the mere existence a PO file and its wide availability in a
- distribution.
--   If July 2000 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'.
-@@ -268,15 +750,17 @@
- 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 the GNU Public License applies to your sources from
--then if you include `gettext' directly in your distribution on but
--since you are writing free software anyway this is no restriction.
-+package.  Of course you have to respect the GNU Library General Public
-+License which covers the use of the GNU `gettext' library.  This means
-+in particular that even non-free programs can use `libintl' as a shared
-+library, whereas only free software can use `libintl' as a static
-+library or use modified versions of `libintl'.
--   Once the sources are change appropriately and the setup can handle to
--use of `gettext' the only thing missing are the translations.  The Free
--Translation Project is also available for packages which are not
-+   Once the sources are changed appropriately and the setup can handle
-+the use of `gettext' the only thing missing are the translations.  The
-+Free Translation Project is also available for packages which are not
- developed inside the GNU project.  Therefore the information given above
- applies also for every other Free Software Project.  Contact
- `translation@iro.umontreal.ca' to make the `.pot' files available to
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/ChangeLog psmisc-20.2.works.clean/ChangeLog
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/ChangeLog      2001-10-17 17:43:07.000000000 -0500
-+++ psmisc-20.2.works.clean/ChangeLog  2004-10-13 15:18:42.000000000 -0500
-@@ -1,3 +1,35 @@
-+2004-10-13  gettextize  <bug-gnu-gettext@gnu.org>
-+
-+      * Makefile.am (SUBDIRS): Add intl.
-+      (EXTRA_DIST): Add config.rpath.
-+      * configure.in (AC_CONFIG_FILES): Add intl/Makefile.
-+
-+2004-10-13  gettextize  <bug-gnu-gettext@gnu.org>
-+
-+      * Makefile.am (SUBDIRS): Add intl.
-+      * configure.in (AC_CONFIG_FILES): Add intl/Makefile.
-+
-+2004-10-13  gettextize  <bug-gnu-gettext@gnu.org>
-+
-+      * Makefile.am (SUBDIRS): Add intl.
-+      * configure.in (AC_CONFIG_FILES): Add intl/Makefile.
-+
-+2004-10-13  gettextize  <bug-gnu-gettext@gnu.org>
-+
-+      * configure.in (AC_CONFIG_FILES): Add po/Makefile.in.
-+
-+2004-10-13  gettextize  <bug-gnu-gettext@gnu.org>
-+
-+      * configure.in (AC_CONFIG_FILES): Add intl/Makefile.
-+
-+2004-10-13  gettextize  <bug-gnu-gettext@gnu.org>
-+
-+      * Makefile.am (SUBDIRS): Remove intl.
-+      (ACLOCAL_AMFLAGS): New variable.
-+      (EXTRA_DIST): Add config.rpath.
-+      * configure.in (AC_CONFIG_FILES): Add m4/Makefile.
-+      (AC_CONFIG_FILES): Remove intl/Makefile.
-+
- Changes in 20.2 (18-OCT-2001)
- =============================
-  - Added NLS/gettext
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/ChangeLog~ psmisc-20.2.works.clean/ChangeLog~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/Makefile.am psmisc-20.2.works.clean/Makefile.am
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/Makefile.am    2001-06-12 19:49:47.000000000 -0500
-+++ psmisc-20.2.works.clean/Makefile.am        2004-10-13 15:19:08.000000000 -0500
-@@ -1,4 +1,5 @@
-+SUBDIRS = intl po doc src
--SUBDIRS = doc intl src po
-+EXTRA_DIST= config.rpath  config.rpath ABOUT-NLS 
--EXTRA_DIST=ABOUT-NLS 
-+ACLOCAL_AMFLAGS = -I m4
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/Makefile.am~ psmisc-20.2.works.clean/Makefile.am~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/Makefile.in psmisc-20.2.works.clean/Makefile.in
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/aclocal.m4 psmisc-20.2.works.clean/aclocal.m4
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/autom4te.cache/output.0 psmisc-20.2.works.clean/autom4te.cache/output.0
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/autom4te.cache/output.1 psmisc-20.2.works.clean/autom4te.cache/output.1
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/autom4te.cache/output.2 psmisc-20.2.works.clean/autom4te.cache/output.2
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/autom4te.cache/requests psmisc-20.2.works.clean/autom4te.cache/requests
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/autom4te.cache/traces.0 psmisc-20.2.works.clean/autom4te.cache/traces.0
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/autom4te.cache/traces.1 psmisc-20.2.works.clean/autom4te.cache/traces.1
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/autom4te.cache/traces.2 psmisc-20.2.works.clean/autom4te.cache/traces.2
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/config.guess psmisc-20.2.works.clean/config.guess
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/config.h.in psmisc-20.2.works.clean/config.h.in
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/config.rpath psmisc-20.2.works.clean/config.rpath
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/config.sub psmisc-20.2.works.clean/config.sub
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/configure psmisc-20.2.works.clean/configure
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/configure.in psmisc-20.2.works.clean/configure.in
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/configure.in   2001-06-15 07:21:07.000000000 -0500
-+++ psmisc-20.2.works.clean/configure.in       2004-10-13 15:19:18.000000000 -0500
-@@ -1,5 +1,6 @@
- dnl Process this file with autoconf to produce a configure script.
--AC_INIT(src/comm.h)
-+AC_INIT
-+AC_CONFIG_SRCDIR([src/comm.h])
- AM_CONFIG_HEADER(config.h)
- AM_INIT_AUTOMAKE(psmisc,20.2)
-@@ -23,7 +24,15 @@
- AC_C_CONST
- AC_TYPE_PID_T
- AC_TYPE_SIZE_T
--AC_STRUCT_ST_RDEV
-+AC_DIAGNOSE([obsolete],[AC_STRUCT_ST_RDEV:
-+        your code should no longer depend upon `HAVE_ST_RDEV', but
-+        `HAVE_STRUCT_STAT_ST_RDEV'.  Remove this warning and
-+        the `AC_DEFINE' when you adjust the code.])
-+AC_CHECK_MEMBERS([struct stat.st_rdev],[AC_DEFINE(HAVE_ST_RDEV, 1,
-+                            [Define to 1 if your `struct stat' has `st_rdev'.
-+                             Deprecated, use `HAVE_STRUCT_STAT_ST_RDEV'
-+                             instead.])])
-+
- AC_TYPE_UID_T
- dnl Check for language stuff
-@@ -33,4 +42,5 @@
- dnl Checks for library functions.
- AC_CHECK_FUNCS(strdup strerror strtoul)
--AC_OUTPUT(Makefile doc/Makefile src/Makefile intl/Makefile po/Makefile.in)
-+AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile po/Makefile.in m4/Makefile intl/Makefile intl/libgnuintl.h  ])
-+AC_OUTPUT
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/configure.in~ psmisc-20.2.works.clean/configure.in~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/depcomp psmisc-20.2.works.clean/depcomp
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/doc/Makefile.in psmisc-20.2.works.clean/doc/Makefile.in
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/doc/Makefile.in        2001-10-17 17:49:50.000000000 -0500
-+++ psmisc-20.2.works.clean/doc/Makefile.in    2004-10-13 15:20:17.000000000 -0500
-@@ -1,6 +1,8 @@
--# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
-+# Makefile.in generated by automake 1.8.4 from Makefile.am.
-+# @configure_input@
--# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-+# 2003, 2004  Free Software Foundation, Inc.
- # This Makefile.in is free software; the Free Software Foundation
- # gives unlimited permission to copy and/or distribute it,
- # with or without modifications, as long as this notice is preserved.
-@@ -10,111 +12,192 @@
- # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- # PARTICULAR PURPOSE.
--
--SHELL = @SHELL@
--
-+@SET_MAKE@
- srcdir = @srcdir@
- top_srcdir = @top_srcdir@
- VPATH = @srcdir@
--prefix = @prefix@
--exec_prefix = @exec_prefix@
--
--bindir = @bindir@
--sbindir = @sbindir@
--libexecdir = @libexecdir@
--datadir = @datadir@
--sysconfdir = @sysconfdir@
--sharedstatedir = @sharedstatedir@
--localstatedir = @localstatedir@
--libdir = @libdir@
--infodir = @infodir@
--mandir = @mandir@
--includedir = @includedir@
--oldincludedir = /usr/include
--
--DESTDIR =
--
- pkgdatadir = $(datadir)/@PACKAGE@
- pkglibdir = $(libdir)/@PACKAGE@
- pkgincludedir = $(includedir)/@PACKAGE@
--
- top_builddir = ..
--
--ACLOCAL = @ACLOCAL@
--AUTOCONF = @AUTOCONF@
--AUTOMAKE = @AUTOMAKE@
--AUTOHEADER = @AUTOHEADER@
--
-+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
- INSTALL = @INSTALL@
--INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
--INSTALL_DATA = @INSTALL_DATA@
--INSTALL_SCRIPT = @INSTALL_SCRIPT@
--transform = @program_transform_name@
--
-+install_sh_DATA = $(install_sh) -c -m 644
-+install_sh_PROGRAM = $(install_sh) -c
-+install_sh_SCRIPT = $(install_sh) -c
-+INSTALL_HEADER = $(INSTALL_DATA)
-+transform = $(program_transform_name)
- NORMAL_INSTALL = :
- PRE_INSTALL = :
- POST_INSTALL = :
- NORMAL_UNINSTALL = :
- PRE_UNINSTALL = :
- POST_UNINSTALL = :
--host_alias = @host_alias@
- host_triplet = @host@
-+subdir = doc
-+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-+am__aclocal_m4_deps = $(top_srcdir)/configure.in
-+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-+      $(ACLOCAL_M4)
-+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-+CONFIG_HEADER = $(top_builddir)/config.h
-+CONFIG_CLEAN_FILES =
-+SOURCES =
-+DIST_SOURCES =
-+man1dir = $(mandir)/man1
-+am__installdirs = "$(DESTDIR)$(man1dir)"
-+NROFF = nroff
-+MANS = $(man_MANS)
-+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-+ACLOCAL = @ACLOCAL@
-+ALLOCA = @ALLOCA@
-+AMDEP_FALSE = @AMDEP_FALSE@
-+AMDEP_TRUE = @AMDEP_TRUE@
-+AMTAR = @AMTAR@
-+AUTOCONF = @AUTOCONF@
-+AUTOHEADER = @AUTOHEADER@
-+AUTOMAKE = @AUTOMAKE@
-+AWK = @AWK@
- BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
--CATALOGS = @CATALOGS@
- CATOBJEXT = @CATOBJEXT@
- CC = @CC@
-+CCDEPMODE = @CCDEPMODE@
-+CFLAGS = @CFLAGS@
- CPP = @CPP@
-+CPPFLAGS = @CPPFLAGS@
-+CYGPATH_W = @CYGPATH_W@
- DATADIRNAME = @DATADIRNAME@
--GMOFILES = @GMOFILES@
-+DEFS = @DEFS@
-+DEPDIR = @DEPDIR@
-+ECHO_C = @ECHO_C@
-+ECHO_N = @ECHO_N@
-+ECHO_T = @ECHO_T@
-+EGREP = @EGREP@
-+EXEEXT = @EXEEXT@
-+GENCAT = @GENCAT@
-+GLIBC21 = @GLIBC21@
- GMSGFMT = @GMSGFMT@
-+HAVE_ASPRINTF = @HAVE_ASPRINTF@
-+HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
-+HAVE_SNPRINTF = @HAVE_SNPRINTF@
-+HAVE_WPRINTF = @HAVE_WPRINTF@
-+INSTALL_DATA = @INSTALL_DATA@
-+INSTALL_PROGRAM = @INSTALL_PROGRAM@
-+INSTALL_SCRIPT = @INSTALL_SCRIPT@
-+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-+INSTOBJEXT = @INSTOBJEXT@
- INTLBISON = @INTLBISON@
- INTLLIBS = @INTLLIBS@
- INTLOBJS = @INTLOBJS@
- INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
-+LDFLAGS = @LDFLAGS@
- LIBICONV = @LIBICONV@
-+LIBINTL = @LIBINTL@
-+LIBOBJS = @LIBOBJS@
-+LIBS = @LIBS@
-+LTLIBICONV = @LTLIBICONV@
-+LTLIBINTL = @LTLIBINTL@
-+LTLIBOBJS = @LTLIBOBJS@
- MAKEINFO = @MAKEINFO@
- MKINSTALLDIRS = @MKINSTALLDIRS@
- MSGFMT = @MSGFMT@
-+MSGMERGE = @MSGMERGE@
-+OBJEXT = @OBJEXT@
- PACKAGE = @PACKAGE@
--POFILES = @POFILES@
-+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-+PACKAGE_NAME = @PACKAGE_NAME@
-+PACKAGE_STRING = @PACKAGE_STRING@
-+PACKAGE_TARNAME = @PACKAGE_TARNAME@
-+PACKAGE_VERSION = @PACKAGE_VERSION@
-+PATH_SEPARATOR = @PATH_SEPARATOR@
- POSUB = @POSUB@
- RANLIB = @RANLIB@
-+SET_MAKE = @SET_MAKE@
-+SHELL = @SHELL@
-+STRIP = @STRIP@
- TERMCAP_LIB = @TERMCAP_LIB@
- USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
--
-+XGETTEXT = @XGETTEXT@
-+ac_ct_CC = @ac_ct_CC@
-+ac_ct_RANLIB = @ac_ct_RANLIB@
-+ac_ct_STRIP = @ac_ct_STRIP@
-+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-+am__include = @am__include@
-+am__leading_dot = @am__leading_dot@
-+am__quote = @am__quote@
-+bindir = @bindir@
-+build = @build@
-+build_alias = @build_alias@
-+build_cpu = @build_cpu@
-+build_os = @build_os@
-+build_vendor = @build_vendor@
-+datadir = @datadir@
-+exec_prefix = @exec_prefix@
-+host = @host@
-+host_alias = @host_alias@
-+host_cpu = @host_cpu@
-+host_os = @host_os@
-+host_vendor = @host_vendor@
-+includedir = @includedir@
-+infodir = @infodir@
-+install_sh = @install_sh@
-+libdir = @libdir@
-+libexecdir = @libexecdir@
-+localstatedir = @localstatedir@
-+mandir = @mandir@
-+mkdir_p = @mkdir_p@
-+oldincludedir = @oldincludedir@
-+prefix = @prefix@
-+program_transform_name = @program_transform_name@
-+sbindir = @sbindir@
-+sharedstatedir = @sharedstatedir@
-+sysconfdir = @sysconfdir@
-+target_alias = @target_alias@
- man_MANS = fuser.1 killall.1 pidof.1 pstree.1
--
- EXTRA_DIST = $(man_MANS)
--mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--CONFIG_HEADER = ../config.h
--CONFIG_CLEAN_FILES = 
--man1dir = $(mandir)/man1
--MANS = $(man_MANS)
--
--NROFF = nroff
--DIST_COMMON =  Makefile.am Makefile.in
--
--
--DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-+all: all-am
--TAR = tar
--GZIP_ENV = --best
--all: all-redirect
- .SUFFIXES:
--$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
--      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/Makefile
--
--Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
--      cd $(top_builddir) \
--        && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-+      @for dep in $?; do \
-+        case '$(am__configure_deps)' in \
-+          *$$dep*) \
-+            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-+              && exit 0; \
-+            exit 1;; \
-+        esac; \
-+      done; \
-+      echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  doc/Makefile'; \
-+      cd $(top_srcdir) && \
-+        $(AUTOMAKE) --foreign  doc/Makefile
-+.PRECIOUS: Makefile
-+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-+      @case '$?' in \
-+        *config.status*) \
-+          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-+        *) \
-+          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-+          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-+      esac;
-+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-+      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
--install-man1:
--      $(mkinstalldirs) $(DESTDIR)$(man1dir)
--      @list='$(man1_MANS)'; \
--      l2='$(man_MANS)'; for i in $$l2; do \
-+$(top_srcdir)/configure:  $(am__configure_deps)
-+      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-+      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-+uninstall-info-am:
-+install-man1: $(man1_MANS) $(man_MANS)
-+      @$(NORMAL_INSTALL)
-+      test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-+      @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-+      l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-+      for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-@@ -123,112 +206,158 @@
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-+        case "$$ext" in \
-+          1*) ;; \
-+          *) ext='1' ;; \
-+        esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-+        inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
--        echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
--        $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
-+        echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-+        $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
--
- uninstall-man1:
--      @list='$(man1_MANS)'; \
--      l2='$(man_MANS)'; for i in $$l2; do \
-+      @$(NORMAL_UNINSTALL)
-+      @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-+      l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-+      for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-+        case "$$ext" in \
-+          1*) ;; \
-+          *) ext='1' ;; \
-+        esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-+        inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
--        echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
--        rm -f $(DESTDIR)$(man1dir)/$$inst; \
-+        echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-+        rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
--install-man: $(MANS)
--      @$(NORMAL_INSTALL)
--      $(MAKE) $(AM_MAKEFLAGS) install-man1
--uninstall-man:
--      @$(NORMAL_UNINSTALL)
--      $(MAKE) $(AM_MAKEFLAGS) uninstall-man1
- tags: TAGS
- TAGS:
-+ctags: CTAGS
-+CTAGS:
--distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
--
--subdir = doc
- distdir: $(DISTFILES)
--      @for file in $(DISTFILES); do \
--        d=$(srcdir); \
-+      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-+      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-+      list='$(DISTFILES)'; for file in $$list; do \
-+        case $$file in \
-+          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-+          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-+        esac; \
-+        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-+        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-+        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-+          dir="/$$dir"; \
-+          $(mkdir_p) "$(distdir)$$dir"; \
-+        else \
-+          dir=''; \
-+        fi; \
-         if test -d $$d/$$file; then \
--          cp -pr $$d/$$file $(distdir)/$$file; \
-+          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-+            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-+          fi; \
-+          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-         else \
-           test -f $(distdir)/$$file \
--          || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
--          || cp -p $$d/$$file $(distdir)/$$file || :; \
-+          || cp -p $$d/$$file $(distdir)/$$file \
-+          || exit 1; \
-         fi; \
-       done
--info-am:
--info: info-am
--dvi-am:
--dvi: dvi-am
- check-am: all-am
- check: check-am
--installcheck-am:
--installcheck: installcheck-am
--install-exec-am:
-+all-am: Makefile $(MANS)
-+installdirs:
-+      for dir in "$(DESTDIR)$(man1dir)"; do \
-+        test -z "$$dir" || $(mkdir_p) "$$dir"; \
-+      done
-+install: install-am
- install-exec: install-exec-am
--
--install-data-am: install-man
- install-data: install-data-am
-+uninstall: uninstall-am
- install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
--install: install-am
--uninstall-am: uninstall-man
--uninstall: uninstall-am
--all-am: Makefile $(MANS)
--all-redirect: all-am
--install-strip:
--      $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
--installdirs:
--      $(mkinstalldirs)  $(DESTDIR)$(mandir)/man1
--
-+installcheck: installcheck-am
-+install-strip:
-+      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-+        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-+        `test -z '$(STRIP)' || \
-+          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
- mostlyclean-generic:
- clean-generic:
- distclean-generic:
--      -rm -f Makefile $(CONFIG_CLEAN_FILES)
--      -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-+      -rm -f $(CONFIG_CLEAN_FILES)
- maintainer-clean-generic:
--mostlyclean-am:  mostlyclean-generic
-+      @echo "This command is intended for maintainers to use"
-+      @echo "it deletes files that may require special tools to rebuild."
-+clean: clean-am
--mostlyclean: mostlyclean-am
-+clean-am: clean-generic mostlyclean-am
--clean-am:  clean-generic mostlyclean-am
-+distclean: distclean-am
-+      -rm -f Makefile
-+distclean-am: clean-am distclean-generic
--clean: clean-am
-+dvi: dvi-am
--distclean-am:  distclean-generic clean-am
-+dvi-am:
--distclean: distclean-am
-+html: html-am
--maintainer-clean-am:  maintainer-clean-generic distclean-am
--      @echo "This command is intended for maintainers to use;"
--      @echo "it deletes files that may require special tools to rebuild."
-+info: info-am
-+
-+info-am:
-+
-+install-data-am: install-man
-+
-+install-exec-am:
-+
-+install-info: install-info-am
-+
-+install-man: install-man1
-+
-+installcheck-am:
- maintainer-clean: maintainer-clean-am
-+      -rm -f Makefile
-+maintainer-clean-am: distclean-am maintainer-clean-generic
--.PHONY: install-man1 uninstall-man1 install-man uninstall-man tags \
--distdir info-am info dvi-am dvi check check-am installcheck-am \
--installcheck install-exec-am install-exec install-data-am install-data \
--install-am install uninstall-am uninstall all-redirect all-am all \
--installdirs mostlyclean-generic distclean-generic clean-generic \
--maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-+mostlyclean: mostlyclean-am
-+
-+mostlyclean-am: mostlyclean-generic
-+
-+pdf: pdf-am
-+
-+pdf-am:
-+
-+ps: ps-am
-+ps-am:
-+
-+uninstall-am: uninstall-info-am uninstall-man
-+
-+uninstall-man: uninstall-man1
-+
-+.PHONY: all all-am check check-am clean clean-generic distclean \
-+      distclean-generic distdir dvi dvi-am html html-am info info-am \
-+      install install-am install-data install-data-am install-exec \
-+      install-exec-am install-info install-info-am install-man \
-+      install-man1 install-strip installcheck installcheck-am \
-+      installdirs maintainer-clean maintainer-clean-generic \
-+      mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
-+      uninstall-am uninstall-info-am uninstall-man uninstall-man1
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/install-sh psmisc-20.2.works.clean/install-sh
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/ChangeLog psmisc-20.2.works.clean/intl/ChangeLog
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/ChangeLog 2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/ChangeLog     2004-10-13 15:18:41.000000000 -0500
-@@ -1,4 +1,4 @@
--2001-03-09  GNU  <bug-gnu-utils@gnu.org>
-+2004-01-29  GNU  <bug-gnu-gettext@gnu.org>
--      * Version 0.10.36 released.
-+      * Version 0.14.1 released.
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/Makefile.in psmisc-20.2.works.clean/intl/Makefile.in
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/Makefile.in       2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/Makefile.in   2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
--# Makefile for directory with message catalog handling in GNU NLS Utilities.
--# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
-+# Makefile for directory with message catalog handling library of GNU gettext
-+# 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 General Public License as published by
--# the Free Software Foundation; either version 2, or (at your option)
-+# 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
-+# by the Free Software Foundation; either version 2, or (at your option)
- # any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
--# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--# GNU General Public License for more details.
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+# Library General Public License for more details.
- #
--# You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+# You should have received a copy of the GNU Library General Public
-+# License along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+# USA.
- PACKAGE = @PACKAGE@
- VERSION = @VERSION@
-@@ -23,23 +24,23 @@
- srcdir = @srcdir@
- top_srcdir = @top_srcdir@
- top_builddir = ..
--VPATH = @srcdir@
-+#VPATH = $(srcdir)
- prefix = @prefix@
- exec_prefix = @exec_prefix@
- transform = @program_transform_name@
--libdir = $(exec_prefix)/lib
--includedir = $(prefix)/include
--datadir = $(prefix)/share
-+libdir = @libdir@
-+includedir = @includedir@
-+datadir = @datadir@
- localedir = $(datadir)/locale
--gettextsrcdir = @datadir@/gettext/intl
-+gettextsrcdir = $(datadir)/gettext/intl
- aliaspath = $(localedir)
- subdir = intl
- INSTALL = @INSTALL@
- INSTALL_DATA = @INSTALL_DATA@
- MKINSTALLDIRS = @MKINSTALLDIRS@
--mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
- l = @INTL_LIBTOOL_SUFFIX_PREFIX@
-@@ -51,89 +52,202 @@
- YFLAGS = --name-prefix=__gettext
- DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
---DLIBDIR=\"$(libdir)\" @DEFS@
-+-DLIBDIR=\"$(libdir)\" -DIN_LIBINTL \
-+-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
-+-Dset_relocation_prefix=libintl_set_relocation_prefix \
-+-Drelocate=libintl_relocate \
-+-DDEPENDS_ON_LIBICONV=1 @DEFS@
- CPPFLAGS = @CPPFLAGS@
- CFLAGS = @CFLAGS@
- LDFLAGS = @LDFLAGS@
-+LIBS = @LIBS@
- COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
--HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h
--COMHDRS = gettext.h gettextP.h hash-string.h
--SOURCES = $(COMSRCS) intl-compat.c
--COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
--finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
--explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
--localcharset.c
--OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
--finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
--explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
--plural.$lo localcharset.$lo
--GETTOBJS = intl-compat.$lo
-+HEADERS = \
-+  gmo.h \
-+  gettextP.h \
-+  hash-string.h \
-+  loadinfo.h \
-+  plural-exp.h \
-+  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 = \
-+  bindtextdom.c \
-+  dcgettext.c \
-+  dgettext.c \
-+  gettext.c \
-+  finddomain.c \
-+  loadmsgcat.c \
-+  localealias.c \
-+  textdomain.c \
-+  l10nflist.c \
-+  explodename.c \
-+  dcigettext.c \
-+  dcngettext.c \
-+  dngettext.c \
-+  ngettext.c \
-+  plural.y \
-+  plural-exp.c \
-+  localcharset.c \
-+  relocatable.c \
-+  localename.c \
-+  log.c \
-+  printf.c \
-+  osdep.c \
-+  os2compat.c \
-+  intl-compat.c
-+OBJECTS = \
-+  bindtextdom.$lo \
-+  dcgettext.$lo \
-+  dgettext.$lo \
-+  gettext.$lo \
-+  finddomain.$lo \
-+  loadmsgcat.$lo \
-+  localealias.$lo \
-+  textdomain.$lo \
-+  l10nflist.$lo \
-+  explodename.$lo \
-+  dcigettext.$lo \
-+  dcngettext.$lo \
-+  dngettext.$lo \
-+  ngettext.$lo \
-+  plural.$lo \
-+  plural-exp.$lo \
-+  localcharset.$lo \
-+  relocatable.$lo \
-+  localename.$lo \
-+  log.$lo \
-+  printf.$lo \
-+  osdep.$lo \
-+  intl-compat.$lo
- DISTFILES.common = Makefile.in \
- config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
- DISTFILES.generated = plural.c
- DISTFILES.normal = VERSION
--DISTFILES.gettext = libintl.glibc
--DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c
-+DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \
-+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
-+
-+all: all-@USE_INCLUDED_LIBINTL@
-+all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
-+all-no: all-no-@BUILD_INCLUDED_LIBINTL@
-+all-no-yes: libgnuintl.$la
-+all-no-no:
-+
-+libintl.a libgnuintl.a: $(OBJECTS)
-+      rm -f $@
-+      $(AR) cru $@ $(OBJECTS)
-+      $(RANLIB) $@
-+
-+libintl.la libgnuintl.la: $(OBJECTS)
-+      $(LIBTOOL) --mode=link \
-+        $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
-+        $(OBJECTS) @LTLIBICONV@ $(LIBS) -lc \
-+        -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
-+        -rpath $(libdir) \
-+        -no-undefined
- # Libtool's library version information for libintl.
- # Before making a gettext release, the gettext maintainer must change this
- # 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=1
-+LTV_CURRENT=7
- LTV_REVISION=0
--LTV_AGE=0
-+LTV_AGE=4
- .SUFFIXES:
- .SUFFIXES: .c .y .o .lo .sin .sed
-+
- .c.o:
-       $(COMPILE) $<
--.c.lo:
--      $(LIBTOOL) --mode=compile $(COMPILE) $<
- .y.c:
-       $(YACC) $(YFLAGS) --output $@ $<
-       rm -f $*.h
--.sin.sed:
--      sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
--      mv t-$@ $@
--
--INCLUDES = -I.. -I. -I$(top_srcdir)/intl
-+bindtextdom.lo: $(srcdir)/bindtextdom.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/bindtextdom.c
-+dcgettext.lo: $(srcdir)/dcgettext.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcgettext.c
-+dgettext.lo: $(srcdir)/dgettext.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dgettext.c
-+gettext.lo: $(srcdir)/gettext.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c
-+finddomain.lo: $(srcdir)/finddomain.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c
-+loadmsgcat.lo: $(srcdir)/loadmsgcat.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c
-+localealias.lo: $(srcdir)/localealias.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localealias.c
-+textdomain.lo: $(srcdir)/textdomain.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/textdomain.c
-+l10nflist.lo: $(srcdir)/l10nflist.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/l10nflist.c
-+explodename.lo: $(srcdir)/explodename.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/explodename.c
-+dcigettext.lo: $(srcdir)/dcigettext.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcigettext.c
-+dcngettext.lo: $(srcdir)/dcngettext.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcngettext.c
-+dngettext.lo: $(srcdir)/dngettext.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dngettext.c
-+ngettext.lo: $(srcdir)/ngettext.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/ngettext.c
-+plural.lo: $(srcdir)/plural.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural.c
-+plural-exp.lo: $(srcdir)/plural-exp.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c
-+localcharset.lo: $(srcdir)/localcharset.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c
-+relocatable.lo: $(srcdir)/relocatable.c
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c
-+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
-+      $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/intl-compat.c
--all: all-@USE_INCLUDED_LIBINTL@
--all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
--all-no: all-no-@BUILD_INCLUDED_LIBINTL@
--all-no-yes: libgnuintl.$la
--all-no-no:
-+ref-add.sed: $(srcdir)/ref-add.sin
-+      sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-add.sin > t-ref-add.sed
-+      mv t-ref-add.sed ref-add.sed
-+ref-del.sed: $(srcdir)/ref-del.sin
-+      sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-del.sin > t-ref-del.sed
-+      mv t-ref-del.sed ref-del.sed
--libintl.a libgnuintl.a: $(OBJECTS)
--      rm -f $@
--      $(AR) cru $@ $(OBJECTS)
--      $(RANLIB) $@
-+INCLUDES = -I. -I$(srcdir) -I..
--libintl.la libgnuintl.la: $(OBJECTS)
--      $(LIBTOOL) --mode=link \
--        $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
--        $(OBJECTS) @LIBICONV@ \
--        -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
--        -rpath $(libdir) \
--        -no-undefined
-+libgnuintl.h: $(srcdir)/libgnuintl.h.in
-+      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 $(srcdir)/libgnuintl.h libintl.h
-+      cp libgnuintl.h libintl.h
--charset.alias: config.charset
-+charset.alias: $(srcdir)/config.charset
-       $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
-       mv t-$@ $@
- check: all
--# This installation goal is only used in GNU gettext.  Packages which
--# only use the library should use install instead.
--
- # We must not install the libintl.h/libintl.a files if we are on a
- # system which has the GNU gettext() function in its C library or in a
- # separate library.
-@@ -141,25 +255,50 @@
- # package, you have to use `configure --with-included-gettext'.
- install: install-exec install-data
- install-exec: all
--      if test "$(PACKAGE)" = "gettext" \
--         && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
-+      if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
-+         && test '@USE_INCLUDED_LIBINTL@' = yes; then \
-         $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
-         $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
-         $(LIBTOOL) --mode=install \
-           $(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 \
-+            rm -f $(DESTDIR)$(libdir)/libintl.la; \
-+          fi; \
-+        fi; \
-       else \
-         : ; \
-       fi
--      if test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+      if test "$(PACKAGE)" = "gettext-tools" \
-+         && test '@USE_INCLUDED_LIBINTL@' = no; then \
-         $(mkinstalldirs) $(DESTDIR)$(libdir); \
--        test -f $(DESTDIR)$(libdir)/charset.alias \
--          && orig=$(DESTDIR)$(libdir)/charset.alias \
--          || orig=charset.alias; \
-+        $(LIBTOOL) --mode=install \
-+          $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \
-+        rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
-+        $(INSTALL_DATA) $(DESTDIR)$(libdir)/libgnuintl.so $(DESTDIR)$(libdir)/preloadable_libintl.so; \
-+        $(LIBTOOL) --mode=uninstall \
-+          rm -f $(DESTDIR)$(libdir)/libgnuintl.$la; \
-+      else \
-+        : ; \
-+      fi
-+      if test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+        test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
-         temp=$(DESTDIR)$(libdir)/t-charset.alias; \
-         dest=$(DESTDIR)$(libdir)/charset.alias; \
--        sed -f ref-add.sed $$orig > $$temp; \
--        $(INSTALL_DATA) $$temp $$dest; \
--        rm -f $$temp; \
-+        if test -f $(DESTDIR)$(libdir)/charset.alias; then \
-+          orig=$(DESTDIR)$(libdir)/charset.alias; \
-+          sed -f ref-add.sed $$orig > $$temp; \
-+          $(INSTALL_DATA) $$temp $$dest; \
-+          rm -f $$temp; \
-+        else \
-+          if test @GLIBC21@ = no; then \
-+            orig=charset.alias; \
-+            sed -f ref-add.sed $$orig > $$temp; \
-+            $(INSTALL_DATA) $$temp $$dest; \
-+            rm -f $$temp; \
-+          fi; \
-+        fi; \
-         $(mkinstalldirs) $(DESTDIR)$(localedir); \
-         test -f $(DESTDIR)$(localedir)/locale.alias \
-           && orig=$(DESTDIR)$(localedir)/locale.alias \
-@@ -173,16 +312,22 @@
-         : ; \
-       fi
- install-data: all
--      if test "$(PACKAGE)" = "gettext"; then \
-+      if test "$(PACKAGE)" = "gettext-tools"; then \
-         $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
-         $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
-         $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
--        dists="$(DISTFILES.common)"; \
-+        dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \
-         for file in $$dists; do \
-           $(INSTALL_DATA) $(srcdir)/$$file \
-                           $(DESTDIR)$(gettextsrcdir)/$$file; \
-         done; \
-         chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
-+        dists="$(DISTFILES.generated)"; \
-+        for file in $$dists; do \
-+          if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
-+          $(INSTALL_DATA) $$dir/$$file \
-+                          $(DESTDIR)$(gettextsrcdir)/$$file; \
-+        done; \
-         dists="$(DISTFILES.obsolete)"; \
-         for file in $$dists; do \
-           rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-@@ -191,18 +336,51 @@
-         : ; \
-       fi
-+install-strip: install
-+
-+installdirs:
-+      if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
-+         && test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+        $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
-+      else \
-+        : ; \
-+      fi
-+      if test "$(PACKAGE)" = "gettext-tools" \
-+         && test '@USE_INCLUDED_LIBINTL@' = no; then \
-+        $(mkinstalldirs) $(DESTDIR)$(libdir); \
-+      else \
-+        : ; \
-+      fi
-+      if test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+        test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
-+        $(mkinstalldirs) $(DESTDIR)$(localedir); \
-+      else \
-+        : ; \
-+      fi
-+      if test "$(PACKAGE)" = "gettext-tools"; then \
-+        $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
-+      else \
-+        : ; \
-+      fi
-+
- # Define this as empty until I found a useful application.
- installcheck:
- uninstall:
--      if test "$(PACKAGE)" = "gettext" \
--         && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
-+      if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
-+         && test '@USE_INCLUDED_LIBINTL@' = yes; then \
-         rm -f $(DESTDIR)$(includedir)/libintl.h; \
-         $(LIBTOOL) --mode=uninstall \
-           rm -f $(DESTDIR)$(libdir)/libintl.$la; \
-       else \
-         : ; \
-       fi
-+      if test "$(PACKAGE)" = "gettext-tools" \
-+         && test '@USE_INCLUDED_LIBINTL@' = no; then \
-+        rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
-+      else \
-+        : ; \
-+      fi
-       if test '@USE_INCLUDED_LIBINTL@' = yes; then \
-         if test -f $(DESTDIR)$(libdir)/charset.alias; then \
-           temp=$(DESTDIR)$(libdir)/t-charset.alias; \
-@@ -229,25 +407,36 @@
-       else \
-         : ; \
-       fi
--      if test "$(PACKAGE)" = "gettext"; then \
--        for file in VERSION ChangeLog $(DISTFILES.common); do \
-+      if test "$(PACKAGE)" = "gettext-tools"; then \
-+        for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
-           rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-         done; \
-       else \
-         : ; \
-       fi
--info dvi:
-+info dvi ps pdf html:
- $(OBJECTS): ../config.h libgnuintl.h
--bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
--dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
-+bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
-+dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h
-+explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h
-+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
- TAGS: $(HEADERS) $(SOURCES)
-       here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
-+ctags: CTAGS
-+
-+CTAGS: $(HEADERS) $(SOURCES)
-+      here=`pwd`; cd $(srcdir) && ctags -o $$here/CTAGS $(HEADERS) $(SOURCES)
-+
- id: ID
- ID: $(HEADERS) $(SOURCES)
-@@ -255,15 +444,15 @@
- mostlyclean:
--      rm -f *.a *.la *.o *.lo core core.*
--      rm -f libintl.h charset.alias ref-add.sed ref-del.sed
-+      rm -f *.a *.la *.o *.obj *.lo core core.*
-+      rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed
-       rm -f -r .libs _libs
- clean: mostlyclean
- distclean: clean
-       rm -f Makefile ID TAGS
--      if test "$(PACKAGE)" = gettext; then \
-+      if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \
-         rm -f ChangeLog.inst $(DISTFILES.normal); \
-       else \
-         : ; \
-@@ -278,20 +467,26 @@
- # other files which should not be distributed in other packages.
- distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
- dist distdir: Makefile
--      if test "$(PACKAGE)" = gettext; then \
--        additional="$(DISTFILES.gettext)"; \
-+      if test "$(PACKAGE)" = "gettext-tools"; then \
-+        : ; \
-       else \
--        additional="$(DISTFILES.normal)"; \
--      fi; \
--      $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
--      for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
--        ln $(srcdir)/$$file $(distdir) 2> /dev/null \
--          || cp -p $(srcdir)/$$file $(distdir); \
--      done
-+        if test "$(PACKAGE)" = "gettext-runtime"; then \
-+          additional="$(DISTFILES.gettext)"; \
-+        else \
-+          additional="$(DISTFILES.normal)"; \
-+        fi; \
-+        $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
-+        for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
-+          if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
-+          cp -p $$dir/$$file $(distdir); \
-+        done; \
-+      fi
--Makefile: Makefile.in ../config.status
--      cd .. \
--        && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-+      cd $(top_builddir) && $(SHELL) ./config.status
-+# This would be more efficient, but doesn't work any more with autoconf-2.57,
-+# when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used.
-+#     cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
- # Tell versions [3.59,3.63) of GNU make not to export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/VERSION psmisc-20.2.works.clean/intl/VERSION
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/VERSION   2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/VERSION       2004-10-13 15:18:41.000000000 -0500
-@@ -1 +1 @@
--GNU gettext library from gettext-0.10.36
-+GNU gettext library from gettext-0.14.1
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/bindtextdom.c psmisc-20.2.works.clean/intl/bindtextdom.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/bindtextdom.c     2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/bindtextdom.c 2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Implementation of the bindtextdomain(3) function
--   Copyright (C) 1995-1998, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -44,8 +45,8 @@
-    names than the internal variables in GNU libc, otherwise programs
-    using libintl.a cannot be linked statically.  */
- #if !defined _LIBC
--# define _nl_default_dirname _nl_default_dirname__
--# define _nl_domain_bindings _nl_domain_bindings__
-+# define _nl_default_dirname libintl_nl_default_dirname
-+# define _nl_domain_bindings libintl_nl_domain_bindings
- #endif
- /* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>.  */
-@@ -57,12 +58,17 @@
- /* Contains the default location of the message catalogs.  */
- extern const char _nl_default_dirname[];
-+#ifdef _LIBC
-+extern const char _nl_default_dirname_internal[] attribute_hidden;
-+#else
-+# define INTUSE(name) name
-+#endif
- /* List with bindings of specific domains.  */
- extern struct binding *_nl_domain_bindings;
- /* Lock variable to protect the global data in the gettext implementation.  */
--__libc_rwlock_define (extern, _nl_state_lock)
-+__libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
- /* Names for the libintl functions are a problem.  They must not clash
-@@ -76,15 +82,10 @@
- #  define strdup(str) __strdup (str)
- # endif
- #else
--# define BINDTEXTDOMAIN bindtextdomain__
--# define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__
-+# define BINDTEXTDOMAIN libintl_bindtextdomain
-+# 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
-@@ -92,10 +93,8 @@
-    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;
-@@ -145,8 +144,8 @@
-             char *result = binding->dirname;
-             if (strcmp (dirname, result) != 0)
-               {
--                if (strcmp (dirname, _nl_default_dirname) == 0)
--                  result = (char *) _nl_default_dirname;
-+                if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0)
-+                  result = (char *) INTUSE(_nl_default_dirname);
-                 else
-                   {
- #if defined _LIBC || defined HAVE_STRDUP
-@@ -161,7 +160,7 @@
-                 if (__builtin_expect (result != NULL, 1))
-                   {
--                    if (binding->dirname != _nl_default_dirname)
-+                    if (binding->dirname != INTUSE(_nl_default_dirname))
-                       free (binding->dirname);
-                     binding->dirname = result;
-@@ -202,6 +201,7 @@
-                       free (binding->codeset);
-                     binding->codeset = result;
-+                    binding->codeset_cntr++;
-                     modified = 1;
-                   }
-               }
-@@ -214,7 +214,7 @@
-     {
-       /* Simply return the default values.  */
-       if (dirnamep)
--      *dirnamep = _nl_default_dirname;
-+      *dirnamep = INTUSE(_nl_default_dirname);
-       if (codesetp)
-       *codesetp = NULL;
-     }
-@@ -236,11 +236,11 @@
-         if (dirname == NULL)
-           /* The default value.  */
--          dirname = _nl_default_dirname;
-+          dirname = INTUSE(_nl_default_dirname);
-         else
-           {
--            if (strcmp (dirname, _nl_default_dirname) == 0)
--              dirname = _nl_default_dirname;
-+            if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0)
-+              dirname = INTUSE(_nl_default_dirname);
-             else
-               {
-                 char *result;
-@@ -263,7 +263,9 @@
-       }
-       else
-       /* The default value.  */
--      new_binding->dirname = (char *) _nl_default_dirname;
-+      new_binding->dirname = (char *) INTUSE(_nl_default_dirname);
-+
-+      new_binding->codeset_cntr = 0;
-       if (codesetp)
-       {
-@@ -285,6 +287,7 @@
-             memcpy (result, codeset, len);
- #endif
-             codeset = result;
-+            new_binding->codeset_cntr++;
-           }
-         *codesetp = codeset;
-         new_binding->codeset = (char *) codeset;
-@@ -316,7 +319,7 @@
-       if (0)
-       {
-       failed_codeset:
--        if (new_binding->dirname != _nl_default_dirname)
-+        if (new_binding->dirname != INTUSE(_nl_default_dirname))
-           free (new_binding->dirname);
-       failed_dirname:
-         free (new_binding);
-@@ -338,9 +341,7 @@
- /* 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;
-@@ -349,9 +350,7 @@
- /* 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;
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/config.charset psmisc-20.2.works.clean/intl/config.charset
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dcgettext.c psmisc-20.2.works.clean/intl/dcgettext.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dcgettext.c       2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/dcgettext.c   2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Implementation of the dcgettext(3) function.
--   Copyright (C) 1995-1999, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -36,22 +37,20 @@
- # define DCGETTEXT __dcgettext
- # define DCIGETTEXT __dcigettext
- #else
--# define DCGETTEXT dcgettext__
--# define DCIGETTEXT dcigettext__
-+# define DCGETTEXT libintl_dcgettext
-+# define DCIGETTEXT libintl_dcigettext
- #endif
- /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
-    locale.  */
- char *
--DCGETTEXT (domainname, msgid, category)
--     const char *domainname;
--     const char *msgid;
--     int category;
-+DCGETTEXT (const char *domainname, const char *msgid, int category)
- {
-   return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
- }
- #ifdef _LIBC
- /* Alias for function name in GNU C Library.  */
-+INTDEF(__dcgettext)
- weak_alias (__dcgettext, dcgettext);
- #endif
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dcigettext.c psmisc-20.2.works.clean/intl/dcigettext.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dcigettext.c      2001-04-13 23:00:43.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/dcigettext.c  2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Implementation of the internal dcigettext function.
--   Copyright (C) 1995-1999, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- /* Tell glibc's <string.h> to provide a prototype for mempcpy().
-    This must come before <config.h> because <config.h> may include
-@@ -32,14 +33,19 @@
- # define alloca __builtin_alloca
- # define HAVE_ALLOCA 1
- #else
--# if defined HAVE_ALLOCA_H || defined _LIBC
--#  include <alloca.h>
-+# ifdef _MSC_VER
-+#  include <malloc.h>
-+#  define alloca _alloca
- # else
--#  ifdef _AIX
-- #pragma alloca
-+#  if defined HAVE_ALLOCA_H || defined _LIBC
-+#   include <alloca.h>
- #  else
--#   ifndef alloca
-+#   ifdef _AIX
-+ #pragma alloca
-+#   else
-+#    ifndef alloca
- char *alloca ();
-+#    endif
- #   endif
- #  endif
- # endif
-@@ -55,13 +61,7 @@
- #include <stddef.h>
- #include <stdlib.h>
--
- #include <string.h>
--#if !HAVE_STRCHR && !defined _LIBC
--# ifndef strchr
--#  define strchr index
--# endif
--#endif
- #if defined HAVE_UNISTD_H || defined _LIBC
- # include <unistd.h>
-@@ -69,11 +69,26 @@
- #include <locale.h>
-+#ifdef _LIBC
-+  /* Guess whether integer division by zero raises signal SIGFPE.
-+     Set to 1 only if you know for sure.  In case of doubt, set to 0.  */
-+# if defined __alpha__ || defined __arm__ || defined __i386__ \
-+     || defined __m68k__ || defined __s390__
-+#  define INTDIV0_RAISES_SIGFPE 1
-+# else
-+#  define INTDIV0_RAISES_SIGFPE 0
-+# endif
-+#endif
-+#if !INTDIV0_RAISES_SIGFPE
-+# include <signal.h>
-+#endif
-+
- #if defined HAVE_SYS_PARAM_H || defined _LIBC
- # include <sys/param.h>
- #endif
- #include "gettextP.h"
-+#include "plural-exp.h"
- #ifdef _LIBC
- # include <libintl.h>
- #else
-@@ -106,10 +121,10 @@
-    names than the internal variables in GNU libc, otherwise programs
-    using libintl.a cannot be linked statically.  */
- #if !defined _LIBC
--# define _nl_default_default_domain _nl_default_default_domain__
--# define _nl_current_default_domain _nl_current_default_domain__
--# define _nl_default_dirname _nl_default_dirname__
--# define _nl_domain_bindings _nl_domain_bindings__
-+# define _nl_default_default_domain libintl_nl_default_default_domain
-+# define _nl_current_default_domain libintl_nl_current_default_domain
-+# define _nl_default_dirname libintl_nl_default_dirname
-+# define _nl_domain_bindings libintl_nl_domain_bindings
- #endif
- /* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>.  */
-@@ -133,13 +148,17 @@
- 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
-@@ -197,16 +216,6 @@
- # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
- #endif
--/* XPG3 defines the result of `setlocale (category, NULL)' as:
--   ``Directs `setlocale()' to query `category' and return the current
--     setting of `local'.''
--   However it does not specify the exact format.  Neither do SUSV2 and
--   ISO C 99.  So we can use this feature only on selected systems (e.g.
--   those using GNU C Library).  */
--#ifdef _LIBC
--# define HAVE_LOCALE_NULL
--#endif
--
- /* This is the type used for the search tree where known translations
-    are stored.  */
- struct known_translation_t
-@@ -243,11 +252,8 @@
- # 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;
-@@ -271,39 +277,54 @@
- }
- #endif
-+#ifndef INTVARDEF
-+# define INTVARDEF(name)
-+#endif
-+#ifndef INTUSE
-+# define INTUSE(name) name
-+#endif
-+
- /* Name of the default domain used for gettext(3) prior any call to
-    textdomain(3).  The default value for this is "messages".  */
--const char _nl_default_default_domain[] = "messages";
-+const char _nl_default_default_domain[] attribute_hidden = "messages";
- /* Value used as the default domain for gettext(3).  */
--const char *_nl_current_default_domain = _nl_default_default_domain;
-+const char *_nl_current_default_domain attribute_hidden
-+     = _nl_default_default_domain;
- /* Contains the default location of the message catalogs.  */
-+#if defined __EMX__
-+extern const char _nl_default_dirname[];
-+#else
- const char _nl_default_dirname[] = LOCALEDIR;
-+INTVARDEF (_nl_default_dirname)
-+#endif
- /* List with bindings of specific domains created by bindtextdomain()
-    calls.  */
- 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))
--     internal_function;
--static unsigned long int plural_eval PARAMS ((struct expression *pexp,
--                                            unsigned long int n))
-+static char *plural_lookup (struct loaded_l10nfile *domain,
-+                          unsigned long int n,
-+                          const char *translation, size_t translation_len)
-      internal_function;
--static const char *category_to_name PARAMS ((int category)) internal_function;
--static const char *guess_category_value PARAMS ((int category,
--                                               const char *categoryname))
-+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 (int category) internal_function;
-+#endif
- /* For those loosing systems which don't have `alloca' we have to add
-    some additional code emulating it.  */
- #ifdef HAVE_ALLOCA
- /* Nothing has to be done.  */
-+# define freea(p) /* nothing */
- # define ADD_BLOCK(list, address) /* nothing */
- # define FREE_BLOCKS(list) /* nothing */
- #else
-@@ -328,11 +349,13 @@
-     while (list != NULL) {                                                  \
-       struct block_list *old = list;                                        \
-       list = list->next;                                                    \
-+      free (old->address);                                                  \
-       free (old);                                                           \
-     }                                                                       \
-   } while (0)
- # undef alloca
- # define alloca(size) (malloc (size))
-+# define freea(p) free (p)
- #endif        /* have alloca */
-@@ -356,12 +379,12 @@
- #ifdef _LIBC
- # define DCIGETTEXT __dcigettext
- #else
--# define DCIGETTEXT dcigettext__
-+# define DCIGETTEXT libintl_dcigettext
- #endif
- /* Lock variable to protect the global data in the gettext implementation.  */
- #ifdef _LIBC
--__libc_rwlock_define_initialized (, _nl_state_lock)
-+__libc_rwlock_define_initialized (, _nl_state_lock attribute_hidden)
- #endif
- /* Checking whether the binaries runs SUID must be done and glibc provides
-@@ -370,6 +393,18 @@
- # define ENABLE_SECURE __libc_enable_secure
- # define DETERMINE_SECURE
- #else
-+# ifndef HAVE_GETUID
-+#  define getuid() 0
-+# endif
-+# ifndef HAVE_GETGID
-+#  define getgid() 0
-+# endif
-+# ifndef HAVE_GETEUID
-+#  define geteuid() getuid()
-+# endif
-+# ifndef HAVE_GETEGID
-+#  define getegid() getgid()
-+# endif
- static int enable_secure;
- # define ENABLE_SECURE (enable_secure == 1)
- # define DETERMINE_SECURE \
-@@ -382,17 +417,15 @@
-     }
- #endif
-+/* Get the function to evaluate the plural expression.  */
-+#include "eval-plural.h"
-+
- /* Look up MSGID in the DOMAINNAME message catalog for the current
-    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;
-@@ -417,6 +450,15 @@
-   if (msgid1 == NULL)
-     return NULL;
-+#ifdef _LIBC
-+  if (category < 0 || category >= __LC_LAST || category == LC_ALL)
-+    /* Bogus.  */
-+    return (plural == 0
-+          ? (char *) msgid1
-+          /* Use the Germanic plural rule.  */
-+          : n == 1 ? (char *) msgid1 : (char *) msgid2);
-+#endif
-+
-   __libc_rwlock_rdlock (_nl_state_lock);
-   /* If DOMAINNAME is NULL, we are interested in the default domain.  If
-@@ -425,6 +467,12 @@
-   if (domainname == NULL)
-     domainname = _nl_current_default_domain;
-+  /* OS/2 specific: backward compatibility with older libintl versions  */
-+#ifdef LC_MESSAGES_COMPAT
-+  if (category == LC_MESSAGES_COMPAT)
-+    category = LC_MESSAGES;
-+#endif
-+
- #if defined HAVE_TSEARCH || defined _LIBC
-   msgid_len = strlen (msgid1) + 1;
-@@ -437,6 +485,7 @@
-   search->category = category;
-   foundp = (struct known_translation_t **) tfind (search, &root, transcmp);
-+  freea (search);
-   if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr)
-     {
-       /* Now deal with plural.  */
-@@ -473,7 +522,7 @@
-     }
-   if (binding == NULL)
--    dirname = (char *) _nl_default_dirname;
-+    dirname = (char *) INTUSE(_nl_default_dirname);
-   else if (IS_ABSOLUTE_PATH (binding->dirname))
-     dirname = binding->dirname;
-   else
-@@ -501,16 +550,9 @@
-       }
-       if (ret == NULL)
--      {
--        /* We cannot get the current working directory.  Don't signal an
--           error but simply return the default string.  */
--        FREE_BLOCKS (block_list);
--        __set_errno (saved_errno);
--        return (plural == 0
--                ? (char *) msgid1
--                /* Use the Germanic plural rule.  */
--                : n == 1 ? (char *) msgid1 : (char *) msgid2);
--      }
-+      /* We cannot get the current working directory.  Don't signal an
-+         error but simply return the default string.  */
-+      goto return_untranslated;
-       stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
-     }
-@@ -567,16 +609,7 @@
-        domain.  Return the MSGID.  */
-       if (strcmp (single_locale, "C") == 0
-         || strcmp (single_locale, "POSIX") == 0)
--      {
--        FREE_BLOCKS (block_list);
--        __libc_rwlock_unlock (_nl_state_lock);
--        __set_errno (saved_errno);
--        return (plural == 0
--                ? (char *) msgid1
--                /* Use the Germanic plural rule.  */
--                : n == 1 ? (char *) msgid1 : (char *) msgid2);
--      }
--
-+      break;
-       /* Find structure describing the message catalog matching the
-        DOMAINNAME and CATEGORY.  */
-@@ -584,7 +617,7 @@
-       if (domain != NULL)
-       {
--        retval = _nl_find_msg (domain, msgid1, &retlen);
-+        retval = _nl_find_msg (domain, binding, msgid1, &retlen);
-         if (retval == NULL)
-           {
-@@ -592,8 +625,8 @@
-             for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
-               {
--                retval = _nl_find_msg (domain->successor[cnt], msgid1,
--                                       &retlen);
-+                retval = _nl_find_msg (domain->successor[cnt], binding,
-+                                       msgid1, &retlen);
-                 if (retval != NULL)
-                   {
-@@ -608,7 +641,6 @@
-             /* Found the translation of MSGID1 in domain DOMAIN:
-                starting at RETVAL, RETLEN bytes.  */
-             FREE_BLOCKS (block_list);
--            __set_errno (saved_errno);
- #if defined HAVE_TSEARCH || defined _LIBC
-             if (foundp == NULL)
-               {
-@@ -647,6 +679,8 @@
-                 (*foundp)->translation_length = retlen;
-               }
- #endif
-+            __set_errno (saved_errno);
-+
-             /* Now deal with plural.  */
-             if (plural)
-               retval = plural_lookup (domain, n, retval, retlen);
-@@ -656,32 +690,56 @@
-           }
-       }
-     }
--  /* NOTREACHED */
-+
-+ return_untranslated:
-+  /* Return the untranslated MSGID.  */
-+  FREE_BLOCKS (block_list);
-+  __libc_rwlock_unlock (_nl_state_lock);
-+#ifndef _LIBC
-+  if (!ENABLE_SECURE)
-+    {
-+      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')
-+      _nl_log_untranslated (logfilename, domainname, msgid1, msgid2, plural);
-+    }
-+#endif
-+  __set_errno (saved_errno);
-+  return (plural == 0
-+        ? (char *) msgid1
-+        /* Use the Germanic plural rule.  */
-+        : n == 1 ? (char *) msgid1 : (char *) msgid2);
- }
- char *
- internal_function
--_nl_find_msg (domain_file, msgid, lengthp)
--     struct loaded_l10nfile *domain_file;
--     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;
-   size_t act;
-   char *result;
-   size_t resultlen;
-   if (domain_file->decided == 0)
--    _nl_load_domain (domain_file);
-+    _nl_load_domain (domain_file, domainbinding);
-   if (domain_file->data == NULL)
-     return NULL;
-   domain = (struct loaded_domain *) domain_file->data;
-+  nstrings = domain->nstrings;
-+
-   /* Locate the MSGID and its translation.  */
--  if (domain->hash_size > 2 && domain->hash_tab != NULL)
-+  if (domain->hash_tab != NULL)
-     {
-       /* Use the hashing table.  */
-       nls_uint32 len = strlen (msgid);
-@@ -691,22 +749,30 @@
-       while (1)
-       {
--        nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
-+        nls_uint32 nstr =
-+          W (domain->must_swap_hash_tab, domain->hash_tab[idx]);
-         if (nstr == 0)
-           /* Hash table entry is empty.  */
-           return NULL;
--        /* Compare msgid with the original string at index nstr-1.
-+        nstr--;
-+
-+        /* Compare msgid with the original string at index nstr.
-            We compare the lengths with >=, not ==, because plural entries
-            are represented by strings with an embedded NUL.  */
--        if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) >= len
--            && (strcmp (msgid,
--                        domain->data + W (domain->must_swap,
--                                          domain->orig_tab[nstr - 1].offset))
--                == 0))
-+        if (nstr < nstrings
-+            ? W (domain->must_swap, domain->orig_tab[nstr].length) >= len
-+              && (strcmp (msgid,
-+                          domain->data + W (domain->must_swap,
-+                                            domain->orig_tab[nstr].offset))
-+                  == 0)
-+            : domain->orig_sysdep_tab[nstr - nstrings].length > len
-+              && (strcmp (msgid,
-+                          domain->orig_sysdep_tab[nstr - nstrings].pointer)
-+                  == 0))
-           {
--            act = nstr - 1;
-+            act = nstr;
-             goto found;
-           }
-@@ -724,7 +790,7 @@
-       size_t top, bottom;
-       bottom = 0;
--      top = domain->nstrings;
-+      top = nstrings;
-       while (bottom < top)
-       {
-         int cmp_val;
-@@ -747,11 +813,29 @@
-  found:
-   /* The translation was found at index ACT.  If we have to convert the
-      string to use a different character set, this is the time.  */
--  result = ((char *) domain->data
--          + W (domain->must_swap, domain->trans_tab[act].offset));
--  resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1;
-+  if (act < nstrings)
-+    {
-+      result = (char *)
-+      (domain->data + W (domain->must_swap, domain->trans_tab[act].offset));
-+      resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1;
-+    }
-+  else
-+    {
-+      result = (char *) domain->trans_sysdep_tab[act - nstrings].pointer;
-+      resultlen = domain->trans_sysdep_tab[act - nstrings].length;
-+    }
- #if defined _LIBC || HAVE_ICONV
-+  if (domain->codeset_cntr
-+      != (domainbinding != NULL ? domainbinding->codeset_cntr : 0))
-+    {
-+      /* The domain's codeset has changed through bind_textdomain_codeset()
-+       since the message catalog was initialized or last accessed.  We
-+       have to reinitialize the converter.  */
-+      _nl_free_domain_conv (domain);
-+      _nl_init_domain_conv (domain_file, domain, domainbinding);
-+    }
-+
-   if (
- # ifdef _LIBC
-       domain->conv != (__gconv_t) -1
-@@ -772,8 +856,9 @@
-        NULs.  */
-       if (domain->conv_tab == NULL
--        && ((domain->conv_tab = (char **) calloc (domain->nstrings,
--                                                  sizeof (char *)))
-+        && ((domain->conv_tab =
-+               (char **) calloc (nstrings + domain->n_sysdep_strings,
-+                                 sizeof (char *)))
-             == NULL))
-       /* Mark that we didn't succeed allocating a table.  */
-       domain->conv_tab = (char **) -1;
-@@ -942,11 +1027,8 @@
- /* 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;
-@@ -979,93 +1061,11 @@
-   return (char *) p;
- }
--
--/* Function to evaluate the plural expression and return an index value.  */
--static unsigned long int
--internal_function
--plural_eval (pexp, n)
--     struct expression *pexp;
--     unsigned long int n;
--{
--  switch (pexp->nargs)
--    {
--    case 0:
--      switch (pexp->operation)
--      {
--      case var:
--        return n;
--      case num:
--        return pexp->val.num;
--      default:
--        break;
--      }
--      /* NOTREACHED */
--      break;
--    case 1:
--      {
--      /* pexp->operation must be lnot.  */
--      unsigned long int arg = plural_eval (pexp->val.args[0], n);
--      return ! arg;
--      }
--    case 2:
--      {
--      unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
--      if (pexp->operation == lor)
--        return leftarg || plural_eval (pexp->val.args[1], n);
--      else if (pexp->operation == land)
--        return leftarg && plural_eval (pexp->val.args[1], n);
--      else
--        {
--          unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
--
--          switch (pexp->operation)
--            {
--            case mult:
--              return leftarg * rightarg;
--            case divide:
--              return leftarg / rightarg;
--            case module:
--              return leftarg % rightarg;
--            case plus:
--              return leftarg + rightarg;
--            case minus:
--              return leftarg - rightarg;
--            case less_than:
--              return leftarg < rightarg;
--            case greater_than:
--              return leftarg > rightarg;
--            case less_or_equal:
--              return leftarg <= rightarg;
--            case greater_or_equal:
--              return leftarg >= rightarg;
--            case equal:
--              return leftarg == rightarg;
--            case not_equal:
--              return leftarg != rightarg;
--            default:
--              break;
--            }
--        }
--      /* NOTREACHED */
--      break;
--      }
--    case 3:
--      {
--      /* pexp->operation must be qmop.  */
--      unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
--      return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
--      }
--    }
--  /* NOTREACHED */
--  return 0;
--}
--
--
-+#ifndef _LIBC
- /* 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;
-@@ -1120,13 +1120,12 @@
-   return retval;
- }
-+#endif
- /* 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;
-@@ -1141,27 +1140,21 @@
-   /* We have to proceed with the POSIX methods of looking to `LC_ALL',
-      `LC_xxx', and `LANG'.  On some systems this can be done by the
-      `setlocale' function itself.  */
--#if defined _LIBC || (defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL)
--  retval = setlocale (category, NULL);
-+#ifdef _LIBC
-+  retval = __current_locale_name (category);
- #else
--  /* Setting of LC_ALL overwrites all other.  */
--  retval = getenv ("LC_ALL");
--  if (retval == NULL || retval[0] == '\0')
--    {
--      /* Next comes the name of the desired category.  */
--      retval = getenv (categoryname);
--      if (retval == NULL || retval[0] == '\0')
--      {
--        /* Last possibility is the LANG environment variable.  */
--        retval = getenv ("LANG");
--        if (retval == NULL || retval[0] == '\0')
--          /* We use C as the default domain.  POSIX says this is
--             implementation defined.  */
--          return "C";
--      }
--    }
-+  retval = _nl_locale_name (category, categoryname);
- #endif
-+  /* Ignore LANGUAGE if the locale is set to "C" because
-+     1. "C" locale usually uses the ASCII encoding, and most international
-+      messages use non-ASCII characters. These characters get displayed
-+      as question marks (if using glibc's iconv()) or as invalid 8-bit
-+      characters (because other iconv()s refuse to convert most non-ASCII
-+      characters to ASCII). In any case, the output is ugly.
-+     2. The precise output of some programs in the "C" locale is specified
-+      by POSIX and should not depend on environment variables like
-+      "LANGUAGE".  We allow such programs to use gettext().  */
-   return language != NULL && strcmp (retval, "C") != 0 ? language : retval;
- }
-@@ -1173,9 +1166,7 @@
-    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. */ ;
-@@ -1185,10 +1176,7 @@
- #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);
- }
-@@ -1198,8 +1186,7 @@
- #ifdef _LIBC
- /* If we want to free all resources we have to do some work at
-    program's end.  */
--static void __attribute__ ((unused))
--free_mem (void)
-+libc_freeres_fn (free_mem)
- {
-   void *old;
-@@ -1207,7 +1194,7 @@
-     {
-       struct binding *oldp = _nl_domain_bindings;
-       _nl_domain_bindings = _nl_domain_bindings->next;
--      if (oldp->dirname != _nl_default_dirname)
-+      if (oldp->dirname != INTUSE(_nl_default_dirname))
-       /* Yes, this is a pointer comparison.  */
-       free (oldp->dirname);
-       free (oldp->codeset);
-@@ -1229,6 +1216,4 @@
-       free (old);
-     }
- }
--
--text_set_element (__libc_subfreeres, free_mem);
- #endif
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dcngettext.c psmisc-20.2.works.clean/intl/dcngettext.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dcngettext.c      2001-04-13 23:00:43.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/dcngettext.c  2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Implementation of the dcngettext(3) function.
--   Copyright (C) 1995-1999, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -36,19 +37,16 @@
- # define DCNGETTEXT __dcngettext
- # define DCIGETTEXT __dcigettext
- #else
--# define DCNGETTEXT dcngettext__
--# define DCIGETTEXT dcigettext__
-+# define DCNGETTEXT libintl_dcngettext
-+# define DCIGETTEXT libintl_dcigettext
- #endif
- /* 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);
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dgettext.c psmisc-20.2.works.clean/intl/dgettext.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dgettext.c        2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/dgettext.c    2004-10-13 15:18:41.000000000 -0500
-@@ -1,27 +1,29 @@
- /* Implementation of the dgettext(3) function.
--   Copyright (C) 1995-1997, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-+#include "gettextP.h"
-+
- #include <locale.h>
--#include "gettextP.h"
- #ifdef _LIBC
- # include <libintl.h>
- #else
-@@ -36,18 +38,16 @@
-    prefix.  So we have to make a difference here.  */
- #ifdef _LIBC
- # define DGETTEXT __dgettext
--# define DCGETTEXT __dcgettext
-+# define DCGETTEXT INTUSE(__dcgettext)
- #else
--# define DGETTEXT dgettext__
--# define DCGETTEXT dcgettext__
-+# define DGETTEXT libintl_dgettext
-+# define DCGETTEXT libintl_dcgettext
- #endif
- /* Look up MSGID in the DOMAINNAME message catalog of the current
-    LC_MESSAGES locale.  */
- char *
--DGETTEXT (domainname, msgid)
--     const char *domainname;
--     const char *msgid;
-+DGETTEXT (const char *domainname, const char *msgid)
- {
-   return DCGETTEXT (domainname, msgid, LC_MESSAGES);
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dngettext.c psmisc-20.2.works.clean/intl/dngettext.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/dngettext.c       2001-04-13 23:00:43.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/dngettext.c   2004-10-13 15:18:41.000000000 -0500
-@@ -1,27 +1,29 @@
- /* Implementation of the dngettext(3) function.
--   Copyright (C) 1995-1997, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-+#include "gettextP.h"
-+
- #include <locale.h>
--#include "gettextP.h"
- #ifdef _LIBC
- # include <libintl.h>
- #else
-@@ -38,18 +40,15 @@
- # define DNGETTEXT __dngettext
- # define DCNGETTEXT __dcngettext
- #else
--# define DNGETTEXT dngettext__
--# define DCNGETTEXT dcngettext__
-+# define DNGETTEXT libintl_dngettext
-+# define DCNGETTEXT libintl_dcngettext
- #endif
- /* 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);
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/eval-plural.h psmisc-20.2.works.clean/intl/eval-plural.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/eval-plural.h     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/eval-plural.h 2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,108 @@
-+/* Plural expression evaluation.
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef STATIC
-+#define STATIC static
-+#endif
-+
-+/* Evaluate the plural expression and return an index value.  */
-+STATIC
-+unsigned long int
-+internal_function
-+plural_eval (struct expression *pexp, unsigned long int n)
-+{
-+  switch (pexp->nargs)
-+    {
-+    case 0:
-+      switch (pexp->operation)
-+      {
-+      case var:
-+        return n;
-+      case num:
-+        return pexp->val.num;
-+      default:
-+        break;
-+      }
-+      /* NOTREACHED */
-+      break;
-+    case 1:
-+      {
-+      /* pexp->operation must be lnot.  */
-+      unsigned long int arg = plural_eval (pexp->val.args[0], n);
-+      return ! arg;
-+      }
-+    case 2:
-+      {
-+      unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
-+      if (pexp->operation == lor)
-+        return leftarg || plural_eval (pexp->val.args[1], n);
-+      else if (pexp->operation == land)
-+        return leftarg && plural_eval (pexp->val.args[1], n);
-+      else
-+        {
-+          unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
-+
-+          switch (pexp->operation)
-+            {
-+            case mult:
-+              return leftarg * rightarg;
-+            case divide:
-+#if !INTDIV0_RAISES_SIGFPE
-+              if (rightarg == 0)
-+                raise (SIGFPE);
-+#endif
-+              return leftarg / rightarg;
-+            case module:
-+#if !INTDIV0_RAISES_SIGFPE
-+              if (rightarg == 0)
-+                raise (SIGFPE);
-+#endif
-+              return leftarg % rightarg;
-+            case plus:
-+              return leftarg + rightarg;
-+            case minus:
-+              return leftarg - rightarg;
-+            case less_than:
-+              return leftarg < rightarg;
-+            case greater_than:
-+              return leftarg > rightarg;
-+            case less_or_equal:
-+              return leftarg <= rightarg;
-+            case greater_or_equal:
-+              return leftarg >= rightarg;
-+            case equal:
-+              return leftarg == rightarg;
-+            case not_equal:
-+              return leftarg != rightarg;
-+            default:
-+              break;
-+            }
-+        }
-+      /* NOTREACHED */
-+      break;
-+      }
-+    case 3:
-+      {
-+      /* pexp->operation must be qmop.  */
-+      unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
-+      return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
-+      }
-+    }
-+  /* NOTREACHED */
-+  return 0;
-+}
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/explodename.c psmisc-20.2.works.clean/intl/explodename.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/explodename.c     2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/explodename.c 2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
--/* 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 under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -37,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] != ',')
-@@ -49,17 +49,11 @@
- 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;
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/finddomain.c psmisc-20.2.works.clean/intl/finddomain.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/finddomain.c      2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/finddomain.c  2004-10-13 15:18:41.000000000 -0500
-@@ -1,20 +1,21 @@
- /* 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 under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -46,11 +47,8 @@
-    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;
-@@ -89,15 +87,14 @@
-      be one data set in the list of loaded domains.  */
-   retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
-                              strlen (dirname) + 1, 0, locale, NULL, NULL,
--                             NULL, NULL, NULL, NULL, NULL, domainname,
--                             domainbinding, 0);
-+                             NULL, NULL, NULL, NULL, NULL, domainname, 0);
-   if (retval != NULL)
-     {
-       /* We know something about this locale.  */
-       int cnt;
-       if (retval->decided == 0)
--      _nl_load_domain (retval);
-+      _nl_load_domain (retval, domainbinding);
-       if (retval->data != NULL)
-       return retval;
-@@ -105,7 +102,7 @@
-       for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
-       {
-         if (retval->successor[cnt]->decided == 0)
--          _nl_load_domain (retval->successor[cnt]);
-+          _nl_load_domain (retval->successor[cnt], domainbinding);
-         if (retval->successor[cnt]->data != NULL)
-           break;
-@@ -146,21 +143,20 @@
-   retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
-                              strlen (dirname) + 1, mask, language, territory,
-                              codeset, normalized_codeset, modifier, special,
--                             sponsor, revision, domainname, domainbinding,
--                             1);
-+                             sponsor, revision, domainname, 1);
-   if (retval == NULL)
-     /* This means we are out of core.  */
-     return NULL;
-   if (retval->decided == 0)
--    _nl_load_domain (retval);
-+    _nl_load_domain (retval, domainbinding);
-   if (retval->data == NULL)
-     {
-       int cnt;
-       for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
-       {
-         if (retval->successor[cnt]->decided == 0)
--          _nl_load_domain (retval->successor[cnt]);
-+          _nl_load_domain (retval->successor[cnt], domainbinding);
-         if (retval->successor[cnt]->data != NULL)
-           break;
-       }
-@@ -179,8 +175,7 @@
- #ifdef _LIBC
--static void __attribute__ ((unused))
--free_mem (void)
-+libc_freeres_fn (free_mem)
- {
-   struct loaded_l10nfile *runp = _nl_loaded_domains;
-@@ -194,6 +189,4 @@
-       free (here);
-     }
- }
--
--text_set_element (__libc_subfreeres, free_mem);
- #endif
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/gettext.c psmisc-20.2.works.clean/intl/gettext.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/gettext.c 2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/gettext.c     2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Implementation of gettext(3) function.
--   Copyright (C) 1995, 1997, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -41,18 +42,17 @@
-    prefix.  So we have to make a difference here.  */
- #ifdef _LIBC
- # define GETTEXT __gettext
--# define DCGETTEXT __dcgettext
-+# define DCGETTEXT INTUSE(__dcgettext)
- #else
--# define GETTEXT gettext__
--# define DCGETTEXT dcgettext__
-+# define GETTEXT libintl_gettext
-+# define DCGETTEXT libintl_dcgettext
- #endif
- /* Look up MSGID in the current default message catalog for the current
-    LC_MESSAGES locale.  If not found, returns MSGID itself (the default
-    text).  */
- char *
--GETTEXT (msgid)
--     const char *msgid;
-+GETTEXT (const char *msgid)
- {
-   return DCGETTEXT (NULL, msgid, LC_MESSAGES);
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/gettext.h psmisc-20.2.works.clean/intl/gettext.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/gettext.h 2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/gettext.h     2004-10-13 15:19:00.000000000 -0500
-@@ -1,101 +1,69 @@
--/* Description of GNU message catalog format: general file layout.
--   Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
-+/* Convenience header for conditional use of GNU <libintl.h>.
-+   Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
--   This program is free software; you can redistribute it and/or modify
--   it under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
--
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
--
--#ifndef _GETTEXT_H
--#define _GETTEXT_H 1
--
--#if HAVE_LIMITS_H || _LIBC
--# include <limits.h>
--#endif
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--/* @@ end of prolog @@ */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
--/* The magic number of the GNU message catalog format.  */
--#define _MAGIC 0x950412de
--#define _MAGIC_SWAPPED 0xde120495
-+#ifndef _LIBGETTEXT_H
-+#define _LIBGETTEXT_H 1
--/* Revision number of the currently used .mo (binary) file format.  */
--#define MO_REVISION_NUMBER 0
-+/* NLS can be disabled through the configure --disable-nls option.  */
-+#if ENABLE_NLS
--/* The following contortions are an attempt to use the C preprocessor
--   to determine an unsigned integral type that is 32 bits wide.  An
--   alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
--   as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
--   when cross-compiling.  */
-+/* Get declarations of GNU message catalog functions.  */
-+# include <libintl.h>
--#if __STDC__
--# define UINT_MAX_32_BITS 4294967295U
- #else
--# define UINT_MAX_32_BITS 0xFFFFFFFF
--#endif
--
--/* If UINT_MAX isn't defined, assume it's a 32-bit type.
--   This should be valid for all systems GNU cares about because
--   that doesn't include 16-bit systems, and only modern systems
--   (that certainly have <limits.h>) have 64+-bit integral types.  */
--#ifndef UINT_MAX
--# define UINT_MAX UINT_MAX_32_BITS
--#endif
--
--#if UINT_MAX == UINT_MAX_32_BITS
--typedef unsigned nls_uint32;
--#else
--# if USHRT_MAX == UINT_MAX_32_BITS
--typedef unsigned short nls_uint32;
--# else
--#  if ULONG_MAX == UINT_MAX_32_BITS
--typedef unsigned long nls_uint32;
--#  else
--  /* The following line is intended to throw an error.  Using #error is
--     not portable enough.  */
--  "Cannot determine unsigned 32-bit data type."
--#  endif
--# endif
-+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
-+   chokes if dcgettext is defined as a macro.  So include it now, to make
-+   later inclusions of <locale.h> a NOP.  We don't include <libintl.h>
-+   as well because people using "gettext.h" will not include <libintl.h>,
-+   and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
-+   is OK.  */
-+#if defined(__sun)
-+# include <locale.h>
- #endif
-+/* Disabled NLS.
-+   The casts to 'const char *' serve the purpose of producing warnings
-+   for invalid uses of the value returned from these functions.
-+   On pre-ANSI systems without 'const', the config.h file is supposed to
-+   contain "#define const".  */
-+# define gettext(Msgid) ((const char *) (Msgid))
-+# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
-+# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
-+# define ngettext(Msgid1, Msgid2, N) \
-+    ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
-+# define dngettext(Domainname, Msgid1, Msgid2, N) \
-+    ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
-+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
-+    ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
-+# define textdomain(Domainname) ((const char *) (Domainname))
-+# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
-+# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
--/* Header for binary .mo file format.  */
--struct mo_file_header
--{
--  /* The magic number.  */
--  nls_uint32 magic;
--  /* The revision number of the file format.  */
--  nls_uint32 revision;
--  /* The number of strings pairs.  */
--  nls_uint32 nstrings;
--  /* Offset of table with start offsets of original strings.  */
--  nls_uint32 orig_tab_offset;
--  /* Offset of table with start offsets of translation strings.  */
--  nls_uint32 trans_tab_offset;
--  /* Size of hashing table.  */
--  nls_uint32 hash_tab_size;
--  /* Offset of first hashing entry.  */
--  nls_uint32 hash_tab_offset;
--};
--
--struct string_desc
--{
--  /* Length of addressed string.  */
--  nls_uint32 length;
--  /* Offset of string in file.  */
--  nls_uint32 offset;
--};
-+#endif
--/* @@ begin of epilog @@ */
-+/* A pseudo function call that serves as a marker for the automated
-+   extraction of messages, but does not call gettext().  The run-time
-+   translation is done at a different place in the code.
-+   The argument, String, should be a literal string.  Concatenated strings
-+   and other string expressions won't work.
-+   The macro's expansion is not parenthesized, so that it is suitable as
-+   initializer for static 'char[]' or 'const char[]' variables.  */
-+#define gettext_noop(String) String
--#endif        /* gettext.h  */
-+#endif /* _LIBGETTEXT_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/gettextP.h psmisc-20.2.works.clean/intl/gettextP.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/gettextP.h        2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/gettextP.h    2004-10-13 15:18:41.000000000 -0500
-@@ -1,20 +1,21 @@
- /* Header describing internals of libintl library.
--   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
-+   Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
-    Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
--   This program is free software; you can redistribute it and/or modify
--   it under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifndef _GETTEXTP_H
- #define _GETTEXTP_H
-@@ -31,22 +32,18 @@
- #include "loadinfo.h"
--#include "gettext.h"          /* Get nls_uint32.  */
-+#include "gmo.h"              /* Get nls_uint32.  */
- /* @@ end of prolog @@ */
--#ifndef PARAMS
--# if __STDC__
--#  define PARAMS(args) args
--# else
--#  define PARAMS(args) ()
--# endif
--#endif
--
- #ifndef internal_function
- # define internal_function
- #endif
-+#ifndef attribute_hidden
-+# define attribute_hidden
-+#endif
-+
- /* Tell the compiler when a conditional or integer expression is
-    almost always true or almost always false.  */
- #ifndef HAVE_BUILTIN_EXPECT
-@@ -71,63 +68,51 @@
- #endif
--/* This is the representation of the expressions to determine the
--   plural form.  */
--struct expression
--{
--  int nargs;                  /* Number of arguments.  */
--  enum operator
--  {
--    /* Without arguments:  */
--    var,                      /* The variable "n".  */
--    num,                      /* Decimal number.  */
--    /* Unary operators:  */
--    lnot,                     /* Logical NOT.  */
--    /* Binary operators:  */
--    mult,                     /* Multiplication.  */
--    divide,                   /* Division.  */
--    module,                   /* Module operation.  */
--    plus,                     /* Addition.  */
--    minus,                    /* Subtraction.  */
--    less_than,                        /* Comparison.  */
--    greater_than,             /* Comparison.  */
--    less_or_equal,            /* Comparison.  */
--    greater_or_equal,         /* Comparison.  */
--    equal,                    /* Comparision for equality.  */
--    not_equal,                        /* Comparision for inequality.  */
--    land,                     /* Logical AND.  */
--    lor,                      /* Logical OR.  */
--    /* Ternary operators:  */
--    qmop                      /* Question mark operator.  */
--  } operation;
--  union
--  {
--    unsigned long int num;    /* Number value for `num'.  */
--    struct expression *args[3];       /* Up to three arguments.  */
--  } val;
--};
--
--/* This is the data structure to pass information to the parser and get
--   the result in a thread-safe way.  */
--struct parse_args
-+/* In-memory representation of system dependent string.  */
-+struct sysdep_string_desc
- {
--  const char *cp;
--  struct expression *res;
-+  /* Length of addressed string, including the trailing NUL.  */
-+  size_t length;
-+  /* Pointer to addressed string.  */
-+  const char *pointer;
- };
--
- /* The representation of an opened message catalog.  */
- struct loaded_domain
- {
-+  /* Pointer to memory containing the .mo file.  */
-   const char *data;
-+  /* 1 if the memory is mmap()ed, 0 if the memory is malloc()ed.  */
-   int use_mmap;
-+  /* Size of mmap()ed memory.  */
-   size_t mmap_size;
-+  /* 1 if the .mo file uses a different endianness than this machine.  */
-   int must_swap;
-+  /* Pointer to additional malloc()ed memory.  */
-+  void *malloced;
-+
-+  /* Number of static strings pairs.  */
-   nls_uint32 nstrings;
--  struct string_desc *orig_tab;
--  struct string_desc *trans_tab;
-+  /* Pointer to descriptors of original strings in the file.  */
-+  const struct string_desc *orig_tab;
-+  /* Pointer to descriptors of translated strings in the file.  */
-+  const struct string_desc *trans_tab;
-+
-+  /* Number of system dependent strings pairs.  */
-+  nls_uint32 n_sysdep_strings;
-+  /* Pointer to descriptors of original sysdep strings.  */
-+  const struct sysdep_string_desc *orig_sysdep_tab;
-+  /* Pointer to descriptors of translated sysdep strings.  */
-+  const struct sysdep_string_desc *trans_sysdep_tab;
-+
-+  /* Size of hash table.  */
-   nls_uint32 hash_size;
--  nls_uint32 *hash_tab;
-+  /* Pointer to hash table.  */
-+  const nls_uint32 *hash_tab;
-+  /* 1 if the hash table uses a different endianness than this machine.  */
-+  int must_swap_hash_tab;
-+
-+  int codeset_cntr;
- #ifdef _LIBC
-   __gconv_t conv;
- #else
-@@ -155,6 +140,7 @@
- {
-   struct binding *next;
-   char *dirname;
-+  int codeset_cntr;   /* Incremented each time codeset changes.  */
-   char *codeset;
-   char domainname[ZERO];
- };
-@@ -164,72 +150,64 @@
-    This variable is part of the external ABI of the GNU libintl.  */
- extern int _nl_msg_cat_cntr;
--struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
--                                               char *__locale,
--                                               const char *__domainname,
--                                            struct binding *__domainbinding))
-+#ifndef _LIBC
-+const char *_nl_locale_name (int category, const char *categoryname);
-+#endif
-+
-+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))
-+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 (struct loaded_l10nfile *__domain_file,
-+                                struct loaded_domain *__domain,
-+                                struct binding *__domainbinding)
-+     internal_function;
-+void _nl_free_domain_conv (struct loaded_domain *__domain)
-      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));
--#else
--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));
--#endif
-+char *_nl_find_msg (struct loaded_l10nfile *domain_file,
-+                  struct binding *domainbinding, const char *msgid,
-+                  size_t *lengthp)
-+     internal_function;
- #ifdef _LIBC
--extern void __gettext_free_exp PARAMS ((struct expression *exp))
--     internal_function;
--extern int __gettextparse PARAMS ((void *arg));
-+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
--extern void gettext_free_exp__ PARAMS ((struct expression *exp))
--     internal_function;
--extern int gettextparse__ PARAMS ((void *arg));
-+/* 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 (const char *__domainname,
-+                               const char *__msgid1, const char *__msgid2,
-+                               int __plural, unsigned long int __n,
-+                               int __category);
- #endif
- /* @@ begin of epilog @@ */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/gmo.h psmisc-20.2.works.clean/intl/gmo.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/gmo.h     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/gmo.h 2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,149 @@
-+/* Description of GNU message catalog format: general file layout.
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _GETTEXT_H
-+#define _GETTEXT_H 1
-+
-+#include <limits.h>
-+
-+/* @@ end of prolog @@ */
-+
-+/* The magic number of the GNU message catalog format.  */
-+#define _MAGIC 0x950412de
-+#define _MAGIC_SWAPPED 0xde120495
-+
-+/* Revision number of the currently used .mo (binary) file format.  */
-+#define MO_REVISION_NUMBER 0
-+#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
-+   alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
-+   as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
-+   when cross-compiling.  */
-+
-+#if __STDC__
-+# define UINT_MAX_32_BITS 4294967295U
-+#else
-+# define UINT_MAX_32_BITS 0xFFFFFFFF
-+#endif
-+
-+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
-+   This should be valid for all systems GNU cares about because
-+   that doesn't include 16-bit systems, and only modern systems
-+   (that certainly have <limits.h>) have 64+-bit integral types.  */
-+
-+#ifndef UINT_MAX
-+# define UINT_MAX UINT_MAX_32_BITS
-+#endif
-+
-+#if UINT_MAX == UINT_MAX_32_BITS
-+typedef unsigned nls_uint32;
-+#else
-+# if USHRT_MAX == UINT_MAX_32_BITS
-+typedef unsigned short nls_uint32;
-+# else
-+#  if ULONG_MAX == UINT_MAX_32_BITS
-+typedef unsigned long nls_uint32;
-+#  else
-+  /* The following line is intended to throw an error.  Using #error is
-+     not portable enough.  */
-+  "Cannot determine unsigned 32-bit data type."
-+#  endif
-+# endif
-+#endif
-+
-+
-+/* Header for binary .mo file format.  */
-+struct mo_file_header
-+{
-+  /* The magic number.  */
-+  nls_uint32 magic;
-+  /* The revision number of the file format.  */
-+  nls_uint32 revision;
-+
-+  /* The following are only used in .mo files with major revision 0 or 1.  */
-+
-+  /* The number of strings pairs.  */
-+  nls_uint32 nstrings;
-+  /* Offset of table with start offsets of original strings.  */
-+  nls_uint32 orig_tab_offset;
-+  /* Offset of table with start offsets of translated strings.  */
-+  nls_uint32 trans_tab_offset;
-+  /* Size of hash table.  */
-+  nls_uint32 hash_tab_size;
-+  /* Offset of first hash table entry.  */
-+  nls_uint32 hash_tab_offset;
-+
-+  /* The following are only used in .mo files with minor revision >= 1.  */
-+
-+  /* The number of system dependent segments.  */
-+  nls_uint32 n_sysdep_segments;
-+  /* Offset of table describing system dependent segments.  */
-+  nls_uint32 sysdep_segments_offset;
-+  /* The number of system dependent strings pairs.  */
-+  nls_uint32 n_sysdep_strings;
-+  /* Offset of table with start offsets of original sysdep strings.  */
-+  nls_uint32 orig_sysdep_tab_offset;
-+  /* Offset of table with start offsets of translated sysdep strings.  */
-+  nls_uint32 trans_sysdep_tab_offset;
-+};
-+
-+/* Descriptor for static string contained in the binary .mo file.  */
-+struct string_desc
-+{
-+  /* Length of addressed string, not including the trailing NUL.  */
-+  nls_uint32 length;
-+  /* Offset of string in file.  */
-+  nls_uint32 offset;
-+};
-+
-+/* The following are only used in .mo files with minor revision >= 1.  */
-+
-+/* Descriptor for system dependent string segment.  */
-+struct sysdep_segment
-+{
-+  /* Length of addressed string, including the trailing NUL.  */
-+  nls_uint32 length;
-+  /* Offset of string in file.  */
-+  nls_uint32 offset;
-+};
-+
-+/* Descriptor for system dependent string.  */
-+struct sysdep_string
-+{
-+  /* Offset of static string segments in file.  */
-+  nls_uint32 offset;
-+  /* Alternating sequence of static and system dependent segments.
-+     The last segment is a static segment, including the trailing NUL.  */
-+  struct segment_pair
-+  {
-+    /* Size of static segment.  */
-+    nls_uint32 segsize;
-+    /* Reference to system dependent string segment, or ~0 at the end.  */
-+    nls_uint32 sysdepref;
-+  } segments[1];
-+};
-+
-+/* Marker for the end of the segments[] array.  This has the value 0xFFFFFFFF,
-+   regardless whether 'int' is 16 bit, 32 bit, or 64 bit.  */
-+#define SEGMENTS_END ((nls_uint32) ~0)
-+
-+/* @@ begin of epilog @@ */
-+
-+#endif        /* gettext.h  */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/hash-string.h psmisc-20.2.works.clean/intl/hash-string.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/hash-string.h     2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/hash-string.h 2004-10-13 15:18:41.000000000 -0500
-@@ -1,30 +1,23 @@
- /* 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- /* @@ end of prolog @@ */
--#ifndef PARAMS
--# if __STDC__
--#  define PARAMS(Args) Args
--# else
--#  define PARAMS(Args) ()
--# endif
--#endif
--
- /* We assume to have `unsigned long int' value with at least 32 bits.  */
- #define HASHWORDBITS 32
-@@ -32,11 +25,8 @@
- /* 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;
-@@ -46,7 +36,7 @@
-   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)
-       {
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/intl-compat.c psmisc-20.2.works.clean/intl/intl-compat.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/intl-compat.c     2001-04-13 23:00:43.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/intl-compat.c 2004-10-13 15:18:41.000000000 -0500
-@@ -1,71 +1,38 @@
- /* intl-compat.c - Stub functions to call gettext functions from GNU gettext
-    Library.
--   Copyright (C) 1995, 2000, 2001 Software Foundation, Inc.
-+   Copyright (C) 1995, 2000-2003 Software Foundation, Inc.
--This program is free software; you can redistribute it and/or modify
--it under the terms of the GNU General Public License as published by
--the Free Software Foundation; either version 2, or (at your option)
--any later version.
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
--This program is distributed in the hope that it will be useful,
--but WITHOUT ANY WARRANTY; without even the implied warranty of
--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--GNU General Public License for more details.
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--You should have received a copy of the GNU General Public License
--along with this program; if not, write to the Free Software
--Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
--#include "libgnuintl.h"
- #include "gettextP.h"
- /* @@ end of prolog @@ */
--/* This file redirects the gettext functions (without prefix or suffix) to
--   those defined in the included GNU gettext library (with "__" suffix).
--   It is compiled into libintl when the included GNU gettext library is
--   configured --with-included-gettext.
--
--   This redirection works also in the case that the system C library or
--   the system libintl library contain gettext/textdomain/... functions.
--   If it didn't, we would need to add preprocessor level redirections to
--   libgnuintl.h of the following form:
--
--#    define gettext gettext__
--#    define dgettext dgettext__
--#    define dcgettext dcgettext__
--#    define ngettext ngettext__
--#    define dngettext dngettext__
--#    define dcngettext dcngettext__
--#    define textdomain textdomain__
--#    define bindtextdomain bindtextdomain__
--#    define bind_textdomain_codeset bind_textdomain_codeset__
--
--   How does this redirection work? There are two cases.
--   A. When libintl.a is linked into an executable, it works because
--      functions defined in the executable always override functions in
--      the shared libraries.
--   B. When libintl.so is used, it works because
--      1. those systems defining gettext/textdomain/... in the C library
--         (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are
--         ELF systems and define these symbols as weak, thus explicitly
--         letting other shared libraries override it.
--      2. those systems defining gettext/textdomain/... in a standalone
--         libintl.so library (namely, Solaris 2.3 and newer) have this
--         shared library in /usr/lib, and the linker will search /usr/lib
--         *after* the directory where the GNU gettext library is installed.
--
--   A third case, namely when libintl.a is linked into a shared library
--   whose name is not libintl.so, is not supported. In this case, on
--   Solaris, when -lintl precedes the linker option for the shared library
--   containing GNU gettext, the system's gettext would indeed override
--   the GNU gettext. Anyone doing this kind of stuff must be clever enough
--   to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker
--   command line.  */
-+/* This file redirects the gettext functions (without prefix) to those
-+   defined in the included GNU libintl library (with "libintl_" prefix).
-+   It is compiled into libintl in order to make the AM_GNU_GETTEXT test
-+   of gettext <= 0.11.2 work with the libintl library >= 0.11.3 which
-+   has the redirections primarily in the <libintl.h> include file.
-+   It is also compiled into libgnuintl so that libgnuintl.so can be used
-+   as LD_PRELOADable library on glibc systems, to provide the extra
-+   features that the functions in the libc don't have (namely, logging).  */
- #undef gettext
-@@ -79,87 +46,86 @@
- #undef bind_textdomain_codeset
-+/* When building a DLL, we must export some functions.  Note that because
-+   the functions are only defined for binary backward compatibility, we
-+   don't need to use __declspec(dllimport) in any case.  */
-+#if defined _MSC_VER && BUILDING_DLL
-+# define DLL_EXPORTED __declspec(dllexport)
-+#else
-+# define DLL_EXPORTED
-+#endif
-+
-+
-+DLL_EXPORTED
- char *
--gettext (msgid)
--     const char *msgid;
-+gettext (const char *msgid)
- {
--  return gettext__ (msgid);
-+  return libintl_gettext (msgid);
- }
-+DLL_EXPORTED
- char *
--dgettext (domainname, msgid)
--     const char *domainname;
--     const char *msgid;
-+dgettext (const char *domainname, const char *msgid)
- {
--  return dgettext__ (domainname, msgid);
-+  return libintl_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 dcgettext__ (domainname, msgid, category);
-+  return libintl_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 ngettext__ (msgid1, msgid2, n);
-+  return libintl_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 dngettext__ (domainname, msgid1, msgid2, n);
-+  return libintl_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 dcngettext__ (domainname, msgid1, msgid2, n, category);
-+  return libintl_dcngettext (domainname, msgid1, msgid2, n, category);
- }
-+DLL_EXPORTED
- char *
--textdomain (domainname)
--     const char *domainname;
-+textdomain (const char *domainname)
- {
--  return textdomain__ (domainname);
-+  return libintl_textdomain (domainname);
- }
-+DLL_EXPORTED
- char *
--bindtextdomain (domainname, dirname)
--     const char *domainname;
--     const char *dirname;
-+bindtextdomain (const char *domainname, const char *dirname)
- {
--  return bindtextdomain__ (domainname, dirname);
-+  return libintl_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 bind_textdomain_codeset__ (domainname, codeset);
-+  return libintl_bind_textdomain_codeset (domainname, codeset);
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/l10nflist.c psmisc-20.2.works.clean/intl/l10nflist.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/l10nflist.c       2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/l10nflist.c   2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
--/* Copyright (C) 1995-1999, 2000, 2001 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 under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- /* Tell glibc's <string.h> to provide a prototype for stpcpy().
-    This must come before <config.h> because <config.h> may include
-@@ -27,11 +28,6 @@
- #endif
- #include <string.h>
--#if !HAVE_STRCHR && !defined _LIBC
--# ifndef strchr
--#  define strchr index
--# endif
--#endif
- #if defined _LIBC || defined HAVE_ARGZ_H
- # include <argz.h>
-@@ -62,20 +58,34 @@
- # endif
- #else
- # ifndef HAVE_STPCPY
--static char *stpcpy PARAMS ((char *dest, const char *src));
-+static char *stpcpy (char *dest, const char *src);
- # endif
- #endif
-+/* Pathname support.
-+   ISSLASH(C)           tests whether C is a directory separator character.
-+   IS_ABSOLUTE_PATH(P)  tests whether P is an absolute path.  If it is not,
-+                        it may be concatenated to a directory pathname.
-+ */
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+  /* Win32, OS/2, DOS */
-+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-+# define HAS_DEVICE(P) \
-+    ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
-+     && (P)[1] == ':')
-+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
-+#else
-+  /* Unix */
-+# define ISSLASH(C) ((C) == '/')
-+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
-+#endif
-+
- /* Define function which are usually not available.  */
- #if !defined _LIBC && !defined HAVE___ARGZ_COUNT
- /* Returns the number of strings in ARGZ.  */
--static size_t argz_count__ PARAMS ((const char *argz, size_t len));
--
- static size_t
--argz_count__ (argz, len)
--     const char *argz;
--     size_t len;
-+argz_count__ (const char *argz, size_t len)
- {
-   size_t count = 0;
-   while (len > 0)
-@@ -89,18 +99,17 @@
- }
- # undef __argz_count
- # define __argz_count(argz, len) argz_count__ (argz, len)
-+#else
-+# ifdef _LIBC
-+#  define __argz_count(argz, len) INTUSE(__argz_count) (argz, len)
-+# endif
- #endif        /* !_LIBC && !HAVE___ARGZ_COUNT */
- #if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
- /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
-    except the last into the character SEP.  */
--static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
--
- static void
--argz_stringify__ (argz, len, sep)
--     char *argz;
--     size_t len;
--     int sep;
-+argz_stringify__ (char *argz, size_t len, int sep)
- {
-   while (len > 0)
-     {
-@@ -113,17 +122,16 @@
- }
- # undef __argz_stringify
- # define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
-+#else
-+# ifdef _LIBC
-+#  define __argz_stringify(argz, len, sep) \
-+  INTUSE(__argz_stringify) (argz, len, sep)
-+# endif
- #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)
-     {
-@@ -144,11 +152,8 @@
- /* 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);
-@@ -161,32 +166,27 @@
\f
- struct loaded_l10nfile *
--_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
--                  territory, codeset, normalized_codeset, modifier, special,
--                  sponsor, revision, filename, domainbinding, 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;
--     struct binding *domainbinding;
--     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 *last = NULL;
-+  struct loaded_l10nfile **lastp;
-   struct loaded_l10nfile *retval;
-   char *cp;
-+  size_t dirlist_count;
-   size_t entries;
-   int cnt;
-+  /* If LANGUAGE contains an absolute directory specification, we ignore
-+     DIRLIST.  */
-+  if (IS_ABSOLUTE_PATH (language))
-+    dirlist_len = 0;
-+
-   /* Allocate room for the full file name.  */
-   abs_filename = (char *) malloc (dirlist_len
-                                 + strlen (language)
-@@ -204,7 +204,7 @@
-                                 + (((mask & CEN_SPONSOR) != 0
-                                     || (mask & CEN_REVISION) != 0)
-                                    ? (1 + ((mask & CEN_SPONSOR) != 0
--                                           ? strlen (sponsor) + 1 : 0)
-+                                           ? strlen (sponsor) : 0)
-                                       + ((mask & CEN_REVISION) != 0
-                                          ? strlen (revision) + 1 : 0)) : 0)
-                                 + 1 + strlen (filename) + 1);
-@@ -212,14 +212,16 @@
-   if (abs_filename == NULL)
-     return NULL;
--  retval = NULL;
--  last = NULL;
--
-   /* Construct file name.  */
--  memcpy (abs_filename, dirlist, dirlist_len);
--  __argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR);
--  cp = abs_filename + (dirlist_len - 1);
--  *cp++ = '/';
-+  cp = abs_filename;
-+  if (dirlist_len > 0)
-+    {
-+      memcpy (cp, dirlist, dirlist_len);
-+      __argz_stringify (cp, dirlist_len, PATH_SEPARATOR);
-+      cp += dirlist_len;
-+      cp[-1] = '/';
-+    }
-+
-   cp = stpcpy (cp, language);
-   if ((mask & TERRITORY) != 0)
-@@ -266,7 +268,7 @@
-   /* Look in list of already loaded domains whether it is already
-      available.  */
--  last = NULL;
-+  lastp = l10nfile_list;
-   for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
-     if (retval->filename != NULL)
-       {
-@@ -281,7 +283,7 @@
-           break;
-         }
--      last = retval;
-+      lastp = &retval->next;
-       }
-   if (retval != NULL || do_allocate == 0)
-@@ -290,52 +292,68 @@
-       return retval;
-     }
--  retval = (struct loaded_l10nfile *)
--    malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
--                              * (1 << pop (mask))
--                              * sizeof (struct loaded_l10nfile *)));
-+  dirlist_count = (dirlist_len > 0 ? __argz_count (dirlist, dirlist_len) : 1);
-+
-+  /* Allocate a new loaded_l10nfile.  */
-+  retval =
-+    (struct loaded_l10nfile *)
-+    malloc (sizeof (*retval)
-+          + (((dirlist_count << pop (mask)) + (dirlist_count > 1 ? 1 : 0))
-+             * sizeof (struct loaded_l10nfile *)));
-   if (retval == NULL)
-     return NULL;
-   retval->filename = abs_filename;
--  retval->domainbinding = domainbinding;
--  retval->decided = (__argz_count (dirlist, dirlist_len) != 1
-+
-+  /* We set retval->data to NULL here; it is filled in later.
-+     Setting retval->decided to 1 here means that retval does not
-+     correspond to a real file (dirlist_count > 1) or is not worth
-+     looking up (if an unnormalized codeset was specified).  */
-+  retval->decided = (dirlist_count > 1
-                    || ((mask & XPG_CODESET) != 0
-                        && (mask & XPG_NORM_CODESET) != 0));
-   retval->data = NULL;
--  if (last == NULL)
--    {
--      retval->next = *l10nfile_list;
--      *l10nfile_list = retval;
--    }
--  else
--    {
--      retval->next = last->next;
--      last->next = retval;
--    }
-+  retval->next = *lastp;
-+  *lastp = retval;
-   entries = 0;
--  /* If the DIRLIST is a real list the RETVAL entry corresponds not to
--     a real file.  So we have to use the DIRLIST separation mechanism
--     of the inner loop.  */
--  cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
--  for (; cnt >= 0; --cnt)
-+  /* Recurse to fill the inheritance list of RETVAL.
-+     If the DIRLIST is a real list (i.e. DIRLIST_COUNT > 1), the RETVAL
-+     entry does not correspond to a real file; retval->filename contains
-+     colons.  In this case we loop across all elements of DIRLIST and
-+     across all bit patterns dominated by MASK.
-+     If the DIRLIST is a single directory or entirely redundant (i.e.
-+     DIRLIST_COUNT == 1), we loop across all bit patterns dominated by
-+     MASK, excluding MASK itself.
-+     In either case, we loop down from MASK to 0.  This has the effect
-+     that the extra bits in the locale name are dropped in this order:
-+     first the modifier, then the territory, then the codeset, then the
-+     normalized_codeset.  */
-+  for (cnt = dirlist_count > 1 ? mask : mask - 1; cnt >= 0; --cnt)
-     if ((cnt & ~mask) == 0
-       && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
-       && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
-       {
--      /* Iterate over all elements of the DIRLIST.  */
--      char *dir = NULL;
-+      if (dirlist_count > 1)
-+        {
-+          /* Iterate over all elements of the DIRLIST.  */
-+          char *dir = NULL;
--      while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
--             != NULL)
-+          while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
-+                 != NULL)
-+            retval->successor[entries++]
-+              = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1,
-+                                    cnt, language, territory, codeset,
-+                                    normalized_codeset, modifier, special,
-+                                    sponsor, revision, filename, 1);
-+        }
-+      else
-         retval->successor[entries++]
--          = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
--                                language, territory, codeset,
-+          = _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len,
-+                                cnt, language, territory, codeset,
-                                 normalized_codeset, modifier, special,
--                                sponsor, revision, filename, domainbinding,
--                                1);
-+                                sponsor, revision, filename, 1);
-       }
-   retval->successor[entries] = NULL;
-@@ -347,9 +365,7 @@
-    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;
-@@ -358,11 +374,11 @@
-   size_t cnt;
-   for (cnt = 0; cnt < name_len; ++cnt)
--    if (isalnum (codeset[cnt]))
-+    if (isalnum ((unsigned char) codeset[cnt]))
-       {
-       ++len;
--      if (isalpha (codeset[cnt]))
-+      if (isalpha ((unsigned char) codeset[cnt]))
-         only_digit = 0;
-       }
-@@ -376,9 +392,9 @@
-       wp = retval;
-       for (cnt = 0; cnt < name_len; ++cnt)
--      if (isalpha (codeset[cnt]))
--        *wp++ = tolower (codeset[cnt]);
--      else if (isdigit (codeset[cnt]))
-+      if (isalpha ((unsigned char) codeset[cnt]))
-+        *wp++ = tolower ((unsigned char) codeset[cnt]);
-+      else if (isdigit ((unsigned char) codeset[cnt]))
-         *wp++ = codeset[cnt];
-       *wp = '\0';
-@@ -396,9 +412,7 @@
-    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. */ ;
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/libgettext.h psmisc-20.2.works.clean/intl/libgettext.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/libgettext.h      2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/libgettext.h  1969-12-31 18:00:00.000000000 -0600
-@@ -1,48 +0,0 @@
--/* Convenience header for conditional use of GNU <libintl.h>.
--   Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
--
--   This program is free software; you can redistribute it and/or modify
--   it under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
--   any later version.
--
--   This program is distributed in the hope that it will be useful,
--   but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
--
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
--
--#ifndef _LIBGETTEXT_H
--#define _LIBGETTEXT_H 1
--
--/* NLS can be disabled through the configure --disable-nls option.  */
--#if ENABLE_NLS
--
--/* Get declarations of GNU message catalog functions.  */
--# include <libintl.h>
--
--#else
--
--# define gettext(Msgid) (Msgid)
--# define dgettext(Domainname, Msgid) (Msgid)
--# define dcgettext(Domainname, Msgid, Category) (Msgid)
--# define ngettext(Msgid1, Msgid2, N) \
--    ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
--# define dngettext(Domainname, Msgid1, Msgid2, N) \
--    ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
--# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
--    ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
--# define textdomain(Domainname) ((char *) (Domainname))
--# define bindtextdomain(Domainname, Dirname) ((char *) (Dirname))
--# define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset))
--
--#endif
--
--/* For automatical extraction of messages sometimes no real
--   translation is needed.  Instead the string itself is the result.  */
--#define gettext_noop(Str) (Str)
--
--#endif /* _LIBGETTEXT_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/libgnuintl.h psmisc-20.2.works.clean/intl/libgnuintl.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/libgnuintl.h      2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/libgnuintl.h  1969-12-31 18:00:00.000000000 -0600
-@@ -1,127 +0,0 @@
--/* Message catalogs for internationalization.
--   Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
--
--   This program is free software; you can redistribute it and/or modify
--   it under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
--   any later version.
--
--   This program is distributed in the hope that it will be useful,
--   but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
--
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
--
--#ifndef _LIBINTL_H
--#define _LIBINTL_H    1
--
--#include <locale.h>
--
--/* The LC_MESSAGES locale category is the category used by the functions
--   gettext() and dgettext().  It is specified in POSIX, but not in ANSI C.
--   On systems that don't define it, use an arbitrary value instead.
--   On Solaris, <locale.h> defines __LOCALE_H then includes <libintl.h> (i.e.
--   this file!) and then only defines LC_MESSAGES.  To avoid a redefinition
--   warning, don't define LC_MESSAGES in this case.  */
--#if !defined LC_MESSAGES && !defined __LOCALE_H
--# define LC_MESSAGES 1729
--#endif
--
--/* We define an additional symbol to signal that we use the GNU
--   implementation of gettext.  */
--#define __USE_GNU_GETTEXT 1
--
--/* Resolve a platform specific conflict on DJGPP.  GNU gettext takes
--   precedence over _conio_gettext.  */
--#ifdef __DJGPP__
--# undef gettext
--# define gettext gettext
--#endif
--
--#ifndef PARAMS
--# if __STDC__ || defined __cplusplus
--#  define PARAMS(args) args
--# else
--#  define PARAMS(args) ()
--# endif
--#endif
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
--/* Look up MSGID in the current default message catalog for the current
--   LC_MESSAGES locale.  If not found, returns MSGID itself (the default
--   text).  */
--extern char *gettext PARAMS ((const char *__msgid));
--
--/* Look up MSGID in the DOMAINNAME message catalog for the current
--   LC_MESSAGES locale.  */
--extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
--
--/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
--   locale.  */
--extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
--                              int __category));
--
--
--/* Similar to `gettext' but select the plural form corresponding to the
--   number N.  */
--extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
--                             unsigned long int __n));
--
--/* Similar to `dgettext' but select the plural form corresponding to the
--   number N.  */
--extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1,
--                              const char *__msgid2, unsigned long int __n));
--
--/* Similar to `dcgettext' but select the plural form corresponding to the
--   number N.  */
--extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1,
--                               const char *__msgid2, unsigned long int __n,
--                               int __category));
--
--
--/* Set the current default message catalog to DOMAINNAME.
--   If DOMAINNAME is null, return the current default.
--   If DOMAINNAME is "", reset to the default of "messages".  */
--extern char *textdomain PARAMS ((const char *__domainname));
--
--/* Specify that the DOMAINNAME message catalog will be found
--   in DIRNAME rather than in the system locale data base.  */
--extern char *bindtextdomain PARAMS ((const char *__domainname,
--                                   const char *__dirname));
--
--/* Specify the character encoding in which the messages from the
--   DOMAINNAME message catalog will be returned.  */
--extern char *bind_textdomain_codeset PARAMS ((const char *__domainname,
--                                            const char *__codeset));
--
--
--/* Optimized version of the functions above.  */
--#if defined __OPTIMIZED
--/* These are macros, but could also be inline functions.  */
--
--# define gettext(msgid)                                                             \
--  dgettext (NULL, msgid)
--
--# define dgettext(domainname, msgid)                                        \
--  dcgettext (domainname, msgid, LC_MESSAGES)
--
--# define ngettext(msgid1, msgid2, n)                                        \
--  dngettext (NULL, msgid1, msgid2, n)
--
--# define dngettext(domainname, msgid1, msgid2, n)                           \
--  dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES)
--
--#endif /* Optimizing. */
--
--
--#ifdef __cplusplus
--}
--#endif
--
--#endif /* libintl.h */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/libgnuintl.h.in psmisc-20.2.works.clean/intl/libgnuintl.h.in
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/libgnuintl.h.in   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/libgnuintl.h.in       2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,383 @@
-+/* Message catalogs for internationalization.
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _LIBINTL_H
-+#define _LIBINTL_H    1
-+
-+#include <locale.h>
-+
-+/* The LC_MESSAGES locale category is the category used by the functions
-+   gettext() and dgettext().  It is specified in POSIX, but not in ANSI C.
-+   On systems that don't define it, use an arbitrary value instead.
-+   On Solaris, <locale.h> defines __LOCALE_H (or _LOCALE_H in Solaris 2.5)
-+   then includes <libintl.h> (i.e. this file!) and then only defines
-+   LC_MESSAGES.  To avoid a redefinition warning, don't define LC_MESSAGES
-+   in this case.  */
-+#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun))
-+# define LC_MESSAGES 1729
-+#endif
-+
-+/* We define an additional symbol to signal that we use the GNU
-+   implementation of gettext.  */
-+#define __USE_GNU_GETTEXT 1
-+
-+/* Provide information about the supported file formats.  Returns the
-+   maximum minor revision number supported for a given major revision.  */
-+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \
-+  ((major) == 0 ? 1 : -1)
-+
-+/* Resolve a platform specific conflict on DJGPP.  GNU gettext takes
-+   precedence over _conio_gettext.  */
-+#ifdef __DJGPP__
-+# undef gettext
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+/* We redirect the functions to those prefixed with "libintl_".  This is
-+   necessary, because some systems define gettext/textdomain/... in the C
-+   library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).
-+   If we used the unprefixed names, there would be cases where the
-+   definition in the C library would override the one in the libintl.so
-+   shared library.  Recall that on ELF systems, the symbols are looked
-+   up in the following order:
-+     1. in the executable,
-+     2. in the shared libraries specified on the link command line, in order,
-+     3. in the dependencies of the shared libraries specified on the link
-+        command line,
-+     4. in the dlopen()ed shared libraries, in the order in which they were
-+        dlopen()ed.
-+   The definition in the C library would override the one in libintl.so if
-+   either
-+     * -lc is given on the link command line and -lintl isn't, or
-+     * -lc is given on the link command line before -lintl, or
-+     * libintl.so is a dependency of a dlopen()ed shared library but not
-+       linked to the executable at link time.
-+   Since Solaris gettext() behaves differently than GNU gettext(), this
-+   would be unacceptable.
-+
-+   The redirection happens by default through macros in C, so that &gettext
-+   is independent of the compilation unit, but through inline functions in
-+   C++, in order not to interfere with the name mangling of class fields or
-+   class methods called 'gettext'.  */
-+
-+/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS.
-+   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 __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
-+#  define _INTL_REDIRECT_ASM
-+# else
-+#  ifdef __cplusplus
-+#   define _INTL_REDIRECT_INLINE
-+#  else
-+#   define _INTL_REDIRECT_MACROS
-+#  endif
-+# endif
-+#endif
-+/* Auxiliary macros.  */
-+#ifdef _INTL_REDIRECT_ASM
-+# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname))
-+# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring
-+# define _INTL_STRINGIFY(prefix) #prefix
-+#else
-+# define _INTL_ASM(cname)
-+#endif
-+
-+/* Look up MSGID in the current default message catalog for the current
-+   LC_MESSAGES locale.  If not found, returns MSGID itself (the default
-+   text).  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_gettext (const char *__msgid);
-+static inline char *gettext (const char *__msgid)
-+{
-+  return libintl_gettext (__msgid);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define gettext libintl_gettext
-+#endif
-+extern char *gettext (const char *__msgid)
-+       _INTL_ASM (libintl_gettext);
-+#endif
-+
-+/* Look up MSGID in the DOMAINNAME message catalog for the current
-+   LC_MESSAGES locale.  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_dgettext (const char *__domainname, const char *__msgid);
-+static inline char *dgettext (const char *__domainname, const char *__msgid)
-+{
-+  return libintl_dgettext (__domainname, __msgid);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define dgettext libintl_dgettext
-+#endif
-+extern char *dgettext (const char *__domainname, const char *__msgid)
-+       _INTL_ASM (libintl_dgettext);
-+#endif
-+
-+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
-+   locale.  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_dcgettext (const char *__domainname, const char *__msgid,
-+                              int __category);
-+static inline char *dcgettext (const char *__domainname, const char *__msgid,
-+                             int __category)
-+{
-+  return libintl_dcgettext (__domainname, __msgid, __category);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define dcgettext libintl_dcgettext
-+#endif
-+extern char *dcgettext (const char *__domainname, const char *__msgid,
-+                      int __category)
-+       _INTL_ASM (libintl_dcgettext);
-+#endif
-+
-+
-+/* Similar to `gettext' but select the plural form corresponding to the
-+   number N.  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2,
-+                             unsigned long int __n);
-+static inline char *ngettext (const char *__msgid1, const char *__msgid2,
-+                            unsigned long int __n)
-+{
-+  return libintl_ngettext (__msgid1, __msgid2, __n);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define ngettext libintl_ngettext
-+#endif
-+extern char *ngettext (const char *__msgid1, const char *__msgid2,
-+                     unsigned long int __n)
-+       _INTL_ASM (libintl_ngettext);
-+#endif
-+
-+/* Similar to `dgettext' but select the plural form corresponding to the
-+   number N.  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_dngettext (const char *__domainname, const char *__msgid1,
-+                              const char *__msgid2, unsigned long int __n);
-+static inline char *dngettext (const char *__domainname, const char *__msgid1,
-+                             const char *__msgid2, unsigned long int __n)
-+{
-+  return libintl_dngettext (__domainname, __msgid1, __msgid2, __n);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define dngettext libintl_dngettext
-+#endif
-+extern char *dngettext (const char *__domainname,
-+                      const char *__msgid1, const char *__msgid2,
-+                      unsigned long int __n)
-+       _INTL_ASM (libintl_dngettext);
-+#endif
-+
-+/* Similar to `dcgettext' but select the plural form corresponding to the
-+   number N.  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_dcngettext (const char *__domainname,
-+                               const char *__msgid1, const char *__msgid2,
-+                               unsigned long int __n, int __category);
-+static inline char *dcngettext (const char *__domainname,
-+                              const char *__msgid1, const char *__msgid2,
-+                              unsigned long int __n, int __category)
-+{
-+  return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define dcngettext libintl_dcngettext
-+#endif
-+extern char *dcngettext (const char *__domainname,
-+                       const char *__msgid1, const char *__msgid2,
-+                       unsigned long int __n, int __category)
-+       _INTL_ASM (libintl_dcngettext);
-+#endif
-+
-+
-+/* Set the current default message catalog to DOMAINNAME.
-+   If DOMAINNAME is null, return the current default.
-+   If DOMAINNAME is "", reset to the default of "messages".  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_textdomain (const char *__domainname);
-+static inline char *textdomain (const char *__domainname)
-+{
-+  return libintl_textdomain (__domainname);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define textdomain libintl_textdomain
-+#endif
-+extern char *textdomain (const char *__domainname)
-+       _INTL_ASM (libintl_textdomain);
-+#endif
-+
-+/* Specify that the DOMAINNAME message catalog will be found
-+   in DIRNAME rather than in the system locale data base.  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_bindtextdomain (const char *__domainname,
-+                                   const char *__dirname);
-+static inline char *bindtextdomain (const char *__domainname,
-+                                  const char *__dirname)
-+{
-+  return libintl_bindtextdomain (__domainname, __dirname);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define bindtextdomain libintl_bindtextdomain
-+#endif
-+extern char *bindtextdomain (const char *__domainname, const char *__dirname)
-+       _INTL_ASM (libintl_bindtextdomain);
-+#endif
-+
-+/* Specify the character encoding in which the messages from the
-+   DOMAINNAME message catalog will be returned.  */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_bind_textdomain_codeset (const char *__domainname,
-+                                            const char *__codeset);
-+static inline char *bind_textdomain_codeset (const char *__domainname,
-+                                           const char *__codeset)
-+{
-+  return libintl_bind_textdomain_codeset (__domainname, __codeset);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define bind_textdomain_codeset libintl_bind_textdomain_codeset
-+#endif
-+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.
-+   Relocation simply replaces a pathname starting with the original prefix
-+   by the corresponding pathname with the current prefix instead.  Both
-+   prefixes should be directory names without trailing slash (i.e. use ""
-+   instead of "/").  */
-+#define libintl_set_relocation_prefix libintl_set_relocation_prefix
-+extern void
-+       libintl_set_relocation_prefix (const char *orig_prefix,
-+                                    const char *curr_prefix);
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* libintl.h */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/loadinfo.h psmisc-20.2.works.clean/intl/loadinfo.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/loadinfo.h        2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/loadinfo.h    2004-10-13 15:18:41.000000000 -0500
-@@ -1,31 +1,36 @@
--/* Copyright (C) 1996-1999, 2000, 2001 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.
--   This program is free software; you can redistribute it and/or modify
--   it under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifndef _LOADINFO_H
- #define _LOADINFO_H   1
--#ifndef PARAMS
--# if __STDC__
--#  define PARAMS(args) args
--# else
--#  define PARAMS(args) ()
--# endif
--#endif
-+/* Declarations of locale dependent catalog lookup functions.
-+   Implemented in
-+
-+     localealias.c    Possibly replace a locale name by another.
-+     explodename.c    Split a locale name into its various fields.
-+     l10nflist.c      Generate a list of filenames of possible message catalogs.
-+     finddomain.c     Find and open the relevant message catalogs.
-+
-+   The main function _nl_find_domain() in finddomain.c is declared
-+   in gettextP.h.
-+ */
- #ifndef internal_function
- # define internal_function
-@@ -63,7 +68,6 @@
- struct loaded_l10nfile
- {
-   const char *filename;
--  struct binding *domainbinding;
-   int decided;
-   const void *data;
-@@ -77,39 +81,65 @@
-    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
-+   files of the same kind, sorted in decreasing order of ->filename.
-+   DIRLIST and DIRLIST_LEN are an argz list of directories in which to
-+   look, containing at least one directory (i.e. DIRLIST_LEN > 0).
-+   MASK, LANGUAGE, TERRITORY, CODESET, NORMALIZED_CODESET, MODIFIER,
-+   SPECIAL, SPONSOR, REVISION are the pieces of the locale name, as
-+   produced by _nl_explode_name().  FILENAME is the filename suffix.
-+   The return value is the lookup result, either found in *L10NFILE_LIST,
-+   or - if DO_ALLOCATE is nonzero - freshly allocated, or possibly NULL.
-+   If the return value is non-NULL, it is added to *L10NFILE_LIST, and
-+   its ->next field denotes the chaining inside *L10NFILE_LIST, and
-+   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,
--                          struct binding *domainbinding, int do_allocate));
--
--
--extern const char *_nl_expand_alias PARAMS ((const char *name));
--
--/* normalized_codeset is dynamically allocated and has to be freed by
--   the caller.  */
--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));
-+_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);
--extern char *_nl_find_language PARAMS ((const char *name));
-+/* 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 (const char *name);
-+/* Split a locale name NAME into its pieces: language, modifier,
-+   territory, codeset, special, sponsor, revision.
-+   NAME gets destructively modified: NUL bytes are inserted here and
-+   there.  *LANGUAGE gets assigned NAME.  Each of *MODIFIER, *TERRITORY,
-+   *CODESET, *SPECIAL, *SPONSOR, *REVISION gets assigned either a
-+   pointer into the old NAME string, or NULL.  *NORMALIZED_CODESET
-+   gets assigned the expanded *CODESET, if it is different from *CODESET;
-+   this one is dynamically allocated and has to be freed by the caller.
-+   The return value is a bitmask, where each bit corresponds to one
-+   filled-in value:
-+     XPG_MODIFIER, CEN_AUDIENCE  for *MODIFIER,
-+     TERRITORY                   for *TERRITORY,
-+     XPG_CODESET                 for *CODESET,
-+     XPG_NORM_CODESET            for *NORMALIZED_CODESET,
-+     CEN_SPECIAL                 for *SPECIAL,
-+     CEN_SPONSOR                 for *SPONSOR,
-+     CEN_REVISION                for *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);
--extern char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
--                                 const char *msgid, size_t *lengthp))
--     internal_function;
-+/* 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 (const char *name);
- #endif        /* loadinfo.h */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/loadmsgcat.c psmisc-20.2.works.clean/intl/loadmsgcat.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/loadmsgcat.c      2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/loadmsgcat.c  2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Load needed message catalogs.
--   Copyright (C) 1995-1999, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- /* Tell glibc's <string.h> to provide a prototype for mempcpy().
-    This must come before <config.h> because <config.h> may include
-@@ -33,17 +34,23 @@
- #include <sys/stat.h>
- #ifdef __GNUC__
-+# undef  alloca
- # define alloca __builtin_alloca
- # define HAVE_ALLOCA 1
- #else
--# if defined HAVE_ALLOCA_H || defined _LIBC
--#  include <alloca.h>
-+# ifdef _MSC_VER
-+#  include <malloc.h>
-+#  define alloca _alloca
- # else
--#  ifdef _AIX
-- #pragma alloca
-+#  if defined HAVE_ALLOCA_H || defined _LIBC
-+#   include <alloca.h>
- #  else
--#   ifndef alloca
-+#   ifdef _AIX
-+ #pragma alloca
-+#   else
-+#    ifndef alloca
- char *alloca ();
-+#    endif
- #   endif
- #  endif
- # endif
-@@ -70,13 +77,380 @@
- # undef HAVE_MMAP
- #endif
--#include "gettext.h"
-+#if defined HAVE_STDINT_H_WITH_UINTMAX || defined _LIBC
-+# include <stdint.h>
-+#endif
-+#if defined HAVE_INTTYPES_H || defined _LIBC
-+# include <inttypes.h>
-+#endif
-+
-+#include "gmo.h"
- #include "gettextP.h"
-+#include "hash-string.h"
-+#include "plural-exp.h"
- #ifdef _LIBC
- # include "../locale/localeinfo.h"
- #endif
-+/* Provide fallback values for macros that ought to be defined in <inttypes.h>.
-+   Note that our fallback values need not be literal strings, because we don't
-+   use them with preprocessor string concatenation.  */
-+#if !defined PRId8 || PRI_MACROS_BROKEN
-+# undef PRId8
-+# define PRId8 "d"
-+#endif
-+#if !defined PRIi8 || PRI_MACROS_BROKEN
-+# undef PRIi8
-+# define PRIi8 "i"
-+#endif
-+#if !defined PRIo8 || PRI_MACROS_BROKEN
-+# undef PRIo8
-+# define PRIo8 "o"
-+#endif
-+#if !defined PRIu8 || PRI_MACROS_BROKEN
-+# undef PRIu8
-+# define PRIu8 "u"
-+#endif
-+#if !defined PRIx8 || PRI_MACROS_BROKEN
-+# undef PRIx8
-+# define PRIx8 "x"
-+#endif
-+#if !defined PRIX8 || PRI_MACROS_BROKEN
-+# undef PRIX8
-+# define PRIX8 "X"
-+#endif
-+#if !defined PRId16 || PRI_MACROS_BROKEN
-+# undef PRId16
-+# define PRId16 "d"
-+#endif
-+#if !defined PRIi16 || PRI_MACROS_BROKEN
-+# undef PRIi16
-+# define PRIi16 "i"
-+#endif
-+#if !defined PRIo16 || PRI_MACROS_BROKEN
-+# undef PRIo16
-+# define PRIo16 "o"
-+#endif
-+#if !defined PRIu16 || PRI_MACROS_BROKEN
-+# undef PRIu16
-+# define PRIu16 "u"
-+#endif
-+#if !defined PRIx16 || PRI_MACROS_BROKEN
-+# undef PRIx16
-+# define PRIx16 "x"
-+#endif
-+#if !defined PRIX16 || PRI_MACROS_BROKEN
-+# undef PRIX16
-+# define PRIX16 "X"
-+#endif
-+#if !defined PRId32 || PRI_MACROS_BROKEN
-+# undef PRId32
-+# define PRId32 "d"
-+#endif
-+#if !defined PRIi32 || PRI_MACROS_BROKEN
-+# undef PRIi32
-+# define PRIi32 "i"
-+#endif
-+#if !defined PRIo32 || PRI_MACROS_BROKEN
-+# undef PRIo32
-+# define PRIo32 "o"
-+#endif
-+#if !defined PRIu32 || PRI_MACROS_BROKEN
-+# undef PRIu32
-+# define PRIu32 "u"
-+#endif
-+#if !defined PRIx32 || PRI_MACROS_BROKEN
-+# undef PRIx32
-+# define PRIx32 "x"
-+#endif
-+#if !defined PRIX32 || PRI_MACROS_BROKEN
-+# undef PRIX32
-+# define PRIX32 "X"
-+#endif
-+#if !defined PRId64 || PRI_MACROS_BROKEN
-+# undef PRId64
-+# define PRId64 (sizeof (long) == 8 ? "ld" : "lld")
-+#endif
-+#if !defined PRIi64 || PRI_MACROS_BROKEN
-+# undef PRIi64
-+# define PRIi64 (sizeof (long) == 8 ? "li" : "lli")
-+#endif
-+#if !defined PRIo64 || PRI_MACROS_BROKEN
-+# undef PRIo64
-+# define PRIo64 (sizeof (long) == 8 ? "lo" : "llo")
-+#endif
-+#if !defined PRIu64 || PRI_MACROS_BROKEN
-+# undef PRIu64
-+# define PRIu64 (sizeof (long) == 8 ? "lu" : "llu")
-+#endif
-+#if !defined PRIx64 || PRI_MACROS_BROKEN
-+# undef PRIx64
-+# define PRIx64 (sizeof (long) == 8 ? "lx" : "llx")
-+#endif
-+#if !defined PRIX64 || PRI_MACROS_BROKEN
-+# undef PRIX64
-+# define PRIX64 (sizeof (long) == 8 ? "lX" : "llX")
-+#endif
-+#if !defined PRIdLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIdLEAST8
-+# define PRIdLEAST8 "d"
-+#endif
-+#if !defined PRIiLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIiLEAST8
-+# define PRIiLEAST8 "i"
-+#endif
-+#if !defined PRIoLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIoLEAST8
-+# define PRIoLEAST8 "o"
-+#endif
-+#if !defined PRIuLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIuLEAST8
-+# define PRIuLEAST8 "u"
-+#endif
-+#if !defined PRIxLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIxLEAST8
-+# define PRIxLEAST8 "x"
-+#endif
-+#if !defined PRIXLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIXLEAST8
-+# define PRIXLEAST8 "X"
-+#endif
-+#if !defined PRIdLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIdLEAST16
-+# define PRIdLEAST16 "d"
-+#endif
-+#if !defined PRIiLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIiLEAST16
-+# define PRIiLEAST16 "i"
-+#endif
-+#if !defined PRIoLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIoLEAST16
-+# define PRIoLEAST16 "o"
-+#endif
-+#if !defined PRIuLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIuLEAST16
-+# define PRIuLEAST16 "u"
-+#endif
-+#if !defined PRIxLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIxLEAST16
-+# define PRIxLEAST16 "x"
-+#endif
-+#if !defined PRIXLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIXLEAST16
-+# define PRIXLEAST16 "X"
-+#endif
-+#if !defined PRIdLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIdLEAST32
-+# define PRIdLEAST32 "d"
-+#endif
-+#if !defined PRIiLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIiLEAST32
-+# define PRIiLEAST32 "i"
-+#endif
-+#if !defined PRIoLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIoLEAST32
-+# define PRIoLEAST32 "o"
-+#endif
-+#if !defined PRIuLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIuLEAST32
-+# define PRIuLEAST32 "u"
-+#endif
-+#if !defined PRIxLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIxLEAST32
-+# define PRIxLEAST32 "x"
-+#endif
-+#if !defined PRIXLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIXLEAST32
-+# define PRIXLEAST32 "X"
-+#endif
-+#if !defined PRIdLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIdLEAST64
-+# define PRIdLEAST64 PRId64
-+#endif
-+#if !defined PRIiLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIiLEAST64
-+# define PRIiLEAST64 PRIi64
-+#endif
-+#if !defined PRIoLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIoLEAST64
-+# define PRIoLEAST64 PRIo64
-+#endif
-+#if !defined PRIuLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIuLEAST64
-+# define PRIuLEAST64 PRIu64
-+#endif
-+#if !defined PRIxLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIxLEAST64
-+# define PRIxLEAST64 PRIx64
-+#endif
-+#if !defined PRIXLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIXLEAST64
-+# define PRIXLEAST64 PRIX64
-+#endif
-+#if !defined PRIdFAST8 || PRI_MACROS_BROKEN
-+# undef PRIdFAST8
-+# define PRIdFAST8 "d"
-+#endif
-+#if !defined PRIiFAST8 || PRI_MACROS_BROKEN
-+# undef PRIiFAST8
-+# define PRIiFAST8 "i"
-+#endif
-+#if !defined PRIoFAST8 || PRI_MACROS_BROKEN
-+# undef PRIoFAST8
-+# define PRIoFAST8 "o"
-+#endif
-+#if !defined PRIuFAST8 || PRI_MACROS_BROKEN
-+# undef PRIuFAST8
-+# define PRIuFAST8 "u"
-+#endif
-+#if !defined PRIxFAST8 || PRI_MACROS_BROKEN
-+# undef PRIxFAST8
-+# define PRIxFAST8 "x"
-+#endif
-+#if !defined PRIXFAST8 || PRI_MACROS_BROKEN
-+# undef PRIXFAST8
-+# define PRIXFAST8 "X"
-+#endif
-+#if !defined PRIdFAST16 || PRI_MACROS_BROKEN
-+# undef PRIdFAST16
-+# define PRIdFAST16 "d"
-+#endif
-+#if !defined PRIiFAST16 || PRI_MACROS_BROKEN
-+# undef PRIiFAST16
-+# define PRIiFAST16 "i"
-+#endif
-+#if !defined PRIoFAST16 || PRI_MACROS_BROKEN
-+# undef PRIoFAST16
-+# define PRIoFAST16 "o"
-+#endif
-+#if !defined PRIuFAST16 || PRI_MACROS_BROKEN
-+# undef PRIuFAST16
-+# define PRIuFAST16 "u"
-+#endif
-+#if !defined PRIxFAST16 || PRI_MACROS_BROKEN
-+# undef PRIxFAST16
-+# define PRIxFAST16 "x"
-+#endif
-+#if !defined PRIXFAST16 || PRI_MACROS_BROKEN
-+# undef PRIXFAST16
-+# define PRIXFAST16 "X"
-+#endif
-+#if !defined PRIdFAST32 || PRI_MACROS_BROKEN
-+# undef PRIdFAST32
-+# define PRIdFAST32 "d"
-+#endif
-+#if !defined PRIiFAST32 || PRI_MACROS_BROKEN
-+# undef PRIiFAST32
-+# define PRIiFAST32 "i"
-+#endif
-+#if !defined PRIoFAST32 || PRI_MACROS_BROKEN
-+# undef PRIoFAST32
-+# define PRIoFAST32 "o"
-+#endif
-+#if !defined PRIuFAST32 || PRI_MACROS_BROKEN
-+# undef PRIuFAST32
-+# define PRIuFAST32 "u"
-+#endif
-+#if !defined PRIxFAST32 || PRI_MACROS_BROKEN
-+# undef PRIxFAST32
-+# define PRIxFAST32 "x"
-+#endif
-+#if !defined PRIXFAST32 || PRI_MACROS_BROKEN
-+# undef PRIXFAST32
-+# define PRIXFAST32 "X"
-+#endif
-+#if !defined PRIdFAST64 || PRI_MACROS_BROKEN
-+# undef PRIdFAST64
-+# define PRIdFAST64 PRId64
-+#endif
-+#if !defined PRIiFAST64 || PRI_MACROS_BROKEN
-+# undef PRIiFAST64
-+# define PRIiFAST64 PRIi64
-+#endif
-+#if !defined PRIoFAST64 || PRI_MACROS_BROKEN
-+# undef PRIoFAST64
-+# define PRIoFAST64 PRIo64
-+#endif
-+#if !defined PRIuFAST64 || PRI_MACROS_BROKEN
-+# undef PRIuFAST64
-+# define PRIuFAST64 PRIu64
-+#endif
-+#if !defined PRIxFAST64 || PRI_MACROS_BROKEN
-+# undef PRIxFAST64
-+# define PRIxFAST64 PRIx64
-+#endif
-+#if !defined PRIXFAST64 || PRI_MACROS_BROKEN
-+# undef PRIXFAST64
-+# define PRIXFAST64 PRIX64
-+#endif
-+#if !defined PRIdMAX || PRI_MACROS_BROKEN
-+# undef PRIdMAX
-+# define PRIdMAX (sizeof (uintmax_t) == sizeof (long) ? "ld" : "lld")
-+#endif
-+#if !defined PRIiMAX || PRI_MACROS_BROKEN
-+# undef PRIiMAX
-+# define PRIiMAX (sizeof (uintmax_t) == sizeof (long) ? "li" : "lli")
-+#endif
-+#if !defined PRIoMAX || PRI_MACROS_BROKEN
-+# undef PRIoMAX
-+# define PRIoMAX (sizeof (uintmax_t) == sizeof (long) ? "lo" : "llo")
-+#endif
-+#if !defined PRIuMAX || PRI_MACROS_BROKEN
-+# undef PRIuMAX
-+# define PRIuMAX (sizeof (uintmax_t) == sizeof (long) ? "lu" : "llu")
-+#endif
-+#if !defined PRIxMAX || PRI_MACROS_BROKEN
-+# undef PRIxMAX
-+# define PRIxMAX (sizeof (uintmax_t) == sizeof (long) ? "lx" : "llx")
-+#endif
-+#if !defined PRIXMAX || PRI_MACROS_BROKEN
-+# undef PRIXMAX
-+# define PRIXMAX (sizeof (uintmax_t) == sizeof (long) ? "lX" : "llX")
-+#endif
-+#if !defined PRIdPTR || PRI_MACROS_BROKEN
-+# undef PRIdPTR
-+# define PRIdPTR \
-+  (sizeof (void *) == sizeof (long) ? "ld" : \
-+   sizeof (void *) == sizeof (int) ? "d" : \
-+   "lld")
-+#endif
-+#if !defined PRIiPTR || PRI_MACROS_BROKEN
-+# undef PRIiPTR
-+# define PRIiPTR \
-+  (sizeof (void *) == sizeof (long) ? "li" : \
-+   sizeof (void *) == sizeof (int) ? "i" : \
-+   "lli")
-+#endif
-+#if !defined PRIoPTR || PRI_MACROS_BROKEN
-+# undef PRIoPTR
-+# define PRIoPTR \
-+  (sizeof (void *) == sizeof (long) ? "lo" : \
-+   sizeof (void *) == sizeof (int) ? "o" : \
-+   "llo")
-+#endif
-+#if !defined PRIuPTR || PRI_MACROS_BROKEN
-+# undef PRIuPTR
-+# define PRIuPTR \
-+  (sizeof (void *) == sizeof (long) ? "lu" : \
-+   sizeof (void *) == sizeof (int) ? "u" : \
-+   "llu")
-+#endif
-+#if !defined PRIxPTR || PRI_MACROS_BROKEN
-+# undef PRIxPTR
-+# define PRIxPTR \
-+  (sizeof (void *) == sizeof (long) ? "lx" : \
-+   sizeof (void *) == sizeof (int) ? "x" : \
-+   "llx")
-+#endif
-+#if !defined PRIXPTR || PRI_MACROS_BROKEN
-+# undef PRIXPTR
-+# define PRIXPTR \
-+  (sizeof (void *) == sizeof (long) ? "lX" : \
-+   sizeof (void *) == sizeof (int) ? "X" : \
-+   "llX")
-+#endif
-+
- /* @@ end of prolog @@ */
- #ifdef _LIBC
-@@ -90,16 +464,6 @@
- # define munmap __munmap
- #endif
--/* Names for the libintl functions are a problem.  They must not clash
--   with existing names and they should follow ANSI C.  But this source
--   code is also used in GNU C Library where the names have a __
--   prefix.  So we have to make a difference here.  */
--#ifdef _LIBC
--# define PLURAL_PARSE __gettextparse
--#else
--# define PLURAL_PARSE gettextparse__
--#endif
--
- /* For those losing systems which don't have `alloca' we have to add
-    some additional code emulating it.  */
- #ifdef HAVE_ALLOCA
-@@ -126,85 +490,424 @@
- # define O_BINARY 0
- #endif
-+
- /* We need a sign, whether a new catalog was loaded, which can be associated
-    with all translations.  This is important if the translations are
-    cached by one of GCC's features.  */
- int _nl_msg_cat_cntr;
--#if defined __GNUC__ \
--    || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
--/* These structs are the constant expression for the germanic plural
--   form determination.  It represents the expression  "n != 1".  */
--static const struct expression plvar =
--{
--  .nargs = 0,
--  .operation = var,
--};
--static const struct expression plone =
--{
--  .nargs = 0,
--  .operation = num,
--  .val =
--  {
--    .num = 1
--  }
--};
--static struct expression germanic_plural =
-+/* Expand a system dependent string segment.  Return NULL if unsupported.  */
-+static const char *
-+get_sysdep_segment_value (const char *name)
- {
--  .nargs = 2,
--  .operation = not_equal,
--  .val =
--  {
--    .args =
-+  /* Test for an ISO C 99 section 7.8.1 format string directive.
-+     Syntax:
-+     P R I { d | i | o | u | x | X }
-+     { { | LEAST | FAST } { 8 | 16 | 32 | 64 } | MAX | PTR }  */
-+  /* We don't use a table of 14 times 6 'const char *' strings here, because
-+     data relocations cost startup time.  */
-+  if (name[0] == 'P' && name[1] == 'R' && name[2] == 'I')
-     {
--      [0] = (struct expression *) &plvar,
--      [1] = (struct expression *) &plone
-+      if (name[3] == 'd' || name[3] == 'i' || name[3] == 'o' || name[3] == 'u'
-+        || name[3] == 'x' || name[3] == 'X')
-+      {
-+        if (name[4] == '8' && name[5] == '\0')
-+          {
-+            if (name[3] == 'd')
-+              return PRId8;
-+            if (name[3] == 'i')
-+              return PRIi8;
-+            if (name[3] == 'o')
-+              return PRIo8;
-+            if (name[3] == 'u')
-+              return PRIu8;
-+            if (name[3] == 'x')
-+              return PRIx8;
-+            if (name[3] == 'X')
-+              return PRIX8;
-+            abort ();
-+          }
-+        if (name[4] == '1' && name[5] == '6' && name[6] == '\0')
-+          {
-+            if (name[3] == 'd')
-+              return PRId16;
-+            if (name[3] == 'i')
-+              return PRIi16;
-+            if (name[3] == 'o')
-+              return PRIo16;
-+            if (name[3] == 'u')
-+              return PRIu16;
-+            if (name[3] == 'x')
-+              return PRIx16;
-+            if (name[3] == 'X')
-+              return PRIX16;
-+            abort ();
-+          }
-+        if (name[4] == '3' && name[5] == '2' && name[6] == '\0')
-+          {
-+            if (name[3] == 'd')
-+              return PRId32;
-+            if (name[3] == 'i')
-+              return PRIi32;
-+            if (name[3] == 'o')
-+              return PRIo32;
-+            if (name[3] == 'u')
-+              return PRIu32;
-+            if (name[3] == 'x')
-+              return PRIx32;
-+            if (name[3] == 'X')
-+              return PRIX32;
-+            abort ();
-+          }
-+        if (name[4] == '6' && name[5] == '4' && name[6] == '\0')
-+          {
-+            if (name[3] == 'd')
-+              return PRId64;
-+            if (name[3] == 'i')
-+              return PRIi64;
-+            if (name[3] == 'o')
-+              return PRIo64;
-+            if (name[3] == 'u')
-+              return PRIu64;
-+            if (name[3] == 'x')
-+              return PRIx64;
-+            if (name[3] == 'X')
-+              return PRIX64;
-+            abort ();
-+          }
-+        if (name[4] == 'L' && name[5] == 'E' && name[6] == 'A'
-+            && name[7] == 'S' && name[8] == 'T')
-+          {
-+            if (name[9] == '8' && name[10] == '\0')
-+              {
-+                if (name[3] == 'd')
-+                  return PRIdLEAST8;
-+                if (name[3] == 'i')
-+                  return PRIiLEAST8;
-+                if (name[3] == 'o')
-+                  return PRIoLEAST8;
-+                if (name[3] == 'u')
-+                  return PRIuLEAST8;
-+                if (name[3] == 'x')
-+                  return PRIxLEAST8;
-+                if (name[3] == 'X')
-+                  return PRIXLEAST8;
-+                abort ();
-+              }
-+            if (name[9] == '1' && name[10] == '6' && name[11] == '\0')
-+              {
-+                if (name[3] == 'd')
-+                  return PRIdLEAST16;
-+                if (name[3] == 'i')
-+                  return PRIiLEAST16;
-+                if (name[3] == 'o')
-+                  return PRIoLEAST16;
-+                if (name[3] == 'u')
-+                  return PRIuLEAST16;
-+                if (name[3] == 'x')
-+                  return PRIxLEAST16;
-+                if (name[3] == 'X')
-+                  return PRIXLEAST16;
-+                abort ();
-+              }
-+            if (name[9] == '3' && name[10] == '2' && name[11] == '\0')
-+              {
-+                if (name[3] == 'd')
-+                  return PRIdLEAST32;
-+                if (name[3] == 'i')
-+                  return PRIiLEAST32;
-+                if (name[3] == 'o')
-+                  return PRIoLEAST32;
-+                if (name[3] == 'u')
-+                  return PRIuLEAST32;
-+                if (name[3] == 'x')
-+                  return PRIxLEAST32;
-+                if (name[3] == 'X')
-+                  return PRIXLEAST32;
-+                abort ();
-+              }
-+            if (name[9] == '6' && name[10] == '4' && name[11] == '\0')
-+              {
-+                if (name[3] == 'd')
-+                  return PRIdLEAST64;
-+                if (name[3] == 'i')
-+                  return PRIiLEAST64;
-+                if (name[3] == 'o')
-+                  return PRIoLEAST64;
-+                if (name[3] == 'u')
-+                  return PRIuLEAST64;
-+                if (name[3] == 'x')
-+                  return PRIxLEAST64;
-+                if (name[3] == 'X')
-+                  return PRIXLEAST64;
-+                abort ();
-+              }
-+          }
-+        if (name[4] == 'F' && name[5] == 'A' && name[6] == 'S'
-+            && name[7] == 'T')
-+          {
-+            if (name[8] == '8' && name[9] == '\0')
-+              {
-+                if (name[3] == 'd')
-+                  return PRIdFAST8;
-+                if (name[3] == 'i')
-+                  return PRIiFAST8;
-+                if (name[3] == 'o')
-+                  return PRIoFAST8;
-+                if (name[3] == 'u')
-+                  return PRIuFAST8;
-+                if (name[3] == 'x')
-+                  return PRIxFAST8;
-+                if (name[3] == 'X')
-+                  return PRIXFAST8;
-+                abort ();
-+              }
-+            if (name[8] == '1' && name[9] == '6' && name[10] == '\0')
-+              {
-+                if (name[3] == 'd')
-+                  return PRIdFAST16;
-+                if (name[3] == 'i')
-+                  return PRIiFAST16;
-+                if (name[3] == 'o')
-+                  return PRIoFAST16;
-+                if (name[3] == 'u')
-+                  return PRIuFAST16;
-+                if (name[3] == 'x')
-+                  return PRIxFAST16;
-+                if (name[3] == 'X')
-+                  return PRIXFAST16;
-+                abort ();
-+              }
-+            if (name[8] == '3' && name[9] == '2' && name[10] == '\0')
-+              {
-+                if (name[3] == 'd')
-+                  return PRIdFAST32;
-+                if (name[3] == 'i')
-+                  return PRIiFAST32;
-+                if (name[3] == 'o')
-+                  return PRIoFAST32;
-+                if (name[3] == 'u')
-+                  return PRIuFAST32;
-+                if (name[3] == 'x')
-+                  return PRIxFAST32;
-+                if (name[3] == 'X')
-+                  return PRIXFAST32;
-+                abort ();
-+              }
-+            if (name[8] == '6' && name[9] == '4' && name[10] == '\0')
-+              {
-+                if (name[3] == 'd')
-+                  return PRIdFAST64;
-+                if (name[3] == 'i')
-+                  return PRIiFAST64;
-+                if (name[3] == 'o')
-+                  return PRIoFAST64;
-+                if (name[3] == 'u')
-+                  return PRIuFAST64;
-+                if (name[3] == 'x')
-+                  return PRIxFAST64;
-+                if (name[3] == 'X')
-+                  return PRIXFAST64;
-+                abort ();
-+              }
-+          }
-+        if (name[4] == 'M' && name[5] == 'A' && name[6] == 'X'
-+            && name[7] == '\0')
-+          {
-+            if (name[3] == 'd')
-+              return PRIdMAX;
-+            if (name[3] == 'i')
-+              return PRIiMAX;
-+            if (name[3] == 'o')
-+              return PRIoMAX;
-+            if (name[3] == 'u')
-+              return PRIuMAX;
-+            if (name[3] == 'x')
-+              return PRIxMAX;
-+            if (name[3] == 'X')
-+              return PRIXMAX;
-+            abort ();
-+          }
-+        if (name[4] == 'P' && name[5] == 'T' && name[6] == 'R'
-+            && name[7] == '\0')
-+          {
-+            if (name[3] == 'd')
-+              return PRIdPTR;
-+            if (name[3] == 'i')
-+              return PRIiPTR;
-+            if (name[3] == 'o')
-+              return PRIoPTR;
-+            if (name[3] == 'u')
-+              return PRIuPTR;
-+            if (name[3] == 'x')
-+              return PRIxPTR;
-+            if (name[3] == 'X')
-+              return PRIXPTR;
-+            abort ();
-+          }
-+      }
-     }
--  }
--};
-+  /* 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;
-+}
--# define INIT_GERMANIC_PLURAL()
-+/* Initialize the codeset dependent parts of an opened message catalog.
-+   Return the header entry.  */
-+const char *
-+internal_function
-+_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
-+     entry does not exist or if this does not contain the `charset='
-+     information, we will assume the charset matches the one the
-+     current locale and we don't have to perform any conversion.  */
-+  char *nullentry;
-+  size_t nullentrylen;
-+  /* Preinitialize fields, to avoid recursion during _nl_find_msg.  */
-+  domain->codeset_cntr =
-+    (domainbinding != NULL ? domainbinding->codeset_cntr : 0);
-+#ifdef _LIBC
-+  domain->conv = (__gconv_t) -1;
- #else
-+# if HAVE_ICONV
-+  domain->conv = (iconv_t) -1;
-+# endif
-+#endif
-+  domain->conv_tab = NULL;
--/* For compilers without support for ISO C 99 struct/union initializers:
--   Initialization at run-time.  */
--
--static struct expression plvar;
--static struct expression plone;
--static struct expression germanic_plural;
-+  /* Get the header entry.  */
-+  nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen);
--static void
--init_germanic_plural ()
--{
--  if (plone.val.num == 0)
-+  if (nullentry != NULL)
-     {
--      plvar.nargs = 0;
--      plvar.operation = var;
-+#if defined _LIBC || HAVE_ICONV
-+      const char *charsetstr;
--      plone.nargs = 0;
--      plone.operation = num;
--      plone.val.num = 1;
-+      charsetstr = strstr (nullentry, "charset=");
-+      if (charsetstr != NULL)
-+      {
-+        size_t len;
-+        char *charset;
-+        const char *outcharset;
--      germanic_plural.nargs = 2;
--      germanic_plural.operation = not_equal;
--      germanic_plural.val.args[0] = &plvar;
--      germanic_plural.val.args[1] = &plone;
-+        charsetstr += strlen ("charset=");
-+        len = strcspn (charsetstr, " \t\n");
-+
-+        charset = (char *) alloca (len + 1);
-+# if defined _LIBC || HAVE_MEMPCPY
-+        *((char *) mempcpy (charset, charsetstr, len)) = '\0';
-+# else
-+        memcpy (charset, charsetstr, len);
-+        charset[len] = '\0';
-+# endif
-+
-+        /* The output charset should normally be determined by the
-+           locale.  But sometimes the locale is not used or not correctly
-+           set up, so we provide a possibility for the user to override
-+           this.  Moreover, the value specified through
-+           bind_textdomain_codeset overrides both.  */
-+        if (domainbinding != NULL && domainbinding->codeset != NULL)
-+          outcharset = domainbinding->codeset;
-+        else
-+          {
-+            outcharset = getenv ("OUTPUT_CHARSET");
-+            if (outcharset == NULL || outcharset[0] == '\0')
-+              {
-+# ifdef _LIBC
-+                outcharset = _NL_CURRENT (LC_CTYPE, CODESET);
-+# else
-+#  if HAVE_ICONV
-+                extern const char *locale_charset (void);
-+                outcharset = locale_charset ();
-+#  endif
-+# endif
-+              }
-+          }
-+
-+# ifdef _LIBC
-+        /* We always want to use transliteration.  */
-+        outcharset = norm_add_slashes (outcharset, "TRANSLIT");
-+        charset = norm_add_slashes (charset, NULL);
-+        if (__gconv_open (outcharset, charset, &domain->conv,
-+                          GCONV_AVOID_NOCONV)
-+            != __GCONV_OK)
-+          domain->conv = (__gconv_t) -1;
-+# else
-+#  if HAVE_ICONV
-+        /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
-+           we want to use transliteration.  */
-+#   if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \
-+       || _LIBICONV_VERSION >= 0x0105
-+        if (strchr (outcharset, '/') == NULL)
-+          {
-+            char *tmp;
-+
-+            len = strlen (outcharset);
-+            tmp = (char *) alloca (len + 10 + 1);
-+            memcpy (tmp, outcharset, len);
-+            memcpy (tmp + len, "//TRANSLIT", 10 + 1);
-+            outcharset = tmp;
-+
-+            domain->conv = iconv_open (outcharset, charset);
-+
-+            freea (outcharset);
-+          }
-+        else
-+#   endif
-+          domain->conv = iconv_open (outcharset, charset);
-+#  endif
-+# endif
-+
-+        freea (charset);
-+      }
-+#endif /* _LIBC || HAVE_ICONV */
-     }
-+
-+  return nullentry;
- }
--# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
-+/* Frees the codeset dependent parts of an opened message catalog.  */
-+void
-+internal_function
-+_nl_free_domain_conv (struct loaded_domain *domain)
-+{
-+  if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
-+    free (domain->conv_tab);
-+#ifdef _LIBC
-+  if (domain->conv != (__gconv_t) -1)
-+    __gconv_close (domain->conv);
-+#else
-+# if HAVE_ICONV
-+  if (domain->conv != (iconv_t) -1)
-+    iconv_close (domain->conv);
-+# endif
- #endif
--
-+}
- /* Load the message catalogs specified by FILENAME.  If it is no valid
-    message catalog do nothing.  */
- void
- internal_function
--_nl_load_domain (domain_file)
--     struct loaded_l10nfile *domain_file;
-+_nl_load_domain (struct loaded_l10nfile *domain_file,
-+               struct binding *domainbinding)
- {
-   int fd;
-   size_t size;
-@@ -216,12 +919,16 @@
-   struct mo_file_header *data = (struct mo_file_header *) -1;
-   int use_mmap = 0;
-   struct loaded_domain *domain;
--  char *nullentry;
--  size_t nullentrylen;
-+  int revision;
-+  const char *nullentry;
-   domain_file->decided = 1;
-   domain_file->data = NULL;
-+  /* Note that it would be useless to store domainbinding in domain_file
-+     because domainbinding might be == NULL now but != NULL later (after
-+     a call to bind_textdomain_codeset).  */
-+
-   /* If the record does not represent a valid locale the FILENAME
-      might be NULL.  This can happen when according to the given
-      specification the locale file name is different for XPG and CEN
-@@ -320,22 +1027,353 @@
-   domain->use_mmap = use_mmap;
-   domain->mmap_size = size;
-   domain->must_swap = data->magic != _MAGIC;
-+  domain->malloced = NULL;
-   /* Fill in the information about the available tables.  */
--  switch (W (domain->must_swap, data->revision))
-+  revision = W (domain->must_swap, data->revision);
-+  /* 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 = (struct string_desc *)
-+      domain->orig_tab = (const struct string_desc *)
-       ((char *) data + W (domain->must_swap, data->orig_tab_offset));
--      domain->trans_tab = (struct string_desc *)
-+      domain->trans_tab = (const struct string_desc *)
-       ((char *) data + W (domain->must_swap, data->trans_tab_offset));
-       domain->hash_size = W (domain->must_swap, data->hash_tab_size);
--      domain->hash_tab = (nls_uint32 *)
--      ((char *) data + W (domain->must_swap, data->hash_tab_offset));
-+      domain->hash_tab =
-+      (domain->hash_size > 2
-+       ? (const nls_uint32 *)
-+         ((char *) data + W (domain->must_swap, data->hash_tab_offset))
-+       : NULL);
-+      domain->must_swap_hash_tab = domain->must_swap;
-+
-+      /* Now dispatch on the minor revision.  */
-+      switch (revision & 0xffff)
-+      {
-+      case 0:
-+        domain->n_sysdep_strings = 0;
-+        domain->orig_sysdep_tab = NULL;
-+        domain->trans_sysdep_tab = NULL;
-+        break;
-+      case 1:
-+      default:
-+        {
-+          nls_uint32 n_sysdep_strings;
-+
-+          if (domain->hash_tab == NULL)
-+            /* This is invalid.  These minor revisions need a hash table.  */
-+            goto invalid;
-+
-+          n_sysdep_strings =
-+            W (domain->must_swap, data->n_sysdep_strings);
-+          if (n_sysdep_strings > 0)
-+            {
-+              nls_uint32 n_sysdep_segments;
-+              const struct sysdep_segment *sysdep_segments;
-+              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, j;
-+
-+              /* Get the values of the system dependent segments.  */
-+              n_sysdep_segments =
-+                W (domain->must_swap, data->n_sysdep_segments);
-+              sysdep_segments = (const struct sysdep_segment *)
-+                ((char *) data
-+                 + W (domain->must_swap, data->sysdep_segments_offset));
-+              sysdep_segment_values =
-+                alloca (n_sysdep_segments * sizeof (const char *));
-+              for (i = 0; i < n_sysdep_segments; i++)
-+                {
-+                  const char *name =
-+                    (char *) data
-+                    + W (domain->must_swap, sysdep_segments[i].offset);
-+                  nls_uint32 namelen =
-+                    W (domain->must_swap, sysdep_segments[i].length);
-+
-+                  if (!(namelen > 0 && name[namelen - 1] == '\0'))
-+                    {
-+                      freea (sysdep_segment_values);
-+                      goto invalid;
-+                    }
-+
-+                  sysdep_segment_values[i] = get_sysdep_segment_value (name);
-+                }
-+
-+              orig_sysdep_tab = (const nls_uint32 *)
-+                ((char *) data
-+                 + W (domain->must_swap, data->orig_sysdep_tab_offset));
-+              trans_sysdep_tab = (const nls_uint32 *)
-+                ((char *) data
-+                 + 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.
-+                 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++)
-+                {
-+                  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++)
-+                          {
-+                            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)
-+                              {
-+                                /* 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]);
-+                          }
-+
-+                      needs[j] = need;
-+                      if (!valid)
-+                        break;
-+                    }
-+
-+                  if (valid)
-+                    {
-+                      n_inmem_sysdep_strings++;
-+                      memneed += needs[0] + needs[1];
-+                    }
-+                }
-+              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++)
-+                    {
-+                      int valid = 1;
-+
-+                      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]));
-+                          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 (valid)
-+                        {
-+                          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]));
-+                              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;
-+                                }
-+                            }
-+
-+                          k++;
-+                        }
-+                    }
-+                  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++)
-+                    {
-+                      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 (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;
-+                        }
-+                    }
-+
-+                  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->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;
-+                }
-+
-+              freea (sysdep_segment_values);
-+            }
-+          else
-+            {
-+              domain->n_sysdep_strings = 0;
-+              domain->orig_sysdep_tab = NULL;
-+              domain->trans_sysdep_tab = NULL;
-+            }
-+        }
-+        break;
-+      }
-       break;
-     default:
-       /* This is an invalid revision.  */
-+    invalid:
-+      /* This is an invalid .mo file.  */
-+      if (domain->malloced)
-+      free (domain->malloced);
- #ifdef HAVE_MMAP
-       if (use_mmap)
-       munmap ((caddr_t) data, size);
-@@ -347,154 +1385,28 @@
-       return;
-     }
--  /* Now find out about the character set the file is encoded with.
--     This can be found (in textual form) in the entry "".  If this
--     entry does not exist or if this does not contain the `charset='
--     information, we will assume the charset matches the one the
--     current locale and we don't have to perform any conversion.  */
--#ifdef _LIBC
--  domain->conv = (__gconv_t) -1;
--#else
--# if HAVE_ICONV
--  domain->conv = (iconv_t) -1;
--# endif
--#endif
--  domain->conv_tab = NULL;
--  nullentry = _nl_find_msg (domain_file, "", &nullentrylen);
--  if (nullentry != NULL)
--    {
--#if defined _LIBC || HAVE_ICONV
--      const char *charsetstr;
--
--      charsetstr = strstr (nullentry, "charset=");
--      if (charsetstr != NULL)
--      {
--        size_t len;
--        char *charset;
--        const char *outcharset;
--
--        charsetstr += strlen ("charset=");
--        len = strcspn (charsetstr, " \t\n");
--
--        charset = (char *) alloca (len + 1);
--# if defined _LIBC || HAVE_MEMPCPY
--        *((char *) mempcpy (charset, charsetstr, len)) = '\0';
--# else
--        memcpy (charset, charsetstr, len);
--        charset[len] = '\0';
--# endif
--
--        /* The output charset should normally be determined by the
--           locale.  But sometimes the locale is not used or not correctly
--           set up, so we provide a possibility for the user to override
--           this.  Moreover, the value specified through
--           bind_textdomain_codeset overrides both.  */
--        if (domain_file->domainbinding != NULL
--            && domain_file->domainbinding->codeset != NULL)
--          outcharset = domain_file->domainbinding->codeset;
--        else
--          {
--            outcharset = getenv ("OUTPUT_CHARSET");
--            if (outcharset == NULL || outcharset[0] == '\0')
--              {
--# ifdef _LIBC
--                outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
--# else
--#  if HAVE_ICONV
--                extern const char *locale_charset (void);
--                outcharset = locale_charset ();
--#  endif
--# endif
--              }
--          }
--
--# ifdef _LIBC
--        /* We always want to use transliteration.  */
--        outcharset = norm_add_slashes (outcharset, "TRANSLIT");
--        charset = norm_add_slashes (charset, NULL);
--        if (__gconv_open (outcharset, charset, &domain->conv,
--                          GCONV_AVOID_NOCONV)
--            != __GCONV_OK)
--          domain->conv = (__gconv_t) -1;
--# else
--#  if HAVE_ICONV
--        domain->conv = iconv_open (outcharset, charset);
--#  endif
--# endif
--
--        freea (charset);
--      }
--#endif /* _LIBC || HAVE_ICONV */
--    }
-+  /* Now initialize the character set converter from the character set
-+     the file is encoded with (found in the header entry) to the domain's
-+     specified character set or the locale's character set.  */
-+  nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
-   /* Also look for a plural specification.  */
--  if (nullentry != NULL)
--    {
--      const char *plural;
--      const char *nplurals;
--
--      plural = strstr (nullentry, "plural=");
--      nplurals = strstr (nullentry, "nplurals=");
--      if (plural == NULL || nplurals == NULL)
--      goto no_plural;
--      else
--      {
--        /* First get the number.  */
--        char *endp;
--        unsigned long int n;
--        struct parse_args args;
--
--        nplurals += 9;
--        while (*nplurals != '\0' && isspace (*nplurals))
--          ++nplurals;
--#if defined HAVE_STRTOUL || defined _LIBC
--        n = strtoul (nplurals, &endp, 10);
--#else
--        for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
--          n = n * 10 + (*endp - '0');
--#endif
--        domain->nplurals = n;
--        if (nplurals == endp)
--          goto no_plural;
--
--        /* Due to the restrictions bison imposes onto the interface of the
--           scanner function we have to put the input string and the result
--           passed up from the parser into the same structure which address
--           is passed down to the parser.  */
--        plural += 7;
--        args.cp = plural;
--        if (PLURAL_PARSE (&args) != 0)
--          goto no_plural;
--        domain->plural = args.res;
--      }
--    }
--  else
--    {
--      /* By default we are using the Germanic form: singular form only
--         for `one', the plural form otherwise.  Yes, this is also what
--         English is using since English is a Germanic language.  */
--    no_plural:
--      INIT_GERMANIC_PLURAL ();
--      domain->plural = &germanic_plural;
--      domain->nplurals = 2;
--    }
-+  EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals);
- }
- #ifdef _LIBC
- void
- internal_function
--_nl_unload_domain (domain)
--     struct loaded_domain *domain;
-+_nl_unload_domain (struct loaded_domain *domain)
- {
--  if (domain->plural != &germanic_plural)
-+  if (domain->plural != &__gettext_germanic_plural)
-     __gettext_free_exp (domain->plural);
--  if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
--    free (domain->conv_tab);
-+  _nl_free_domain_conv (domain);
--  if (domain->conv != (__gconv_t) -1)
--    __gconv_close (domain->conv);
-+  if (domain->malloced)
-+    free (domain->malloced);
- # ifdef _POSIX_MAPPED_FILES
-   if (domain->use_mmap)
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/localcharset.c psmisc-20.2.works.clean/intl/localcharset.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/localcharset.c    2001-04-13 23:00:43.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/localcharset.c        2004-10-13 15:18:41.000000000 -0500
-@@ -1,6 +1,6 @@
- /* Determine a canonical name for the current locale's character encoding.
--   Copyright (C) 2000-2001 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
-@@ -17,12 +17,15 @@
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-    USA.  */
--/* Written by Bruno Haible <haible@clisp.cons.org>.  */
-+/* Written by Bruno Haible <bruno@clisp.org>.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-+/* Specification.  */
-+#include "localcharset.h"
-+
- #if HAVE_STDDEF_H
- # include <stddef.h>
- #endif
-@@ -42,7 +45,12 @@
- # define WIN32
- #endif
--#ifndef WIN32
-+#if defined __EMX__
-+/* Assume EMX program runs on OS/2, even if compiled under DOS.  */
-+# define OS2
-+#endif
-+
-+#if !defined WIN32
- # if HAVE_LANGINFO_CODESET
- #  include <langinfo.h>
- # else
-@@ -50,10 +58,25 @@
- #   include <locale.h>
- #  endif
- # endif
--#else /* WIN32 */
-+#elif defined WIN32
- # define WIN32_LEAN_AND_MEAN
- # include <windows.h>
- #endif
-+#if defined OS2
-+# define INCL_DOS
-+# include <os2.h>
-+#endif
-+
-+#if ENABLE_RELOCATABLE
-+# include "relocatable.h"
-+#else
-+# define relocate(pathname) (pathname)
-+#endif
-+
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+  /* Win32, OS/2, DOS */
-+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-+#endif
- #ifndef DIRECTORY_SEPARATOR
- # define DIRECTORY_SEPARATOR '/'
-@@ -63,6 +86,11 @@
- # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
- #endif
-+#if HAVE_DECL_GETC_UNLOCKED
-+# undef getc
-+# define getc getc_unlocked
-+#endif
-+
- /* The following static variable is declared 'volatile' to avoid a
-    possible multithread problem in the function get_charset_aliases. If we
-    are running in a threaded environment, and if two threads initialize
-@@ -75,20 +103,20 @@
- /* Pointer to the contents of the charset.alias file, if it has already been
-    read, else NULL.  Its format is:
-    ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0'  */
--static char * volatile charset_aliases;
-+static const char * volatile charset_aliases;
- /* Return a pointer to the contents of the charset.alias file.  */
- static const char *
- get_charset_aliases ()
- {
--  char *cp;
-+  const char *cp;
-   cp = charset_aliases;
-   if (cp == NULL)
-     {
--#ifndef WIN32
-+#if !(defined VMS || defined WIN32)
-       FILE *fp;
--      const char *dir = LIBDIR;
-+      const char *dir = relocate (LIBDIR);
-       const char *base = "charset.alias";
-       char *file_name;
-@@ -138,19 +166,19 @@
-                 continue;
-               }
-             ungetc (c, fp);
--            if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
-+            if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
-               break;
-             l1 = strlen (buf1);
-             l2 = strlen (buf2);
-             if (res_size == 0)
-               {
-                 res_size = l1 + 1 + l2 + 1;
--                res_ptr = malloc (res_size + 1);
-+                res_ptr = (char *) malloc (res_size + 1);
-               }
-             else
-               {
-                 res_size += l1 + 1 + l2 + 1;
--                res_ptr = realloc (res_ptr, res_size + 1);
-+                res_ptr = (char *) realloc (res_ptr, res_size + 1);
-               }
-             if (res_ptr == NULL)
-               {
-@@ -174,14 +202,54 @@
-       if (file_name != NULL)
-       free (file_name);
--#else /* WIN32 */
-+#else
-+
-+# if defined VMS
-+      /* To avoid the troubles of an extra file charset.alias_vms in the
-+       sources of many GNU packages, simply inline the aliases here.  */
-+      /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
-+       "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
-+       section 10.7 "Handling Different Character Sets".  */
-+      cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
-+         "ISO8859-2" "\0" "ISO-8859-2" "\0"
-+         "ISO8859-5" "\0" "ISO-8859-5" "\0"
-+         "ISO8859-7" "\0" "ISO-8859-7" "\0"
-+         "ISO8859-8" "\0" "ISO-8859-8" "\0"
-+         "ISO8859-9" "\0" "ISO-8859-9" "\0"
-+         /* Japanese */
-+         "eucJP" "\0" "EUC-JP" "\0"
-+         "SJIS" "\0" "SHIFT_JIS" "\0"
-+         "DECKANJI" "\0" "DEC-KANJI" "\0"
-+         "SDECKANJI" "\0" "EUC-JP" "\0"
-+         /* Chinese */
-+         "eucTW" "\0" "EUC-TW" "\0"
-+         "DECHANYU" "\0" "DEC-HANYU" "\0"
-+         "DECHANZI" "\0" "GB2312" "\0"
-+         /* Korean */
-+         "DECKOREAN" "\0" "EUC-KR" "\0";
-+# endif
-+# if defined WIN32
-       /* To avoid the troubles of installing a separate file in the same
-        directory as the DLL and of retrieving the DLL's directory at
-        runtime, simply inline the aliases here.  */
-       cp = "CP936" "\0" "GBK" "\0"
--         "CP1361" "\0" "JOHAB" "\0";
-+         "CP1361" "\0" "JOHAB" "\0"
-+         "CP20127" "\0" "ASCII" "\0"
-+         "CP20866" "\0" "KOI8-R" "\0"
-+         "CP21866" "\0" "KOI8-RU" "\0"
-+         "CP28591" "\0" "ISO-8859-1" "\0"
-+         "CP28592" "\0" "ISO-8859-2" "\0"
-+         "CP28593" "\0" "ISO-8859-3" "\0"
-+         "CP28594" "\0" "ISO-8859-4" "\0"
-+         "CP28595" "\0" "ISO-8859-5" "\0"
-+         "CP28596" "\0" "ISO-8859-6" "\0"
-+         "CP28597" "\0" "ISO-8859-7" "\0"
-+         "CP28598" "\0" "ISO-8859-8" "\0"
-+         "CP28599" "\0" "ISO-8859-9" "\0"
-+         "CP28605" "\0" "ISO-8859-15" "\0";
-+# endif
- #endif
-       charset_aliases = cp;
-@@ -205,7 +273,7 @@
-   const char *codeset;
-   const char *aliases;
--#ifndef WIN32
-+#if !(defined WIN32 || defined OS2)
- # if HAVE_LANGINFO_CODESET
-@@ -242,14 +310,67 @@
- # endif
--#else /* WIN32 */
-+#elif defined WIN32
-   static char buf[2 + 10 + 1];
--  /* Win32 has a function returning the locale's codepage as a number.  */
-+  /* Woe32 has a function returning the locale's codepage as a number.  */
-   sprintf (buf, "CP%u", GetACP ());
-   codeset = buf;
-+#elif defined OS2
-+
-+  const char *locale;
-+  static char buf[2 + 10 + 1];
-+  ULONG cp[3];
-+  ULONG cplen;
-+
-+  /* Allow user to override the codeset, as set in the operating system,
-+     with standard language environment variables.  */
-+  locale = getenv ("LC_ALL");
-+  if (locale == NULL || locale[0] == '\0')
-+    {
-+      locale = getenv ("LC_CTYPE");
-+      if (locale == NULL || locale[0] == '\0')
-+      locale = getenv ("LANG");
-+    }
-+  if (locale != NULL && locale[0] != '\0')
-+    {
-+      /* If the locale name contains an encoding after the dot, return it.  */
-+      const char *dot = strchr (locale, '.');
-+
-+      if (dot != NULL)
-+      {
-+        const char *modifier;
-+
-+        dot++;
-+        /* Look for the possible @... trailer and remove it, if any.  */
-+        modifier = strchr (dot, '@');
-+        if (modifier == NULL)
-+          return dot;
-+        if (modifier - dot < sizeof (buf))
-+          {
-+            memcpy (buf, dot, modifier - dot);
-+            buf [modifier - dot] = '\0';
-+            return buf;
-+          }
-+      }
-+
-+      /* Resolve through the charset.alias file.  */
-+      codeset = locale;
-+    }
-+  else
-+    {
-+      /* OS/2 has a function returning the locale's codepage as a number.  */
-+      if (DosQueryCp (sizeof (cp), cp, &cplen))
-+      codeset = "";
-+      else
-+      {
-+        sprintf (buf, "CP%u", cp[0]);
-+        codeset = buf;
-+      }
-+    }
-+
- #endif
-   if (codeset == NULL)
-@@ -267,5 +388,11 @@
-       break;
-       }
-+  /* Don't return an empty string.  GNU libc and GNU libiconv interpret
-+     the empty string as denoting "the locale's character encoding",
-+     thus GNU libiconv would call this function a second time.  */
-+  if (codeset[0] == '\0')
-+    codeset = "ASCII";
-+
-   return codeset;
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/localcharset.h psmisc-20.2.works.clean/intl/localcharset.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/localcharset.h    1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/localcharset.h        2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,42 @@
-+/* Determine a canonical name for the current locale's character encoding.
-+   Copyright (C) 2000-2003 Free Software Foundation, Inc.
-+   This file is part of the GNU CHARSET Library.
-+
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _LOCALCHARSET_H
-+#define _LOCALCHARSET_H
-+
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+/* Determine the current locale's character encoding, and canonicalize it
-+   into one of the canonical names listed in config.charset.
-+   The result must not be freed; it is statically allocated.
-+   If the canonical name cannot be determined, the result is a non-canonical
-+   name.  */
-+extern const char * locale_charset (void);
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+
-+#endif /* _LOCALCHARSET_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/locale.alias psmisc-20.2.works.clean/intl/locale.alias
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/locale.alias      2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/locale.alias  2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- # 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 General Public License as published by
--# the Free Software Foundation; either version 2, or (at your option)
-+# 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
-+# by the Free Software Foundation; either version 2, or (at your option)
- # any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
--# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--# GNU General Public License for more details.
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+# Library General Public License for more details.
- #
--# You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+# You should have received a copy of the GNU Library General Public
-+# License along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+# USA.
- # The format of this file is the same as for the corresponding file of
- # the X Window System, which normally can be found in
-@@ -28,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
-@@ -46,7 +47,7 @@
- galician      gl_ES.ISO-8859-1
- german                de_DE.ISO-8859-1
- greek           el_GR.ISO-8859-7
--hebrew          iw_IL.ISO-8859-8
-+hebrew          he_IL.ISO-8859-8
- hrvatski      hr_HR.ISO-8859-2
- hungarian       hu_HU.ISO-8859-2
- icelandic       is_IS.ISO-8859-1
-@@ -60,9 +61,9 @@
- 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
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/localealias.c psmisc-20.2.works.clean/intl/localealias.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/localealias.c     2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/localealias.c 2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Handle aliases for locale names.
--   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
-+   Copyright (C) 1995-1999, 2000-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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- /* Tell glibc's <string.h> to provide a prototype for mempcpy().
-    This must come before <config.h> because <config.h> may include
-@@ -28,36 +29,45 @@
- #include <ctype.h>
- #include <stdio.h>
-+#if defined _LIBC || defined HAVE___FSETLOCKING
-+# include <stdio_ext.h>
-+#endif
- #include <sys/types.h>
- #ifdef __GNUC__
-+# undef alloca
- # define alloca __builtin_alloca
- # define HAVE_ALLOCA 1
- #else
--# if defined HAVE_ALLOCA_H || defined _LIBC
--#  include <alloca.h>
-+# ifdef _MSC_VER
-+#  include <malloc.h>
-+#  define alloca _alloca
- # else
--#  ifdef _AIX
-- #pragma alloca
-+#  if defined HAVE_ALLOCA_H || defined _LIBC
-+#   include <alloca.h>
- #  else
--#   ifndef alloca
-+#   ifdef _AIX
-+ #pragma alloca
-+#   else
-+#    ifndef alloca
- char *alloca ();
-+#    endif
- #   endif
- #  endif
- # endif
- #endif
- #include <stdlib.h>
--
- #include <string.h>
--#if !HAVE_STRCHR && !defined _LIBC
--# ifndef strchr
--#  define strchr index
--# endif
--#endif
- #include "gettextP.h"
-+#if ENABLE_RELOCATABLE
-+# include "relocatable.h"
-+#else
-+# define relocate(pathname) (pathname)
-+#endif
-+
- /* @@ end of prolog @@ */
- #ifdef _LIBC
-@@ -70,6 +80,7 @@
- #  define mempcpy __mempcpy
- # endif
- # define HAVE_MEMPCPY 1
-+# define HAVE___FSETLOCKING   1
- /* We need locking here since we can be called from different places.  */
- # include <bits/libc-lock.h>
-@@ -81,6 +92,15 @@
- # define internal_function
- #endif
-+/* Some optimizations for glibc.  */
-+#ifdef _LIBC
-+# define FEOF(fp)             feof_unlocked (fp)
-+# define FGETS(buf, n, fp)    fgets_unlocked (buf, n, fp)
-+#else
-+# define FEOF(fp)             feof (fp)
-+# define FGETS(buf, n, fp)    fgets (buf, n, fp)
-+#endif
-+
- /* For those losing systems which don't have `alloca' we have to add
-    some additional code emulating it.  */
- #ifdef HAVE_ALLOCA
-@@ -90,11 +110,11 @@
- # 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
-@@ -107,27 +127,30 @@
- };
--static char *string_space;
-+#ifndef _LIBC
-+# define libc_freeres_ptr(decl) decl
-+#endif
-+
-+libc_freeres_ptr (static char *string_space);
- static size_t string_space_act;
- static size_t string_space_max;
--static struct alias_map *map;
-+libc_freeres_ptr (static struct alias_map *map);
- static size_t nmap;
- 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 = LOCALE_ALIAS_PATH;
-+  static const char *locale_alias_path;
-   struct alias_map *retval;
-   const char *result = NULL;
-   size_t added;
-@@ -136,6 +159,9 @@
-   __libc_lock_lock (lock);
- #endif
-+  if (locale_alias_path == NULL)
-+    locale_alias_path = LOCALE_ALIAS_PATH;
-+
-   do
-     {
-       struct alias_map item;
-@@ -145,8 +171,8 @@
-       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;
-@@ -188,9 +214,7 @@
- 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;
-@@ -206,58 +230,52 @@
-   memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
- #endif
--  fp = fopen (full_fname, "r");
-+  fp = fopen (relocate (full_fname), "r");
-   freea (full_fname);
-   if (fp == NULL)
-     return 0;
-+#ifdef HAVE___FSETLOCKING
-+  /* No threads present.  */
-+  __fsetlocking (fp, FSETLOCKING_BYCALLER);
-+#endif
-+
-   added = 0;
--  while (!feof (fp))
-+  while (!FEOF (fp))
-     {
-       /* It is a reasonable approach to use a fix buffer here because
-        a) we are only interested in the first two fields
-        b) these fields must be usable as file names and so must not
-           be that long
--       */
--      char buf[BUFSIZ];
-+       We avoid a multi-kilobyte buffer here since this would use up
-+       stack space which we might not have if the program ran out of
-+       memory.  */
-+      char buf[400];
-       char *alias;
-       char *value;
-       char *cp;
--      if (fgets (buf, sizeof buf, fp) == NULL)
-+      if (FGETS (buf, sizeof buf, fp) == NULL)
-       /* EOF reached.  */
-       break;
--      /* Possibly not the whole line fits into the buffer.  Ignore
--       the rest of the line.  */
--      if (strchr (buf, '\n') == NULL)
--      {
--        char altbuf[BUFSIZ];
--        do
--          if (fgets (altbuf, sizeof altbuf, fp) == NULL)
--            /* Make sure the inner loop will be left.  The outer loop
--               will exit at the `feof' test.  */
--            break;
--        while (strchr (altbuf, '\n') == NULL);
--      }
--
-       cp = buf;
-       /* Ignore leading white space.  */
--      while (isspace (cp[0]))
-+      while (isspace ((unsigned char) cp[0]))
-       ++cp;
-       /* A leading '#' signals a comment line.  */
-       if (cp[0] != '\0' && cp[0] != '#')
-       {
-         alias = cp++;
--        while (cp[0] != '\0' && !isspace (cp[0]))
-+        while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
-           ++cp;
-         /* Terminate alias name.  */
-         if (cp[0] != '\0')
-           *cp++ = '\0';
-         /* Now look for the beginning of the value.  */
--        while (isspace (cp[0]))
-+        while (isspace ((unsigned char) cp[0]))
-           ++cp;
-         if (cp[0] != '\0')
-@@ -266,7 +284,7 @@
-             size_t value_len;
-             value = cp++;
--            while (cp[0] != '\0' && !isspace (cp[0]))
-+            while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
-               ++cp;
-             /* Terminate value.  */
-             if (cp[0] == '\n')
-@@ -324,6 +342,14 @@
-             ++added;
-           }
-       }
-+
-+      /* Possibly not the whole line fits into the buffer.  Ignore
-+       the rest of the line.  */
-+      while (strchr (buf, '\n') == NULL)
-+      if (FGETS (buf, sizeof buf, fp) == NULL)
-+        /* Make sure the inner loop will be left.  The outer loop
-+           will exit at the `feof' test.  */
-+        break;
-     }
-   /* Should we test for ferror()?  I think we have to silently ignore
-@@ -332,7 +358,7 @@
-   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;
- }
-@@ -357,23 +383,8 @@
- }
--#ifdef _LIBC
--static void __attribute__ ((unused))
--free_mem (void)
--{
--  if (string_space != NULL)
--    free (string_space);
--  if (map != NULL)
--    free (map);
--}
--text_set_element (__libc_subfreeres, free_mem);
--#endif
--
--
- static int
--alias_compare (map1, map2)
--     const struct alias_map *map1;
--     const struct alias_map *map2;
-+alias_compare (const struct alias_map *map1, const struct alias_map *map2)
- {
- #if defined _LIBC || defined HAVE_STRCASECMP
-   return strcasecmp (map1->alias, map2->alias);
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/localename.c psmisc-20.2.works.clean/intl/localename.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/localename.c      1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/localename.c  2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,1142 @@
-+/* Determine the current selected locale.
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+/* Written by Ulrich Drepper <drepper@gnu.org>, 1995.  */
-+/* Win32 code written by Tor Lillqvist <tml@iki.fi>.  */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <stdlib.h>
-+#include <locale.h>
-+
-+#if defined _WIN32 || defined __WIN32__
-+# undef WIN32   /* avoid warning on mingw32 */
-+# define WIN32
-+#endif
-+
-+#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
-+# endif
-+# 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_ARMENIAN
-+# define LANG_ARMENIAN 0x2b
-+# endif
-+# ifndef LANG_ASSAMESE
-+# define LANG_ASSAMESE 0x4d
-+# endif
-+# ifndef LANG_AZERI
-+# define LANG_AZERI 0x2c
-+# endif
-+# ifndef LANG_BASQUE
-+# define LANG_BASQUE 0x2d
-+# endif
-+# ifndef LANG_BELARUSIAN
-+# define LANG_BELARUSIAN 0x23
-+# 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_FAEROESE
-+# define LANG_FAEROESE 0x38
-+# 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_KAZAK
-+# define LANG_KAZAK 0x3f
-+# endif
-+# ifndef LANG_KONKANI
-+# define LANG_KONKANI 0x57
-+# 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_LITHUANIAN
-+# define LANG_LITHUANIAN 0x27
-+# endif
-+# ifndef LANG_MACEDONIAN
-+# define LANG_MACEDONIAN 0x2f
-+# endif
-+# ifndef LANG_MALAY
-+# define LANG_MALAY 0x3e
-+# 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_MARATHI
-+# define LANG_MARATHI 0x4e
-+# endif
-+# ifndef LANG_MONGOLIAN
-+# define LANG_MONGOLIAN 0x50
-+# endif
-+# ifndef LANG_NEPALI
-+# define LANG_NEPALI 0x61
-+# 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_SERBIAN
-+# define LANG_SERBIAN 0x1a
-+# 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_TATAR
-+# define LANG_TATAR 0x44
-+# endif
-+# ifndef LANG_TELUGU
-+# define LANG_TELUGU 0x4a
-+# 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_URDU
-+# define LANG_URDU 0x20
-+# 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_ARABIC_IRAQ
-+# define SUBLANG_ARABIC_IRAQ 0x02
-+# endif
-+# ifndef SUBLANG_ARABIC_EGYPT
-+# define SUBLANG_ARABIC_EGYPT 0x03
-+# endif
-+# ifndef SUBLANG_ARABIC_LIBYA
-+# define SUBLANG_ARABIC_LIBYA 0x04
-+# endif
-+# ifndef SUBLANG_ARABIC_ALGERIA
-+# define SUBLANG_ARABIC_ALGERIA 0x05
-+# endif
-+# ifndef SUBLANG_ARABIC_MOROCCO
-+# define SUBLANG_ARABIC_MOROCCO 0x06
-+# endif
-+# ifndef SUBLANG_ARABIC_TUNISIA
-+# define SUBLANG_ARABIC_TUNISIA 0x07
-+# endif
-+# ifndef SUBLANG_ARABIC_OMAN
-+# define SUBLANG_ARABIC_OMAN 0x08
-+# endif
-+# ifndef SUBLANG_ARABIC_YEMEN
-+# define SUBLANG_ARABIC_YEMEN 0x09
-+# endif
-+# ifndef SUBLANG_ARABIC_SYRIA
-+# define SUBLANG_ARABIC_SYRIA 0x0a
-+# endif
-+# ifndef SUBLANG_ARABIC_JORDAN
-+# define SUBLANG_ARABIC_JORDAN 0x0b
-+# endif
-+# ifndef SUBLANG_ARABIC_LEBANON
-+# define SUBLANG_ARABIC_LEBANON 0x0c
-+# endif
-+# ifndef SUBLANG_ARABIC_KUWAIT
-+# define SUBLANG_ARABIC_KUWAIT 0x0d
-+# endif
-+# ifndef SUBLANG_ARABIC_UAE
-+# define SUBLANG_ARABIC_UAE 0x0e
-+# endif
-+# ifndef SUBLANG_ARABIC_BAHRAIN
-+# define SUBLANG_ARABIC_BAHRAIN 0x0f
-+# endif
-+# ifndef SUBLANG_ARABIC_QATAR
-+# define SUBLANG_ARABIC_QATAR 0x10
-+# endif
-+# ifndef SUBLANG_AZERI_LATIN
-+# define SUBLANG_AZERI_LATIN 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_SOUTH_AFRICA
-+# define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
-+# endif
-+# ifndef SUBLANG_ENGLISH_JAMAICA
-+# define SUBLANG_ENGLISH_JAMAICA 0x08
-+# endif
-+# ifndef SUBLANG_ENGLISH_CARIBBEAN
-+# define SUBLANG_ENGLISH_CARIBBEAN 0x09
-+# endif
-+# ifndef SUBLANG_ENGLISH_BELIZE
-+# define SUBLANG_ENGLISH_BELIZE 0x0a
-+# endif
-+# ifndef SUBLANG_ENGLISH_TRINIDAD
-+# define SUBLANG_ENGLISH_TRINIDAD 0x0b
-+# endif
-+# ifndef SUBLANG_ENGLISH_ZIMBABWE
-+# define SUBLANG_ENGLISH_ZIMBABWE 0x0c
-+# 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_GERMAN_LIECHTENSTEIN
-+# define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
-+# endif
-+# ifndef SUBLANG_KASHMIRI_INDIA
-+# define SUBLANG_KASHMIRI_INDIA 0x02
-+# endif
-+# ifndef SUBLANG_MALAY_MALAYSIA
-+# define SUBLANG_MALAY_MALAYSIA 0x01
-+# endif
-+# ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM
-+# define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
-+# 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_SPANISH_COSTA_RICA
-+# define SUBLANG_SPANISH_COSTA_RICA 0x05
-+# endif
-+# ifndef SUBLANG_SPANISH_PANAMA
-+# define SUBLANG_SPANISH_PANAMA 0x06
-+# endif
-+# ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC
-+# define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
-+# endif
-+# ifndef SUBLANG_SPANISH_VENEZUELA
-+# define SUBLANG_SPANISH_VENEZUELA 0x08
-+# endif
-+# ifndef SUBLANG_SPANISH_COLOMBIA
-+# define SUBLANG_SPANISH_COLOMBIA 0x09
-+# endif
-+# ifndef SUBLANG_SPANISH_PERU
-+# define SUBLANG_SPANISH_PERU 0x0a
-+# endif
-+# ifndef SUBLANG_SPANISH_ARGENTINA
-+# define SUBLANG_SPANISH_ARGENTINA 0x0b
-+# endif
-+# ifndef SUBLANG_SPANISH_ECUADOR
-+# define SUBLANG_SPANISH_ECUADOR 0x0c
-+# endif
-+# ifndef SUBLANG_SPANISH_CHILE
-+# define SUBLANG_SPANISH_CHILE 0x0d
-+# endif
-+# ifndef SUBLANG_SPANISH_URUGUAY
-+# define SUBLANG_SPANISH_URUGUAY 0x0e
-+# endif
-+# ifndef SUBLANG_SPANISH_PARAGUAY
-+# define SUBLANG_SPANISH_PARAGUAY 0x0f
-+# endif
-+# ifndef SUBLANG_SPANISH_BOLIVIA
-+# define SUBLANG_SPANISH_BOLIVIA 0x10
-+# endif
-+# ifndef SUBLANG_SPANISH_EL_SALVADOR
-+# define SUBLANG_SPANISH_EL_SALVADOR 0x11
-+# endif
-+# ifndef SUBLANG_SPANISH_HONDURAS
-+# define SUBLANG_SPANISH_HONDURAS 0x12
-+# endif
-+# ifndef SUBLANG_SPANISH_NICARAGUA
-+# define SUBLANG_SPANISH_NICARAGUA 0x13
-+# endif
-+# ifndef SUBLANG_SPANISH_PUERTO_RICO
-+# define SUBLANG_SPANISH_PUERTO_RICO 0x14
-+# 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
-+# ifndef SUBLANG_URDU_INDIA
-+# define SUBLANG_URDU_INDIA 0x02
-+# endif
-+# ifndef SUBLANG_UZBEK_LATIN
-+# define SUBLANG_UZBEK_LATIN 0x01
-+# endif
-+# ifndef SUBLANG_UZBEK_CYRILLIC
-+# define SUBLANG_UZBEK_CYRILLIC 0x02
-+# endif
-+#endif
-+
-+/* XPG3 defines the result of 'setlocale (category, NULL)' as:
-+   "Directs 'setlocale()' to query 'category' and return the current
-+    setting of 'local'."
-+   However it does not specify the exact format.  Neither do SUSV2 and
-+   ISO C 99.  So we can use this feature only on selected systems (e.g.
-+   those using GNU C Library).  */
-+#if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2)
-+# define HAVE_LOCALE_NULL
-+#endif
-+
-+/* Determine the current locale's name, and canonicalize it into XPG syntax
-+     language[_territory[.codeset]][@modifier]
-+   The codeset part in the result is not reliable; the locale_charset()
-+   should be used for codeset information instead.
-+   The result must not be freed; it is statically allocated.  */
-+
-+const char *
-+_nl_locale_name (int category, const char *categoryname)
-+{
-+  const char *retval;
-+
-+#ifndef WIN32
-+
-+  /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'.
-+     On some systems this can be done by the 'setlocale' function itself.  */
-+# if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
-+  retval = setlocale (category, NULL);
-+# else
-+  /* Setting of LC_ALL overwrites all other.  */
-+  retval = getenv ("LC_ALL");
-+  if (retval == NULL || retval[0] == '\0')
-+    {
-+      /* Next comes the name of the desired category.  */
-+      retval = getenv (categoryname);
-+      if (retval == NULL || retval[0] == '\0')
-+      {
-+        /* Last possibility is the LANG environment variable.  */
-+        retval = getenv ("LANG");
-+        if (retval == NULL || retval[0] == '\0')
-+          /* We use C as the default domain.  POSIX says this is
-+             implementation defined.  */
-+          retval = "C";
-+      }
-+    }
-+# endif
-+
-+  return retval;
-+
-+#else /* WIN32 */
-+
-+  /* Return an XPG style locale name language[_territory][@modifier].
-+     Don't even bother determining the codeset; it's not useful in this
-+     context, because message catalogs are not specific to a single
-+     codeset.  */
-+
-+  LCID lcid;
-+  LANGID langid;
-+  int primary, sub;
-+
-+  /* Let the user override the system settings through environment
-+     variables, as on POSIX systems.  */
-+  retval = getenv ("LC_ALL");
-+  if (retval != NULL && retval[0] != '\0')
-+    return retval;
-+  retval = getenv (categoryname);
-+  if (retval != NULL && retval[0] != '\0')
-+    return retval;
-+  retval = getenv ("LANG");
-+  if (retval != NULL && retval[0] != '\0')
-+    return retval;
-+
-+  /* Use native Win32 API locale ID.  */
-+  lcid = GetThreadLocale ();
-+
-+  /* Strip off the sorting rules, keep only the language part.  */
-+  langid = LANGIDFROMLCID (lcid);
-+
-+  /* Split into language and territory part.  */
-+  primary = PRIMARYLANGID (langid);
-+  sub = SUBLANGID (langid);
-+
-+  /* Dispatch on language.
-+     See also http://www.unicode.org/unicode/onlinedat/languages.html .
-+     For details about languages, see http://www.ethnologue.com/ .  */
-+  switch (primary)
-+    {
-+    case LANG_AFRIKAANS: return "af_ZA";
-+    case LANG_ALBANIAN: return "sq_AL";
-+    case LANG_AMHARIC: return "am_ET";
-+    case LANG_ARABIC:
-+      switch (sub)
-+      {
-+      case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA";
-+      case SUBLANG_ARABIC_IRAQ: return "ar_IQ";
-+      case SUBLANG_ARABIC_EGYPT: return "ar_EG";
-+      case SUBLANG_ARABIC_LIBYA: return "ar_LY";
-+      case SUBLANG_ARABIC_ALGERIA: return "ar_DZ";
-+      case SUBLANG_ARABIC_MOROCCO: return "ar_MA";
-+      case SUBLANG_ARABIC_TUNISIA: return "ar_TN";
-+      case SUBLANG_ARABIC_OMAN: return "ar_OM";
-+      case SUBLANG_ARABIC_YEMEN: return "ar_YE";
-+      case SUBLANG_ARABIC_SYRIA: return "ar_SY";
-+      case SUBLANG_ARABIC_JORDAN: return "ar_JO";
-+      case SUBLANG_ARABIC_LEBANON: return "ar_LB";
-+      case SUBLANG_ARABIC_KUWAIT: return "ar_KW";
-+      case SUBLANG_ARABIC_UAE: return "ar_AE";
-+      case SUBLANG_ARABIC_BAHRAIN: return "ar_BH";
-+      case SUBLANG_ARABIC_QATAR: return "ar_QA";
-+      }
-+      return "ar";
-+    case LANG_ARMENIAN: return "hy_AM";
-+    case LANG_ASSAMESE: return "as_IN";
-+    case LANG_AZERI:
-+      switch (sub)
-+      {
-+      /* FIXME: Adjust this when Azerbaijani locales appear on Unix.  */
-+      case SUBLANG_AZERI_LATIN: return "az_AZ@latin";
-+      case SUBLANG_AZERI_CYRILLIC: return "az_AZ@cyrillic";
-+      }
-+      return "az";
-+    case LANG_BASQUE:
-+      return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR".  */
-+    case LANG_BELARUSIAN: return "be_BY";
-+    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 LANG_BURMESE: return "my_MM";
-+    case LANG_CAMBODIAN: return "km_KH";
-+    case LANG_CATALAN: return "ca_ES";
-+    case LANG_CHEROKEE: return "chr_US";
-+    case LANG_CHINESE:
-+      switch (sub)
-+      {
-+      case SUBLANG_CHINESE_TRADITIONAL: return "zh_TW";
-+      case SUBLANG_CHINESE_SIMPLIFIED: return "zh_CN";
-+      case SUBLANG_CHINESE_HONGKONG: return "zh_HK";
-+      case SUBLANG_CHINESE_SINGAPORE: return "zh_SG";
-+      case SUBLANG_CHINESE_MACAU: return "zh_MO";
-+      }
-+      return "zh";
-+    case LANG_CROATIAN:               /* LANG_CROATIAN == LANG_SERBIAN
-+                               * What used to be called Serbo-Croatian
-+                               * should really now be two separate
-+                               * languages because of political reasons.
-+                               * (Says tml, who knows nothing about Serbian
-+                               * or Croatian.)
-+                               * (I can feel those flames coming already.)
-+                               */
-+      switch (sub)
-+      {
-+      case SUBLANG_DEFAULT: return "hr_HR";
-+      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 "dv_MV";
-+    case LANG_DUTCH:
-+      switch (sub)
-+      {
-+      case SUBLANG_DUTCH: return "nl_NL";
-+      case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE";
-+      }
-+      return "nl";
-+    case LANG_EDO: return "bin_NG";
-+    case LANG_ENGLISH:
-+      switch (sub)
-+      {
-+      /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought
-+       * English was the language spoken in England.
-+       * Oh well.
-+       */
-+      case SUBLANG_ENGLISH_US: return "en_US";
-+      case SUBLANG_ENGLISH_UK: return "en_GB";
-+      case SUBLANG_ENGLISH_AUS: return "en_AU";
-+      case SUBLANG_ENGLISH_CAN: return "en_CA";
-+      case SUBLANG_ENGLISH_NZ: return "en_NZ";
-+      case SUBLANG_ENGLISH_EIRE: return "en_IE";
-+      case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA";
-+      case SUBLANG_ENGLISH_JAMAICA: return "en_JM";
-+      case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */
-+      case SUBLANG_ENGLISH_BELIZE: return "en_BZ";
-+      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";
-+    case LANG_FAEROESE: return "fo_FO";
-+    case LANG_FARSI: return "fa_IR";
-+    case LANG_FINNISH: return "fi_FI";
-+    case LANG_FRENCH:
-+      switch (sub)
-+      {
-+      case SUBLANG_FRENCH: return "fr_FR";
-+      case SUBLANG_FRENCH_BELGIAN: /* WALLOON */ return "fr_BE";
-+      case SUBLANG_FRENCH_CANADIAN: return "fr_CA";
-+      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 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";
-+      case 0x02: /* IRISH */ return "ga_IE";
-+      }
-+      return "C";
-+    case LANG_GALICIAN: return "gl_ES";
-+    case LANG_GEORGIAN: return "ka_GE";
-+    case LANG_GERMAN:
-+      switch (sub)
-+      {
-+      case SUBLANG_GERMAN: return "de_DE";
-+      case SUBLANG_GERMAN_SWISS: return "de_CH";
-+      case SUBLANG_GERMAN_AUSTRIAN: return "de_AT";
-+      case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU";
-+      case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI";
-+      }
-+      return "de";
-+    case LANG_GREEK: return "el_GR";
-+    case LANG_GUARANI: return "gn_PY";
-+    case LANG_GUJARATI: return "gu_IN";
-+    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 LANG_IBIBIO: return "nic_NG";
-+    case LANG_ICELANDIC: return "is_IS";
-+    case LANG_IGBO: return "ig_NG";
-+    case LANG_INDONESIAN: return "id_ID";
-+    case LANG_INUKTITUT: return "iu_CA";
-+    case LANG_ITALIAN:
-+      switch (sub)
-+      {
-+      case SUBLANG_ITALIAN: return "it_IT";
-+      case SUBLANG_ITALIAN_SWISS: return "it_CH";
-+      }
-+      return "it";
-+    case LANG_JAPANESE: return "ja_JP";
-+    case LANG_KANNADA: return "kn_IN";
-+    case LANG_KANURI: return "kr_NG";
-+    case LANG_KASHMIRI:
-+      switch (sub)
-+      {
-+      case SUBLANG_DEFAULT: return "ks_PK";
-+      case SUBLANG_KASHMIRI_INDIA: return "ks_IN";
-+      }
-+      return "ks";
-+    case LANG_KAZAK: return "kk_KZ";
-+    case LANG_KONKANI:
-+      /* FIXME: Adjust this when such locales appear on Unix.  */
-+      return "kok_IN";
-+    case LANG_KOREAN: return "ko_KR";
-+    case LANG_KYRGYZ: return "ky_KG";
-+    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";
-+    case LANG_MALAY:
-+      switch (sub)
-+      {
-+      case SUBLANG_MALAY_MALAYSIA: return "ms_MY";
-+      case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN";
-+      }
-+      return "ms";
-+    case LANG_MALAYALAM: return "ml_IN";
-+    case LANG_MALTESE: return "mt_MT";
-+    case LANG_MANIPURI:
-+      /* FIXME: Adjust this when such locales appear on Unix.  */
-+      return "mni_IN";
-+    case LANG_MARATHI: return "mr_IN";
-+    case LANG_MONGOLIAN:
-+      return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN".  */
-+    case LANG_NEPALI:
-+      switch (sub)
-+      {
-+      case SUBLANG_DEFAULT: return "ne_NP";
-+      case SUBLANG_NEPALI_INDIA: return "ne_IN";
-+      }
-+      return "ne";
-+    case LANG_NORWEGIAN:
-+      switch (sub)
-+      {
-+      case SUBLANG_NORWEGIAN_BOKMAL: return "no_NO";
-+      case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO";
-+      }
-+      return "no";
-+    case LANG_ORIYA: return "or_IN";
-+    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:
-+      switch (sub)
-+      {
-+      case SUBLANG_PORTUGUESE: return "pt_PT";
-+      /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT.
-+         Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */
-+      case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR";
-+      }
-+      return "pt";
-+    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" or "ru_MD".  */
-+    case LANG_SAAMI: /* actually Northern Sami */ return "se_NO";
-+    case LANG_SANSKRIT: return "sa_IN";
-+    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 LANG_SOMALI: return "so_SO";
-+    case LANG_SORBIAN:
-+      /* FIXME: Adjust this when such locales appear on Unix.  */
-+      return "wen_DE";
-+    case LANG_SPANISH:
-+      switch (sub)
-+      {
-+      case SUBLANG_SPANISH: return "es_ES";
-+      case SUBLANG_SPANISH_MEXICAN: return "es_MX";
-+      case SUBLANG_SPANISH_MODERN:
-+        return "es_ES@modern";        /* not seen on Unix */
-+      case SUBLANG_SPANISH_GUATEMALA: return "es_GT";
-+      case SUBLANG_SPANISH_COSTA_RICA: return "es_CR";
-+      case SUBLANG_SPANISH_PANAMA: return "es_PA";
-+      case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO";
-+      case SUBLANG_SPANISH_VENEZUELA: return "es_VE";
-+      case SUBLANG_SPANISH_COLOMBIA: return "es_CO";
-+      case SUBLANG_SPANISH_PERU: return "es_PE";
-+      case SUBLANG_SPANISH_ARGENTINA: return "es_AR";
-+      case SUBLANG_SPANISH_ECUADOR: return "es_EC";
-+      case SUBLANG_SPANISH_CHILE: return "es_CL";
-+      case SUBLANG_SPANISH_URUGUAY: return "es_UY";
-+      case SUBLANG_SPANISH_PARAGUAY: return "es_PY";
-+      case SUBLANG_SPANISH_BOLIVIA: return "es_BO";
-+      case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV";
-+      case SUBLANG_SPANISH_HONDURAS: return "es_HN";
-+      case SUBLANG_SPANISH_NICARAGUA: return "es_NI";
-+      case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR";
-+      }
-+      return "es";
-+    case LANG_SUTU: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */
-+    case LANG_SWAHILI: return "sw_KE";
-+    case LANG_SWEDISH:
-+      switch (sub)
-+      {
-+      case SUBLANG_DEFAULT: return "sv_SE";
-+      case SUBLANG_SWEDISH_FINLAND: return "sv_FI";
-+      }
-+      return "sv";
-+    case LANG_SYRIAC: return "syr_TR"; /* An extinct language.  */
-+    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 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 LANG_TURKMEN: return "tk_TM";
-+    case LANG_UKRAINIAN: return "uk_UA";
-+    case LANG_URDU:
-+      switch (sub)
-+      {
-+      case SUBLANG_URDU_PAKISTAN: return "ur_PK";
-+      case SUBLANG_URDU_INDIA: return "ur_IN";
-+      }
-+      return "ur";
-+    case LANG_UZBEK:
-+      switch (sub)
-+      {
-+      case SUBLANG_UZBEK_LATIN: return "uz_UZ";
-+      case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic";
-+      }
-+      return "uz";
-+    case LANG_VENDA: return "ve_ZA";
-+    case LANG_VIETNAMESE: return "vi_VN";
-+    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";
-+    }
-+
-+#endif
-+}
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/log.c psmisc-20.2.works.clean/intl/log.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/log.c     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/log.c 2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,98 @@
-+/* Log file output.
-+   Copyright (C) 2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>.  */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+/* Print an ASCII string with quotes and escape sequences where needed.  */
-+static void
-+print_escaped (FILE *stream, const char *str)
-+{
-+  putc ('"', stream);
-+  for (; *str != '\0'; str++)
-+    if (*str == '\n')
-+      {
-+      fputs ("\\n\"", stream);
-+      if (str[1] == '\0')
-+        return;
-+      fputs ("\n\"", stream);
-+      }
-+    else
-+      {
-+      if (*str == '"' || *str == '\\')
-+        putc ('\\', stream);
-+      putc (*str, stream);
-+      }
-+  putc ('"', stream);
-+}
-+
-+/* Add to the log file an entry denoting a failed translation.  */
-+void
-+_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;
-+  FILE *logfile;
-+
-+  /* Can we reuse the last opened logfile?  */
-+  if (last_logfilename == NULL || strcmp (logfilename, last_logfilename) != 0)
-+    {
-+      /* Close the last used logfile.  */
-+      if (last_logfilename != NULL)
-+      {
-+        if (last_logfile != NULL)
-+          {
-+            fclose (last_logfile);
-+            last_logfile = NULL;
-+          }
-+        free (last_logfilename);
-+        last_logfilename = NULL;
-+      }
-+      /* Open the logfile.  */
-+      last_logfilename = (char *) malloc (strlen (logfilename) + 1);
-+      if (last_logfilename == NULL)
-+      return;
-+      strcpy (last_logfilename, logfilename);
-+      last_logfile = fopen (logfilename, "a");
-+      if (last_logfile == NULL)
-+      return;
-+    }
-+  logfile = last_logfile;
-+
-+  fprintf (logfile, "domain ");
-+  print_escaped (logfile, domainname);
-+  fprintf (logfile, "\nmsgid ");
-+  print_escaped (logfile, msgid1);
-+  if (plural)
-+    {
-+      fprintf (logfile, "\nmsgid_plural ");
-+      print_escaped (logfile, msgid2);
-+      fprintf (logfile, "\nmsgstr[0] \"\"\n");
-+    }
-+  else
-+    fprintf (logfile, "\nmsgstr \"\"\n");
-+  putc ('\n', logfile);
-+}
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/ngettext.c psmisc-20.2.works.clean/intl/ngettext.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/ngettext.c        2001-04-13 23:00:43.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/ngettext.c    2004-10-13 15:18:41.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Implementation of ngettext(3) function.
--   Copyright (C) 1995, 1997, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -45,18 +46,15 @@
- # define NGETTEXT __ngettext
- # define DCNGETTEXT __dcngettext
- #else
--# define NGETTEXT ngettext__
--# define DCNGETTEXT dcngettext__
-+# define NGETTEXT libintl_ngettext
-+# define DCNGETTEXT libintl_dcngettext
- #endif
- /* Look up MSGID in the current default message catalog for the current
-    LC_MESSAGES locale.  If not found, returns MSGID itself (the default
-    text).  */
- char *
--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);
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/os2compat.c psmisc-20.2.works.clean/intl/os2compat.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/os2compat.c       1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/os2compat.c   2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,98 @@
-+/* OS/2 compatibility functions.
-+   Copyright (C) 2001-2002 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#define OS2_AWARE
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/param.h>
-+
-+/* A version of getenv() that works from DLLs */
-+extern unsigned long DosScanEnv (const unsigned char *pszName, unsigned char **ppszValue);
-+
-+char *
-+_nl_getenv (const char *name)
-+{
-+  unsigned char *value;
-+  if (DosScanEnv (name, &value))
-+    return NULL;
-+  else
-+    return value;
-+}
-+
-+/* A fixed size buffer.  */
-+char libintl_nl_default_dirname[MAXPATHLEN+1];
-+
-+char *_nlos2_libdir = NULL;
-+char *_nlos2_localealiaspath = NULL;
-+char *_nlos2_localedir = NULL;
-+
-+static __attribute__((constructor)) void
-+nlos2_initialize ()
-+{
-+  char *root = getenv ("UNIXROOT");
-+  char *gnulocaledir = getenv ("GNULOCALEDIR");
-+
-+  _nlos2_libdir = gnulocaledir;
-+  if (!_nlos2_libdir)
-+    {
-+      if (root)
-+        {
-+          size_t sl = strlen (root);
-+          _nlos2_libdir = (char *) malloc (sl + strlen (LIBDIR) + 1);
-+          memcpy (_nlos2_libdir, root, sl);
-+          memcpy (_nlos2_libdir + sl, LIBDIR, strlen (LIBDIR) + 1);
-+        }
-+      else
-+        _nlos2_libdir = LIBDIR;
-+    }
-+
-+  _nlos2_localealiaspath = gnulocaledir;
-+  if (!_nlos2_localealiaspath)
-+    {
-+      if (root)
-+        {
-+          size_t sl = strlen (root);
-+          _nlos2_localealiaspath = (char *) malloc (sl + strlen (LOCALE_ALIAS_PATH) + 1);
-+          memcpy (_nlos2_localealiaspath, root, sl);
-+          memcpy (_nlos2_localealiaspath + sl, LOCALE_ALIAS_PATH, strlen (LOCALE_ALIAS_PATH) + 1);
-+        }
-+     else
-+        _nlos2_localealiaspath = LOCALE_ALIAS_PATH;
-+    }
-+
-+  _nlos2_localedir = gnulocaledir;
-+  if (!_nlos2_localedir)
-+    {
-+      if (root)
-+        {
-+          size_t sl = strlen (root);
-+          _nlos2_localedir = (char *) malloc (sl + strlen (LOCALEDIR) + 1);
-+          memcpy (_nlos2_localedir, root, sl);
-+          memcpy (_nlos2_localedir + sl, LOCALEDIR, strlen (LOCALEDIR) + 1);
-+        }
-+      else
-+        _nlos2_localedir = LOCALEDIR;
-+    }
-+
-+  if (strlen (_nlos2_localedir) <= MAXPATHLEN)
-+    strcpy (libintl_nl_default_dirname, _nlos2_localedir);
-+}
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/os2compat.h psmisc-20.2.works.clean/intl/os2compat.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/os2compat.h       1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/os2compat.h   2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,46 @@
-+/* OS/2 compatibility defines.
-+   This file is intended to be included from config.h
-+   Copyright (C) 2001-2002 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+/* When included from os2compat.h we need all the original definitions */
-+#ifndef OS2_AWARE
-+
-+#undef LIBDIR
-+#define LIBDIR                        _nlos2_libdir
-+extern char *_nlos2_libdir;
-+
-+#undef LOCALEDIR
-+#define LOCALEDIR             _nlos2_localedir
-+extern char *_nlos2_localedir;
-+
-+#undef LOCALE_ALIAS_PATH
-+#define LOCALE_ALIAS_PATH     _nlos2_localealiaspath
-+extern char *_nlos2_localealiaspath;
-+
-+#endif
-+
-+#undef HAVE_STRCASECMP
-+#define HAVE_STRCASECMP 1
-+#define strcasecmp stricmp
-+#define strncasecmp strnicmp
-+
-+/* We have our own getenv() which works even if library is compiled as DLL */
-+#define getenv _nl_getenv
-+
-+/* Older versions of gettext used -1 as the value of LC_MESSAGES */
-+#define LC_MESSAGES_COMPAT (-1)
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/osdep.c psmisc-20.2.works.clean/intl/osdep.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/osdep.c   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/osdep.c       2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,24 @@
-+/* OS dependent parts of libintl.
-+   Copyright (C) 2001-2002 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#if defined __EMX__
-+# include "os2compat.c"
-+#else
-+/* Avoid AIX compiler warning.  */
-+typedef int dummy;
-+#endif
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/plural-exp.c psmisc-20.2.works.clean/intl/plural-exp.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/plural-exp.c      1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/plural-exp.c  2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,154 @@
-+/* Expression parsing for plural form selection.
-+   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
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <ctype.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#include "plural-exp.h"
-+
-+#if (defined __GNUC__ && !defined __APPLE_CC__) \
-+    || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
-+
-+/* These structs are the constant expression for the germanic plural
-+   form determination.  It represents the expression  "n != 1".  */
-+static const struct expression plvar =
-+{
-+  .nargs = 0,
-+  .operation = var,
-+};
-+static const struct expression plone =
-+{
-+  .nargs = 0,
-+  .operation = num,
-+  .val =
-+  {
-+    .num = 1
-+  }
-+};
-+struct expression GERMANIC_PLURAL =
-+{
-+  .nargs = 2,
-+  .operation = not_equal,
-+  .val =
-+  {
-+    .args =
-+    {
-+      [0] = (struct expression *) &plvar,
-+      [1] = (struct expression *) &plone
-+    }
-+  }
-+};
-+
-+# define INIT_GERMANIC_PLURAL()
-+
-+#else
-+
-+/* For compilers without support for ISO C 99 struct/union initializers:
-+   Initialization at run-time.  */
-+
-+static struct expression plvar;
-+static struct expression plone;
-+struct expression GERMANIC_PLURAL;
-+
-+static void
-+init_germanic_plural ()
-+{
-+  if (plone.val.num == 0)
-+    {
-+      plvar.nargs = 0;
-+      plvar.operation = var;
-+
-+      plone.nargs = 0;
-+      plone.operation = num;
-+      plone.val.num = 1;
-+
-+      GERMANIC_PLURAL.nargs = 2;
-+      GERMANIC_PLURAL.operation = not_equal;
-+      GERMANIC_PLURAL.val.args[0] = &plvar;
-+      GERMANIC_PLURAL.val.args[1] = &plone;
-+    }
-+}
-+
-+# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
-+
-+#endif
-+
-+void
-+internal_function
-+EXTRACT_PLURAL_EXPRESSION (const char *nullentry, struct expression **pluralp,
-+                         unsigned long int *npluralsp)
-+{
-+  if (nullentry != NULL)
-+    {
-+      const char *plural;
-+      const char *nplurals;
-+
-+      plural = strstr (nullentry, "plural=");
-+      nplurals = strstr (nullentry, "nplurals=");
-+      if (plural == NULL || nplurals == NULL)
-+      goto no_plural;
-+      else
-+      {
-+        char *endp;
-+        unsigned long int n;
-+        struct parse_args args;
-+
-+        /* First get the number.  */
-+        nplurals += 9;
-+        while (*nplurals != '\0' && isspace ((unsigned char) *nplurals))
-+          ++nplurals;
-+        if (!(*nplurals >= '0' && *nplurals <= '9'))
-+          goto no_plural;
-+#if defined HAVE_STRTOUL || defined _LIBC
-+        n = strtoul (nplurals, &endp, 10);
-+#else
-+        for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
-+          n = n * 10 + (*endp - '0');
-+#endif
-+        if (nplurals == endp)
-+          goto no_plural;
-+        *npluralsp = n;
-+
-+        /* Due to the restrictions bison imposes onto the interface of the
-+           scanner function we have to put the input string and the result
-+           passed up from the parser into the same structure which address
-+           is passed down to the parser.  */
-+        plural += 7;
-+        args.cp = plural;
-+        if (PLURAL_PARSE (&args) != 0)
-+          goto no_plural;
-+        *pluralp = args.res;
-+      }
-+    }
-+  else
-+    {
-+      /* By default we are using the Germanic form: singular form only
-+         for `one', the plural form otherwise.  Yes, this is also what
-+         English is using since English is a Germanic language.  */
-+    no_plural:
-+      INIT_GERMANIC_PLURAL ();
-+      *pluralp = &GERMANIC_PLURAL;
-+      *npluralsp = 2;
-+    }
-+}
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/plural-exp.h psmisc-20.2.works.clean/intl/plural-exp.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/plural-exp.h      1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/plural-exp.h  2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,118 @@
-+/* Expression parsing and evaluation for plural form selection.
-+   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
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _PLURAL_EXP_H
-+#define _PLURAL_EXP_H
-+
-+#ifndef internal_function
-+# define internal_function
-+#endif
-+
-+#ifndef attribute_hidden
-+# define attribute_hidden
-+#endif
-+
-+
-+/* This is the representation of the expressions to determine the
-+   plural form.  */
-+struct expression
-+{
-+  int nargs;                  /* Number of arguments.  */
-+  enum operator
-+  {
-+    /* Without arguments:  */
-+    var,                      /* The variable "n".  */
-+    num,                      /* Decimal number.  */
-+    /* Unary operators:  */
-+    lnot,                     /* Logical NOT.  */
-+    /* Binary operators:  */
-+    mult,                     /* Multiplication.  */
-+    divide,                   /* Division.  */
-+    module,                   /* Modulo operation.  */
-+    plus,                     /* Addition.  */
-+    minus,                    /* Subtraction.  */
-+    less_than,                        /* Comparison.  */
-+    greater_than,             /* Comparison.  */
-+    less_or_equal,            /* Comparison.  */
-+    greater_or_equal,         /* Comparison.  */
-+    equal,                    /* Comparison for equality.  */
-+    not_equal,                        /* Comparison for inequality.  */
-+    land,                     /* Logical AND.  */
-+    lor,                      /* Logical OR.  */
-+    /* Ternary operators:  */
-+    qmop                      /* Question mark operator.  */
-+  } operation;
-+  union
-+  {
-+    unsigned long int num;    /* Number value for `num'.  */
-+    struct expression *args[3];       /* Up to three arguments.  */
-+  } val;
-+};
-+
-+/* This is the data structure to pass information to the parser and get
-+   the result in a thread-safe way.  */
-+struct parse_args
-+{
-+  const char *cp;
-+  struct expression *res;
-+};
-+
-+
-+/* Names for the libintl functions are a problem.  This source code is used
-+   1. in the GNU C Library library,
-+   2. in the GNU libintl library,
-+   3. in the GNU gettext tools.
-+   The function names in each situation must be different, to allow for
-+   binary incompatible changes in 'struct expression'.  Furthermore,
-+   1. in the GNU C Library library, the names have a __ prefix,
-+   2.+3. in the GNU libintl library and in the GNU gettext tools, the names
-+         must follow ANSI C and not start with __.
-+   So we have to distinguish the three cases.  */
-+#ifdef _LIBC
-+# define FREE_EXPRESSION __gettext_free_exp
-+# define PLURAL_PARSE __gettextparse
-+# define GERMANIC_PLURAL __gettext_germanic_plural
-+# define EXTRACT_PLURAL_EXPRESSION __gettext_extract_plural
-+#elif defined (IN_LIBINTL)
-+# define FREE_EXPRESSION libintl_gettext_free_exp
-+# define PLURAL_PARSE libintl_gettextparse
-+# define GERMANIC_PLURAL libintl_gettext_germanic_plural
-+# define EXTRACT_PLURAL_EXPRESSION libintl_gettext_extract_plural
-+#else
-+# define FREE_EXPRESSION free_plural_expression
-+# define PLURAL_PARSE parse_plural_expression
-+# define GERMANIC_PLURAL germanic_plural
-+# define EXTRACT_PLURAL_EXPRESSION extract_plural_expression
-+#endif
-+
-+extern void FREE_EXPRESSION (struct expression *exp)
-+     internal_function;
-+extern int PLURAL_PARSE (void *arg);
-+extern struct expression GERMANIC_PLURAL attribute_hidden;
-+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 (struct expression *pexp,
-+                                    unsigned long int n);
-+#endif
-+
-+#endif /* _PLURAL_EXP_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/plural.c psmisc-20.2.works.clean/intl/plural.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/plural.c  2001-10-17 17:05:25.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/plural.c      2004-10-13 15:18:43.000000000 -0500
-@@ -1,6 +1,5 @@
--
--/*  A Bison parser, made from plural.y
--    by GNU Bison version 1.28  */
-+/* A Bison parser, made from plural.y
-+   by GNU bison 1.35.  */
- #define YYBISON 1  /* Identify Bison output.  */
-@@ -11,31 +10,32 @@
- #define yychar __gettextchar
- #define yydebug __gettextdebug
- #define yynerrs __gettextnerrs
--#define       EQUOP2  257
--#define       CMPOP2  258
--#define       ADDOP2  259
--#define       MULOP2  260
--#define       NUMBER  261
-+# define      EQUOP2  257
-+# define      CMPOP2  258
-+# define      ADDOP2  259
-+# define      MULOP2  260
-+# define      NUMBER  261
- #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 under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- /* The bison generated parser uses alloca.  AIX 3 forces us to put this
-    declaration at the beginning of the file.  The declaration in bison's
-@@ -49,54 +49,39 @@
- # include <config.h>
- #endif
-+#include <stddef.h>
- #include <stdlib.h>
--#include "gettextP.h"
-+#include "plural-exp.h"
--/* Names for the libintl functions are a problem.  They must not clash
--   with existing names and they should follow ANSI C.  But this source
--   code is also used in GNU C Library where the names have a __
--   prefix.  So we have to make a difference here.  */
--#ifdef _LIBC
--# define FREE_EXPRESSION __gettext_free_exp
--#else
--# define FREE_EXPRESSION gettext_free_exp__
--# define __gettextparse gettextparse__
-+/* The main function generated by the parser is called __gettextparse,
-+   but we want it to be called PLURAL_PARSE.  */
-+#ifndef _LIBC
-+# define __gettextparse PLURAL_PARSE
- #endif
- #define YYLEX_PARAM   &((struct parse_args *) arg)->cp
- #define YYPARSE_PARAM arg
--#line 52 "plural.y"
-+#line 49 "plural.y"
-+#ifndef YYSTYPE
- typedef union {
-   unsigned long int num;
-   enum operator op;
-   struct expression *exp;
--} YYSTYPE;
--#line 58 "plural.y"
-+} yystype;
-+# define YYSTYPE yystype
-+# define YYSTYPE_IS_TRIVIAL 1
-+#endif
-+#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 @@
- }
- 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 @@
- }
- 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 @@
- }
- 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];
-@@ -170,12 +146,8 @@
-   return new_exp (3, op, args);
- }
--#include <stdio.h>
--
--#ifndef __cplusplus
--#ifndef __STDC__
--#define const
--#endif
-+#ifndef YYDEBUG
-+# define YYDEBUG 0
- #endif
-@@ -184,129 +156,152 @@
- #define       YYFLAG          -32768
- #define       YYNTBASE        16
-+/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
- #define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
--static const char yytranslate[] = {     0,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,    10,     2,     2,     2,     2,     5,     2,    14,
--    15,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,    12,     2,     2,
--     2,     2,     3,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,    13,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     4,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--     2,     2,     2,     2,     2,     1,     6,     7,     8,     9,
--    11
-+/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-+static const char yytranslate[] =
-+{
-+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,    10,     2,     2,     2,     2,     5,     2,
-+      14,    15,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,    12,     2,
-+       2,     2,     2,     3,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+      13,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     4,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,     2,     2,     2,     1,     6,     7,     8,
-+       9,    11
- };
--#if YYDEBUG != 0
--static const short yyprhs[] = {     0,
--     0,     2,     8,    12,    16,    20,    24,    28,    32,    35,
--    37,    39
-+#if YYDEBUG
-+static const short yyprhs[] =
-+{
-+       0,     0,     2,     8,    12,    16,    20,    24,    28,    32,
-+      35,    37,    39
- };
--
--static const short yyrhs[] = {    17,
--     0,    17,     3,    17,    12,    17,     0,    17,     4,    17,
--     0,    17,     5,    17,     0,    17,     6,    17,     0,    17,
--     7,    17,     0,    17,     8,    17,     0,    17,     9,    17,
--     0,    10,    17,     0,    13,     0,    11,     0,    14,    17,
--    15,     0
-+static const short yyrhs[] =
-+{
-+      17,     0,    17,     3,    17,    12,    17,     0,    17,     4,
-+      17,     0,    17,     5,    17,     0,    17,     6,    17,     0,
-+      17,     7,    17,     0,    17,     8,    17,     0,    17,     9,
-+      17,     0,    10,    17,     0,    13,     0,    11,     0,    14,
-+      17,    15,     0
- };
- #endif
--#if YYDEBUG != 0
--static const short yyrline[] = { 0,
--   177,   185,   189,   193,   197,   201,   205,   209,   213,   217,
--   221,   226
-+#if YYDEBUG
-+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-+static const short yyrline[] =
-+{
-+       0,   150,   158,   162,   166,   170,   174,   178,   182,   186,
-+     190,   194,   199
- };
- #endif
--#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
-+#if (YYDEBUG) || defined YYERROR_VERBOSE
--static const char * const yytname[] = {   "$","error","$undefined.","'?'","'|'",
--"'&'","EQUOP2","CMPOP2","ADDOP2","MULOP2","'!'","NUMBER","':'","'n'","'('","')'",
--"start","exp", NULL
-+/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
-+static const char *const yytname[] =
-+{
-+  "$", "error", "$undefined.", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2", 
-+  "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'", 
-+  "start", "exp", 0
- };
- #endif
--static const short yyr1[] = {     0,
--    16,    17,    17,    17,    17,    17,    17,    17,    17,    17,
--    17,    17
-+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-+static const short yyr1[] =
-+{
-+       0,    16,    17,    17,    17,    17,    17,    17,    17,    17,
-+      17,    17,    17
- };
--static const short yyr2[] = {     0,
--     1,     5,     3,     3,     3,     3,     3,     3,     2,     1,
--     1,     3
-+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-+static const short yyr2[] =
-+{
-+       0,     1,     5,     3,     3,     3,     3,     3,     3,     2,
-+       1,     1,     3
- };
--static const short yydefact[] = {     0,
--     0,    11,    10,     0,     1,     9,     0,     0,     0,     0,
--     0,     0,     0,     0,    12,     0,     3,     4,     5,     6,
--     7,     8,     0,     2,     0,     0,     0
-+/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-+   doesn't specify something else to do.  Zero means the default is an
-+   error. */
-+static const short yydefact[] =
-+{
-+       0,     0,    11,    10,     0,     1,     9,     0,     0,     0,
-+       0,     0,     0,     0,     0,    12,     0,     3,     4,     5,
-+       6,     7,     8,     0,     2,     0,     0,     0
- };
--static const short yydefgoto[] = {    25,
--     5
-+static const short yydefgoto[] =
-+{
-+      25,     5
- };
--static const short yypact[] = {    -9,
--    -9,-32768,-32768,    -9,    34,-32768,    11,    -9,    -9,    -9,
--    -9,    -9,    -9,    -9,-32768,    24,    39,    43,    16,    26,
--    -3,-32768,    -9,    34,    21,    53,-32768
-+static const short yypact[] =
-+{
-+      -9,    -9,-32768,-32768,    -9,    34,-32768,    11,    -9,    -9,
-+      -9,    -9,    -9,    -9,    -9,-32768,    24,    39,    43,    16,
-+      26,    -3,-32768,    -9,    34,    21,    53,-32768
- };
--static const short yypgoto[] = {-32768,
--    -1
-+static const short yypgoto[] =
-+{
-+  -32768,    -1
- };
- #define       YYLAST          53
--static const short yytable[] = {     6,
--     1,     2,     7,     3,     4,    14,    16,    17,    18,    19,
--    20,    21,    22,     8,     9,    10,    11,    12,    13,    14,
--    26,    24,    12,    13,    14,    15,     8,     9,    10,    11,
--    12,    13,    14,    13,    14,    23,     8,     9,    10,    11,
--    12,    13,    14,    10,    11,    12,    13,    14,    11,    12,
--    13,    14,    27
-+static const short yytable[] =
-+{
-+       6,     1,     2,     7,     3,     4,    14,    16,    17,    18,
-+      19,    20,    21,    22,     8,     9,    10,    11,    12,    13,
-+      14,    26,    24,    12,    13,    14,    15,     8,     9,    10,
-+      11,    12,    13,    14,    13,    14,    23,     8,     9,    10,
-+      11,    12,    13,    14,    10,    11,    12,    13,    14,    11,
-+      12,    13,    14,    27
- };
--static const short yycheck[] = {     1,
--    10,    11,     4,    13,    14,     9,     8,     9,    10,    11,
--    12,    13,    14,     3,     4,     5,     6,     7,     8,     9,
--     0,    23,     7,     8,     9,    15,     3,     4,     5,     6,
--     7,     8,     9,     8,     9,    12,     3,     4,     5,     6,
--     7,     8,     9,     5,     6,     7,     8,     9,     6,     7,
--     8,     9,     0
-+static const short yycheck[] =
-+{
-+       1,    10,    11,     4,    13,    14,     9,     8,     9,    10,
-+      11,    12,    13,    14,     3,     4,     5,     6,     7,     8,
-+       9,     0,    23,     7,     8,     9,    15,     3,     4,     5,
-+       6,     7,     8,     9,     8,     9,    12,     3,     4,     5,
-+       6,     7,     8,     9,     5,     6,     7,     8,     9,     6,
-+       7,     8,     9,     0
- };
- #define YYPURE 1
- /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
--#line 3 "/usr/share/bison/bison.simple"
--/* This file comes from bison-1.28.  */
-+#line 3 "/usr/local/share/bison/bison.simple"
- /* Skeleton output parser for bison,
--   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
-+
-+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
-+   Foundation, Inc.
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -328,62 +323,131 @@
-    This special exception was added by the Free Software Foundation
-    in version 1.24 of Bison.  */
--/* This is the parser code that is written into each bison parser
--  when the %semantic_parser declaration is not specified in the grammar.
--  It was written by Richard Stallman by simplifying the hairy parser
--  used when %semantic_parser is specified.  */
-+/* This is the parser code that is written into each bison parser when
-+   the %semantic_parser declaration is not specified in the grammar.
-+   It was written by Richard Stallman by simplifying the hairy parser
-+   used when %semantic_parser is specified.  */
--#ifndef YYSTACK_USE_ALLOCA
--#ifdef alloca
--#define YYSTACK_USE_ALLOCA
--#else /* alloca not defined */
--#ifdef __GNUC__
--#define YYSTACK_USE_ALLOCA
--#define alloca __builtin_alloca
--#else /* not GNU C.  */
--#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
--#define YYSTACK_USE_ALLOCA
--#include <alloca.h>
--#else /* not sparc */
--/* We think this test detects Watcom and Microsoft C.  */
--/* This used to test MSDOS, but that is a bad idea
--   since that symbol is in the user namespace.  */
--#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
--#if 0 /* No need for malloc.h, which pollutes the namespace;
--       instead, just don't use alloca.  */
--#include <malloc.h>
--#endif
--#else /* not MSDOS, or __TURBOC__ */
--#if defined(_AIX)
--/* I don't know what this was needed for, but it pollutes the namespace.
--   So I turned it off.   rms, 2 May 1997.  */
--/* #include <malloc.h>  */
-- #pragma alloca
--#define YYSTACK_USE_ALLOCA
--#else /* not MSDOS, or __TURBOC__, or _AIX */
--#if 0
--#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
--               and on HPUX 10.  Eventually we can turn this on.  */
--#define YYSTACK_USE_ALLOCA
--#define alloca __builtin_alloca
--#endif /* __hpux */
--#endif
--#endif /* not _AIX */
--#endif /* not MSDOS, or __TURBOC__ */
--#endif /* not sparc */
--#endif /* not GNU C */
--#endif /* alloca not defined */
--#endif /* YYSTACK_USE_ALLOCA not defined */
-+/* All symbols defined below should begin with yy or YY, to avoid
-+   infringing on user name space.  This should be done even for local
-+   variables, as they might otherwise be expanded by user macros.
-+   There are some unavoidable exceptions within include files to
-+   define necessary library symbols; they are noted "INFRINGES ON
-+   USER NAME SPACE" below.  */
-+
-+#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
-+
-+/* The parser invokes alloca or malloc; define the necessary symbols.  */
-+
-+# if YYSTACK_USE_ALLOCA
-+#  define YYSTACK_ALLOC alloca
-+# else
-+#  ifndef YYSTACK_USE_ALLOCA
-+#   if defined (alloca) || defined (_ALLOCA_H)
-+#    define YYSTACK_ALLOC alloca
-+#   else
-+#    ifdef __GNUC__
-+#     define YYSTACK_ALLOC __builtin_alloca
-+#    endif
-+#   endif
-+#  endif
-+# endif
-+
-+# ifdef YYSTACK_ALLOC
-+   /* Pacify GCC's `empty if-body' warning. */
-+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-+# else
-+#  if defined (__STDC__) || defined (__cplusplus)
-+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+#   define YYSIZE_T size_t
-+#  endif
-+#  define YYSTACK_ALLOC malloc
-+#  define YYSTACK_FREE free
-+# endif
-+#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
-+
-+
-+#if (! defined (yyoverflow) \
-+     && (! defined (__cplusplus) \
-+       || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-+
-+/* A type that is properly aligned for any stack member.  */
-+union yyalloc
-+{
-+  short yyss;
-+  YYSTYPE yyvs;
-+# if YYLSP_NEEDED
-+  YYLTYPE yyls;
-+# endif
-+};
-+
-+/* The size of the maximum gap between one aligned stack and the next.  */
-+# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
-+
-+/* The size of an array large to enough to hold all stacks, each with
-+   N elements.  */
-+# if YYLSP_NEEDED
-+#  define YYSTACK_BYTES(N) \
-+     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))    \
-+      + 2 * YYSTACK_GAP_MAX)
-+# else
-+#  define YYSTACK_BYTES(N) \
-+     ((N) * (sizeof (short) + sizeof (YYSTYPE))                               \
-+      + YYSTACK_GAP_MAX)
-+# endif
-+
-+/* Copy COUNT objects from FROM to TO.  The source and destination do
-+   not overlap.  */
-+# ifndef YYCOPY
-+#  if 1 < __GNUC__
-+#   define YYCOPY(To, From, Count) \
-+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-+#  else
-+#   define YYCOPY(To, From, Count)            \
-+      do                                      \
-+      {                                       \
-+        register YYSIZE_T yyi;                \
-+        for (yyi = 0; yyi < (Count); yyi++)   \
-+          (To)[yyi] = (From)[yyi];            \
-+      }                                       \
-+      while (0)
-+#  endif
-+# endif
-+
-+/* Relocate STACK from its old location to the new one.  The
-+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-+   elements in the stack, and YYPTR gives the new location of the
-+   stack.  Advance YYPTR to a properly aligned location for the next
-+   stack.  */
-+# define YYSTACK_RELOCATE(Stack)                                      \
-+    do                                                                        \
-+      {                                                                       \
-+      YYSIZE_T yynewbytes;                                            \
-+      YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-+      Stack = &yyptr->Stack;                                          \
-+      yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
-+      yyptr += yynewbytes / sizeof (*yyptr);                          \
-+      }                                                                       \
-+    while (0)
--#ifdef YYSTACK_USE_ALLOCA
--#define YYSTACK_ALLOC alloca
--#else
--#define YYSTACK_ALLOC malloc
- #endif
--/* Note: there must be only one dollar sign in this file.
--   It is replaced by the list of actions, each action
--   as one case of the switch.  */
-+
-+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-+# define YYSIZE_T __SIZE_TYPE__
-+#endif
-+#if ! defined (YYSIZE_T) && defined (size_t)
-+# define YYSIZE_T size_t
-+#endif
-+#if ! defined (YYSIZE_T)
-+# if defined (__STDC__) || defined (__cplusplus)
-+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+#  define YYSIZE_T size_t
-+# endif
-+#endif
-+#if ! defined (YYSIZE_T)
-+# define YYSIZE_T unsigned int
-+#endif
- #define yyerrok               (yyerrstatus = 0)
- #define yyclearin     (yychar = YYEMPTY)
-@@ -392,131 +456,161 @@
- #define YYACCEPT      goto yyacceptlab
- #define YYABORT       goto yyabortlab
- #define YYERROR               goto yyerrlab1
--/* Like YYERROR except do call yyerror.
--   This remains here temporarily to ease the
--   transition to the new meaning of YYERROR, for GCC.
-+/* Like YYERROR except do call yyerror.  This remains here temporarily
-+   to ease the transition to the new meaning of YYERROR, for GCC.
-    Once GCC version 2 has supplanted version 1, this can go.  */
- #define YYFAIL                goto yyerrlab
- #define YYRECOVERING()  (!!yyerrstatus)
--#define YYBACKUP(token, value) \
-+#define YYBACKUP(Token, Value)                                        \
- do                                                            \
-   if (yychar == YYEMPTY && yylen == 1)                                \
--    { yychar = (token), yylval = (value);                     \
-+    {                                                         \
-+      yychar = (Token);                                               \
-+      yylval = (Value);                                               \
-       yychar1 = YYTRANSLATE (yychar);                         \
-       YYPOPSTACK;                                             \
-       goto yybackup;                                          \
-     }                                                         \
-   else                                                                \
--    { yyerror ("syntax error: cannot back up"); YYERROR; }    \
-+    {                                                                 \
-+      yyerror ("syntax error: cannot back up");                       \
-+      YYERROR;                                                        \
-+    }                                                         \
- while (0)
- #define YYTERROR      1
- #define YYERRCODE     256
--#ifndef YYPURE
--#define YYLEX         yylex()
--#endif
--#ifdef YYPURE
--#ifdef YYLSP_NEEDED
--#ifdef YYLEX_PARAM
--#define YYLEX         yylex(&yylval, &yylloc, YYLEX_PARAM)
--#else
--#define YYLEX         yylex(&yylval, &yylloc)
--#endif
--#else /* not YYLSP_NEEDED */
--#ifdef YYLEX_PARAM
--#define YYLEX         yylex(&yylval, YYLEX_PARAM)
--#else
--#define YYLEX         yylex(&yylval)
--#endif
--#endif /* not YYLSP_NEEDED */
-+/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-+   are run).
-+
-+   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
-+   first token.  By default, to implement support for ranges, extend
-+   its range to the last symbol.  */
-+
-+#ifndef YYLLOC_DEFAULT
-+# define YYLLOC_DEFAULT(Current, Rhs, N)              \
-+   Current.last_line   = Rhs[N].last_line;    \
-+   Current.last_column = Rhs[N].last_column;
- #endif
--/* If nonreentrant, generate the variables here */
--#ifndef YYPURE
-+/* YYLEX -- calling `yylex' with the right arguments.  */
--int   yychar;                 /*  the lookahead symbol                */
--YYSTYPE       yylval;                 /*  the semantic value of the           */
--                              /*  lookahead symbol                    */
-+#if YYPURE
-+# if YYLSP_NEEDED
-+#  ifdef YYLEX_PARAM
-+#   define YYLEX              yylex (&yylval, &yylloc, YYLEX_PARAM)
-+#  else
-+#   define YYLEX              yylex (&yylval, &yylloc)
-+#  endif
-+# else /* !YYLSP_NEEDED */
-+#  ifdef YYLEX_PARAM
-+#   define YYLEX              yylex (&yylval, YYLEX_PARAM)
-+#  else
-+#   define YYLEX              yylex (&yylval)
-+#  endif
-+# endif /* !YYLSP_NEEDED */
-+#else /* !YYPURE */
-+# define YYLEX                        yylex ()
-+#endif /* !YYPURE */
--#ifdef YYLSP_NEEDED
--YYLTYPE yylloc;                       /*  location data for the lookahead     */
--                              /*  symbol                              */
--#endif
--int yynerrs;                  /*  number of parse errors so far       */
--#endif  /* not YYPURE */
-+/* Enable debugging if requested.  */
-+#if YYDEBUG
--#if YYDEBUG != 0
--int yydebug;                  /*  nonzero means print parse trace     */
--/* Since this is uninitialized, it does not stop multiple parsers
--   from coexisting.  */
--#endif
-+# ifndef YYFPRINTF
-+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-+#  define YYFPRINTF fprintf
-+# endif
--/*  YYINITDEPTH indicates the initial size of the parser's stacks     */
-+# define YYDPRINTF(Args)                      \
-+do {                                          \
-+  if (yydebug)                                        \
-+    YYFPRINTF Args;                           \
-+} while (0)
-+/* Nonzero means print parse trace.  It is left uninitialized so that
-+   multiple parsers can coexist.  */
-+int yydebug;
-+#else /* !YYDEBUG */
-+# define YYDPRINTF(Args)
-+#endif /* !YYDEBUG */
-+/* YYINITDEPTH -- initial size of the parser's stacks.  */
- #ifndef       YYINITDEPTH
--#define YYINITDEPTH 200
-+# define YYINITDEPTH 200
- #endif
--/*  YYMAXDEPTH is the maximum size the stacks can grow to
--    (effective only if the built-in stack extension method is used).  */
-+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-+   if the built-in stack extension method is used).
-+
-+   Do not make this value too large; the results are undefined if
-+   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+   evaluated with infinite-precision integer arithmetic.  */
- #if YYMAXDEPTH == 0
--#undef YYMAXDEPTH
-+# undef YYMAXDEPTH
- #endif
- #ifndef YYMAXDEPTH
--#define YYMAXDEPTH 10000
-+# define YYMAXDEPTH 10000
- #endif
\f
--/* Define __yy_memcpy.  Note that the size argument
--   should be passed with type unsigned int, because that is what the non-GCC
--   definitions require.  With GCC, __builtin_memcpy takes an arg
--   of type size_t, but it can handle unsigned int.  */
--
--#if __GNUC__ > 1              /* GNU C and GNU C++ define this.  */
--#define __yy_memcpy(TO,FROM,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
--#else                         /* not GNU C or C++ */
--#ifndef __cplusplus
-+#ifdef YYERROR_VERBOSE
--/* This is the most reliable way to avoid incompatibilities
--   in available built-in functions on various systems.  */
--static void
--__yy_memcpy (to, from, count)
--     char *to;
--     char *from;
--     unsigned int count;
-+# ifndef yystrlen
-+#  if defined (__GLIBC__) && defined (_STRING_H)
-+#   define yystrlen strlen
-+#  else
-+/* Return the length of YYSTR.  */
-+static YYSIZE_T
-+#   if defined (__STDC__) || defined (__cplusplus)
-+yystrlen (const char *yystr)
-+#   else
-+yystrlen (yystr)
-+     const char *yystr;
-+#   endif
- {
--  register char *f = from;
--  register char *t = to;
--  register int i = count;
-+  register const char *yys = yystr;
--  while (i-- > 0)
--    *t++ = *f++;
--}
-+  while (*yys++ != '\0')
-+    continue;
--#else /* __cplusplus */
-+  return yys - yystr - 1;
-+}
-+#  endif
-+# endif
--/* This is the most reliable way to avoid incompatibilities
--   in available built-in functions on various systems.  */
--static void
--__yy_memcpy (char *to, char *from, unsigned int count)
-+# ifndef yystpcpy
-+#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+#   define yystpcpy stpcpy
-+#  else
-+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-+   YYDEST.  */
-+static char *
-+#   if defined (__STDC__) || defined (__cplusplus)
-+yystpcpy (char *yydest, const char *yysrc)
-+#   else
-+yystpcpy (yydest, yysrc)
-+     char *yydest;
-+     const char *yysrc;
-+#   endif
- {
--  register char *t = to;
--  register char *f = from;
--  register int i = count;
-+  register char *yyd = yydest;
-+  register const char *yys = yysrc;
--  while (i-- > 0)
--    *t++ = *f++;
--}
-+  while ((*yyd++ = *yys++) != '\0')
-+    continue;
--#endif
-+  return yyd - 1;
-+}
-+#  endif
-+# endif
- #endif
\f
--#line 217 "/usr/share/bison/bison.simple"
-+#line 315 "/usr/local/share/bison/bison.simple"
-+
- /* The user can define YYPARSE_PARAM as the name of an argument to be passed
-    into yyparse.  The argument should have type void *.
-@@ -525,76 +619,121 @@
-    to the proper pointer type.  */
- #ifdef YYPARSE_PARAM
--#ifdef __cplusplus
--#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
--#define YYPARSE_PARAM_DECL
--#else /* not __cplusplus */
--#define YYPARSE_PARAM_ARG YYPARSE_PARAM
--#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
--#endif /* not __cplusplus */
--#else /* not YYPARSE_PARAM */
--#define YYPARSE_PARAM_ARG
--#define YYPARSE_PARAM_DECL
--#endif /* not YYPARSE_PARAM */
-+# if defined (__STDC__) || defined (__cplusplus)
-+#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-+#  define YYPARSE_PARAM_DECL
-+# else
-+#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
-+#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-+# endif
-+#else /* !YYPARSE_PARAM */
-+# define YYPARSE_PARAM_ARG
-+# define YYPARSE_PARAM_DECL
-+#endif /* !YYPARSE_PARAM */
- /* Prevent warning if -Wstrict-prototypes.  */
- #ifdef __GNUC__
--#ifdef YYPARSE_PARAM
-+# ifdef YYPARSE_PARAM
- int yyparse (void *);
--#else
-+# else
- int yyparse (void);
-+# endif
- #endif
-+
-+/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
-+   variables are global, or local to YYPARSE.  */
-+
-+#define YY_DECL_NON_LSP_VARIABLES                     \
-+/* The lookahead symbol.  */                          \
-+int yychar;                                           \
-+                                                      \
-+/* The semantic value of the lookahead symbol. */     \
-+YYSTYPE yylval;                                               \
-+                                                      \
-+/* Number of parse errors so far.  */                 \
-+int yynerrs;
-+
-+#if YYLSP_NEEDED
-+# define YY_DECL_VARIABLES                    \
-+YY_DECL_NON_LSP_VARIABLES                     \
-+                                              \
-+/* Location data for the lookahead symbol.  */        \
-+YYLTYPE yylloc;
-+#else
-+# define YY_DECL_VARIABLES                    \
-+YY_DECL_NON_LSP_VARIABLES
- #endif
-+
-+/* If nonreentrant, generate the variables here. */
-+
-+#if !YYPURE
-+YY_DECL_VARIABLES
-+#endif  /* !YYPURE */
-+
- int
--yyparse(YYPARSE_PARAM_ARG)
-+yyparse (YYPARSE_PARAM_ARG)
-      YYPARSE_PARAM_DECL
- {
-+  /* If reentrant, generate the variables here. */
-+#if YYPURE
-+  YY_DECL_VARIABLES
-+#endif  /* !YYPURE */
-+
-   register int yystate;
-   register int yyn;
--  register short *yyssp;
--  register YYSTYPE *yyvsp;
--  int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
--  int yychar1 = 0;            /*  lookahead token as an internal (translated) token number */
-+  int yyresult;
-+  /* Number of tokens to shift before error messages enabled.  */
-+  int yyerrstatus;
-+  /* Lookahead token as an internal (translated) token number.  */
-+  int yychar1 = 0;
--  short       yyssa[YYINITDEPTH];     /*  the state stack                     */
--  YYSTYPE yyvsa[YYINITDEPTH]; /*  the semantic value stack            */
-+  /* Three stacks and their tools:
-+     `yyss': related to states,
-+     `yyvs': related to semantic values,
-+     `yyls': related to locations.
--  short *yyss = yyssa;                /*  refer to the stacks thru separate pointers */
--  YYSTYPE *yyvs = yyvsa;      /*  to allow yyoverflow to reallocate them elsewhere */
-+     Refer to the stacks thru separate pointers, to allow yyoverflow
-+     to reallocate them elsewhere.  */
--#ifdef YYLSP_NEEDED
--  YYLTYPE yylsa[YYINITDEPTH]; /*  the location stack                  */
-+  /* The state stack. */
-+  short       yyssa[YYINITDEPTH];
-+  short *yyss = yyssa;
-+  register short *yyssp;
-+
-+  /* The semantic value stack.  */
-+  YYSTYPE yyvsa[YYINITDEPTH];
-+  YYSTYPE *yyvs = yyvsa;
-+  register YYSTYPE *yyvsp;
-+
-+#if YYLSP_NEEDED
-+  /* The location stack.  */
-+  YYLTYPE yylsa[YYINITDEPTH];
-   YYLTYPE *yyls = yylsa;
-   YYLTYPE *yylsp;
-+#endif
--#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-+#if YYLSP_NEEDED
-+# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
- #else
--#define YYPOPSTACK   (yyvsp--, yyssp--)
-+# define YYPOPSTACK   (yyvsp--, yyssp--)
- #endif
--  int yystacksize = YYINITDEPTH;
--  int yyfree_stacks = 0;
-+  YYSIZE_T yystacksize = YYINITDEPTH;
--#ifdef YYPURE
--  int yychar;
--  YYSTYPE yylval;
--  int yynerrs;
--#ifdef YYLSP_NEEDED
--  YYLTYPE yylloc;
--#endif
--#endif
--  YYSTYPE yyval;              /*  the variable used to return         */
--                              /*  semantic values from the action     */
--                              /*  routines                            */
-+  /* The variables used to return semantic value and location from the
-+     action routines.  */
-+  YYSTYPE yyval;
-+#if YYLSP_NEEDED
-+  YYLTYPE yyloc;
-+#endif
-+  /* When reducing, the number of symbols on the RHS of the reduced
-+     rule. */
-   int yylen;
--#if YYDEBUG != 0
--  if (yydebug)
--    fprintf(stderr, "Starting parse\n");
--#endif
-+  YYDPRINTF ((stderr, "Starting parse\n"));
-   yystate = 0;
-   yyerrstatus = 0;
-@@ -606,110 +745,110 @@
-      so that they stay on the same level as the state stack.
-      The wasted elements are never initialized.  */
--  yyssp = yyss - 1;
-+  yyssp = yyss;
-   yyvsp = yyvs;
--#ifdef YYLSP_NEEDED
-+#if YYLSP_NEEDED
-   yylsp = yyls;
- #endif
-+  goto yysetstate;
--/* Push a new state, which is found in  yystate  .  */
--/* In all cases, when you get here, the value and location stacks
--   have just been pushed. so pushing a state here evens the stacks.  */
--yynewstate:
-+/*------------------------------------------------------------.
-+| yynewstate -- Push a new state, which is found in yystate.  |
-+`------------------------------------------------------------*/
-+ yynewstate:
-+  /* In all cases, when you get here, the value and location stacks
-+     have just been pushed. so pushing a state here evens the stacks.
-+     */
-+  yyssp++;
--  *++yyssp = yystate;
-+ yysetstate:
-+  *yyssp = yystate;
-   if (yyssp >= yyss + yystacksize - 1)
-     {
--      /* Give user a chance to reallocate the stack */
--      /* Use copies of these so that the &'s don't force the real ones into memory. */
--      YYSTYPE *yyvs1 = yyvs;
--      short *yyss1 = yyss;
--#ifdef YYLSP_NEEDED
--      YYLTYPE *yyls1 = yyls;
--#endif
--
-       /* Get the current used size of the three stacks, in elements.  */
--      int size = yyssp - yyss + 1;
-+      YYSIZE_T yysize = yyssp - yyss + 1;
- #ifdef yyoverflow
--      /* Each stack pointer address is followed by the size of
--       the data in use in that stack, in bytes.  */
--#ifdef YYLSP_NEEDED
--      /* This used to be a conditional around just the two extra args,
--       but that might be undefined if yyoverflow is a macro.  */
--      yyoverflow("parser stack overflow",
--               &yyss1, size * sizeof (*yyssp),
--               &yyvs1, size * sizeof (*yyvsp),
--               &yyls1, size * sizeof (*yylsp),
--               &yystacksize);
--#else
--      yyoverflow("parser stack overflow",
--               &yyss1, size * sizeof (*yyssp),
--               &yyvs1, size * sizeof (*yyvsp),
--               &yystacksize);
--#endif
-+      {
-+      /* Give user a chance to reallocate the stack. Use copies of
-+         these so that the &'s don't force the real ones into
-+         memory.  */
-+      YYSTYPE *yyvs1 = yyvs;
-+      short *yyss1 = yyss;
--      yyss = yyss1; yyvs = yyvs1;
--#ifdef YYLSP_NEEDED
--      yyls = yyls1;
--#endif
-+      /* Each stack pointer address is followed by the size of the
-+         data in use in that stack, in bytes.  */
-+# if YYLSP_NEEDED
-+      YYLTYPE *yyls1 = yyls;
-+      /* This used to be a conditional around just the two extra args,
-+         but that might be undefined if yyoverflow is a macro.  */
-+      yyoverflow ("parser stack overflow",
-+                  &yyss1, yysize * sizeof (*yyssp),
-+                  &yyvs1, yysize * sizeof (*yyvsp),
-+                  &yyls1, yysize * sizeof (*yylsp),
-+                  &yystacksize);
-+      yyls = yyls1;
-+# else
-+      yyoverflow ("parser stack overflow",
-+                  &yyss1, yysize * sizeof (*yyssp),
-+                  &yyvs1, yysize * sizeof (*yyvsp),
-+                  &yystacksize);
-+# endif
-+      yyss = yyss1;
-+      yyvs = yyvs1;
-+      }
- #else /* no yyoverflow */
-+# ifndef YYSTACK_RELOCATE
-+      goto yyoverflowlab;
-+# else
-       /* Extend the stack our own way.  */
-       if (yystacksize >= YYMAXDEPTH)
--      {
--        yyerror("parser stack overflow");
--        if (yyfree_stacks)
--          {
--            free (yyss);
--            free (yyvs);
--#ifdef YYLSP_NEEDED
--            free (yyls);
--#endif
--          }
--        return 2;
--      }
-+      goto yyoverflowlab;
-       yystacksize *= 2;
-       if (yystacksize > YYMAXDEPTH)
-       yystacksize = YYMAXDEPTH;
--#ifndef YYSTACK_USE_ALLOCA
--      yyfree_stacks = 1;
--#endif
--      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
--      __yy_memcpy ((char *)yyss, (char *)yyss1,
--                 size * (unsigned int) sizeof (*yyssp));
--      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
--      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
--                 size * (unsigned int) sizeof (*yyvsp));
--#ifdef YYLSP_NEEDED
--      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
--      __yy_memcpy ((char *)yyls, (char *)yyls1,
--                 size * (unsigned int) sizeof (*yylsp));
--#endif
-+
-+      {
-+      short *yyss1 = yyss;
-+      union yyalloc *yyptr =
-+        (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-+      if (! yyptr)
-+        goto yyoverflowlab;
-+      YYSTACK_RELOCATE (yyss);
-+      YYSTACK_RELOCATE (yyvs);
-+# if YYLSP_NEEDED
-+      YYSTACK_RELOCATE (yyls);
-+# endif
-+# undef YYSTACK_RELOCATE
-+      if (yyss1 != yyssa)
-+        YYSTACK_FREE (yyss1);
-+      }
-+# endif
- #endif /* no yyoverflow */
--      yyssp = yyss + size - 1;
--      yyvsp = yyvs + size - 1;
--#ifdef YYLSP_NEEDED
--      yylsp = yyls + size - 1;
-+      yyssp = yyss + yysize - 1;
-+      yyvsp = yyvs + yysize - 1;
-+#if YYLSP_NEEDED
-+      yylsp = yyls + yysize - 1;
- #endif
--#if YYDEBUG != 0
--      if (yydebug)
--      fprintf(stderr, "Stack size increased to %d\n", yystacksize);
--#endif
-+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-+                (unsigned long int) yystacksize));
-       if (yyssp >= yyss + yystacksize - 1)
-       YYABORT;
-     }
--#if YYDEBUG != 0
--  if (yydebug)
--    fprintf(stderr, "Entering state %d\n", yystate);
--#endif
-+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-   goto yybackup;
-- yybackup:
-+
-+
-+/*-----------.
-+| yybackup.  |
-+`-----------*/
-+yybackup:
- /* Do appropriate processing given the current state.  */
- /* Read a lookahead token if we need one and don't already have one.  */
-@@ -728,10 +867,7 @@
-   if (yychar == YYEMPTY)
-     {
--#if YYDEBUG != 0
--      if (yydebug)
--      fprintf(stderr, "Reading a token: ");
--#endif
-+      YYDPRINTF ((stderr, "Reading a token: "));
-       yychar = YYLEX;
-     }
-@@ -742,25 +878,25 @@
-       yychar1 = 0;
-       yychar = YYEOF;         /* Don't call YYLEX any more */
--#if YYDEBUG != 0
--      if (yydebug)
--      fprintf(stderr, "Now at end of input.\n");
--#endif
-+      YYDPRINTF ((stderr, "Now at end of input.\n"));
-     }
-   else
-     {
--      yychar1 = YYTRANSLATE(yychar);
-+      yychar1 = YYTRANSLATE (yychar);
--#if YYDEBUG != 0
-+#if YYDEBUG
-+     /* We have to keep this `#if YYDEBUG', since we use variables
-+      which are defined only if `YYDEBUG' is set.  */
-       if (yydebug)
-       {
--        fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
--        /* Give the individual parser a way to print the precise meaning
--           of a token, for further debugging info.  */
--#ifdef YYPRINT
-+        YYFPRINTF (stderr, "Next token is %d (%s",
-+                   yychar, yytname[yychar1]);
-+        /* Give the individual parser a way to print the precise
-+           meaning of a token, for further debugging info.  */
-+# ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
--#endif
--        fprintf (stderr, ")\n");
-+# endif
-+        YYFPRINTF (stderr, ")\n");
-       }
- #endif
-     }
-@@ -792,177 +928,185 @@
-     YYACCEPT;
-   /* Shift the lookahead token.  */
--
--#if YYDEBUG != 0
--  if (yydebug)
--    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
--#endif
-+  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-+            yychar, yytname[yychar1]));
-   /* Discard the token being shifted unless it is eof.  */
-   if (yychar != YYEOF)
-     yychar = YYEMPTY;
-   *++yyvsp = yylval;
--#ifdef YYLSP_NEEDED
-+#if YYLSP_NEEDED
-   *++yylsp = yylloc;
- #endif
--  /* count tokens shifted since error; after three, turn off error status.  */
--  if (yyerrstatus) yyerrstatus--;
-+  /* Count tokens shifted since error; after three, turn off error
-+     status.  */
-+  if (yyerrstatus)
-+    yyerrstatus--;
-   yystate = yyn;
-   goto yynewstate;
--/* Do the default action for the current state.  */
--yydefault:
-+/*-----------------------------------------------------------.
-+| yydefault -- do the default action for the current state.  |
-+`-----------------------------------------------------------*/
-+yydefault:
-   yyn = yydefact[yystate];
-   if (yyn == 0)
-     goto yyerrlab;
-+  goto yyreduce;
--/* Do a reduction.  yyn is the number of a rule to reduce with.  */
-+
-+/*-----------------------------.
-+| yyreduce -- Do a reduction.  |
-+`-----------------------------*/
- yyreduce:
-+  /* yyn is the number of a rule to reduce with.  */
-   yylen = yyr2[yyn];
--  if (yylen > 0)
--    yyval = yyvsp[1-yylen]; /* implement default value of the action */
--#if YYDEBUG != 0
-+  /* If YYLEN is nonzero, implement the default value of the action:
-+     `$$ = $1'.
-+
-+     Otherwise, the following line sets YYVAL to the semantic value of
-+     the lookahead token.  This behavior is undocumented and Bison
-+     users should not rely upon it.  Assigning to YYVAL
-+     unconditionally makes the parser a bit smaller, and it avoids a
-+     GCC warning that YYVAL may be used uninitialized.  */
-+  yyval = yyvsp[1-yylen];
-+
-+#if YYLSP_NEEDED
-+  /* Similarly for the default location.  Let the user run additional
-+     commands if for instance locations are ranges.  */
-+  yyloc = yylsp[1-yylen];
-+  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-+#endif
-+
-+#if YYDEBUG
-+  /* We have to keep this `#if YYDEBUG', since we use variables which
-+     are defined only if `YYDEBUG' is set.  */
-   if (yydebug)
-     {
--      int i;
-+      int yyi;
--      fprintf (stderr, "Reducing via rule %d (line %d), ",
--             yyn, yyrline[yyn]);
-+      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-+               yyn, yyrline[yyn]);
-       /* Print the symbols being reduced, and their result.  */
--      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
--      fprintf (stderr, "%s ", yytname[yyrhs[i]]);
--      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-+      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-+      YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-+      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-     }
- #endif
--
-   switch (yyn) {
- case 1:
--#line 178 "plural.y"
-+#line 151 "plural.y"
- {
-           if (yyvsp[0].exp == NULL)
-             YYABORT;
-           ((struct parse_args *) arg)->res = yyvsp[0].exp;
--        ;
--    break;}
-+        }
-+    break;
- case 2:
--#line 186 "plural.y"
-+#line 159 "plural.y"
- {
-           yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
--        ;
--    break;}
-+        }
-+    break;
- case 3:
--#line 190 "plural.y"
-+#line 163 "plural.y"
- {
-           yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
--        ;
--    break;}
-+        }
-+    break;
- case 4:
--#line 194 "plural.y"
-+#line 167 "plural.y"
- {
-           yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
--        ;
--    break;}
-+        }
-+    break;
- case 5:
--#line 198 "plural.y"
-+#line 171 "plural.y"
- {
-           yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
--        ;
--    break;}
-+        }
-+    break;
- case 6:
--#line 202 "plural.y"
-+#line 175 "plural.y"
- {
-           yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
--        ;
--    break;}
-+        }
-+    break;
- case 7:
--#line 206 "plural.y"
-+#line 179 "plural.y"
- {
-           yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
--        ;
--    break;}
-+        }
-+    break;
- case 8:
--#line 210 "plural.y"
-+#line 183 "plural.y"
- {
-           yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
--        ;
--    break;}
-+        }
-+    break;
- case 9:
--#line 214 "plural.y"
-+#line 187 "plural.y"
- {
-           yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
--        ;
--    break;}
-+        }
-+    break;
- case 10:
--#line 218 "plural.y"
-+#line 191 "plural.y"
- {
-           yyval.exp = new_exp_0 (var);
--        ;
--    break;}
-+        }
-+    break;
- case 11:
--#line 222 "plural.y"
-+#line 195 "plural.y"
- {
-           if ((yyval.exp = new_exp_0 (num)) != NULL)
-             yyval.exp->val.num = yyvsp[0].num;
--        ;
--    break;}
-+        }
-+    break;
- case 12:
--#line 227 "plural.y"
-+#line 200 "plural.y"
- {
-           yyval.exp = yyvsp[-1].exp;
--        ;
--    break;}
-+        }
-+    break;
- }
--   /* the action file gets copied in in place of this dollarsign */
--#line 543 "/usr/share/bison/bison.simple"
-+
-+#line 705 "/usr/local/share/bison/bison.simple"
-+
\f
-   yyvsp -= yylen;
-   yyssp -= yylen;
--#ifdef YYLSP_NEEDED
-+#if YYLSP_NEEDED
-   yylsp -= yylen;
- #endif
--#if YYDEBUG != 0
-+#if YYDEBUG
-   if (yydebug)
-     {
--      short *ssp1 = yyss - 1;
--      fprintf (stderr, "state stack now");
--      while (ssp1 != yyssp)
--      fprintf (stderr, " %d", *++ssp1);
--      fprintf (stderr, "\n");
-+      short *yyssp1 = yyss - 1;
-+      YYFPRINTF (stderr, "state stack now");
-+      while (yyssp1 != yyssp)
-+      YYFPRINTF (stderr, " %d", *++yyssp1);
-+      YYFPRINTF (stderr, "\n");
-     }
- #endif
-   *++yyvsp = yyval;
--
--#ifdef YYLSP_NEEDED
--  yylsp++;
--  if (yylen == 0)
--    {
--      yylsp->first_line = yylloc.first_line;
--      yylsp->first_column = yylloc.first_column;
--      yylsp->last_line = (yylsp-1)->last_line;
--      yylsp->last_column = (yylsp-1)->last_column;
--      yylsp->text = 0;
--    }
--  else
--    {
--      yylsp->last_line = (yylsp+yylen-1)->last_line;
--      yylsp->last_column = (yylsp+yylen-1)->last_column;
--    }
-+#if YYLSP_NEEDED
-+  *++yylsp = yyloc;
- #endif
--  /* Now "shift" the result of the reduction.
--     Determine what state that goes to,
--     based on the state we popped back to
--     and the rule number reduced by.  */
-+  /* Now `shift' the result of the reduction.  Determine what state
-+     that goes to, based on the state we popped back to and the rule
-+     number reduced by.  */
-   yyn = yyr1[yyn];
-@@ -974,10 +1118,13 @@
-   goto yynewstate;
--yyerrlab:   /* here on detecting error */
--  if (! yyerrstatus)
--    /* If not already recovering from an error, report this error.  */
-+/*------------------------------------.
-+| yyerrlab -- here on detecting error |
-+`------------------------------------*/
-+yyerrlab:
-+  /* If not already recovering from an error, report this error.  */
-+  if (!yyerrstatus)
-     {
-       ++yynerrs;
-@@ -986,102 +1133,121 @@
-       if (yyn > YYFLAG && yyn < YYLAST)
-       {
--        int size = 0;
--        char *msg;
--        int x, count;
-+        YYSIZE_T yysize = 0;
-+        char *yymsg;
-+        int yyx, yycount;
--        count = 0;
--        /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
--        for (x = (yyn < 0 ? -yyn : 0);
--             x < (sizeof(yytname) / sizeof(char *)); x++)
--          if (yycheck[x + yyn] == x)
--            size += strlen(yytname[x]) + 15, count++;
--        msg = (char *) malloc(size + 15);
--        if (msg != 0)
-+        yycount = 0;
-+        /* Start YYX at -YYN if negative to avoid negative indexes in
-+           YYCHECK.  */
-+        for (yyx = yyn < 0 ? -yyn : 0;
-+             yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-+          if (yycheck[yyx + yyn] == yyx)
-+            yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-+        yysize += yystrlen ("parse error, unexpected ") + 1;
-+        yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
-+        yymsg = (char *) YYSTACK_ALLOC (yysize);
-+        if (yymsg != 0)
-           {
--            strcpy(msg, "parse error");
-+            char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-+            yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
--            if (count < 5)
-+            if (yycount < 5)
-               {
--                count = 0;
--                for (x = (yyn < 0 ? -yyn : 0);
--                     x < (sizeof(yytname) / sizeof(char *)); x++)
--                  if (yycheck[x + yyn] == x)
-+                yycount = 0;
-+                for (yyx = yyn < 0 ? -yyn : 0;
-+                     yyx < (int) (sizeof (yytname) / sizeof (char *));
-+                     yyx++)
-+                  if (yycheck[yyx + yyn] == yyx)
-                     {
--                      strcat(msg, count == 0 ? ", expecting `" : " or `");
--                      strcat(msg, yytname[x]);
--                      strcat(msg, "'");
--                      count++;
-+                      const char *yyq = ! yycount ? ", expecting " : " or ";
-+                      yyp = yystpcpy (yyp, yyq);
-+                      yyp = yystpcpy (yyp, yytname[yyx]);
-+                      yycount++;
-                     }
-               }
--            yyerror(msg);
--            free(msg);
-+            yyerror (yymsg);
-+            YYSTACK_FREE (yymsg);
-           }
-         else
--          yyerror ("parse error; also virtual memory exceeded");
-+          yyerror ("parse error; also virtual memory exhausted");
-       }
-       else
--#endif /* YYERROR_VERBOSE */
--      yyerror("parse error");
-+#endif /* defined (YYERROR_VERBOSE) */
-+      yyerror ("parse error");
-     }
--
-   goto yyerrlab1;
--yyerrlab1:   /* here on error raised explicitly by an action */
-+
-+/*--------------------------------------------------.
-+| yyerrlab1 -- error raised explicitly by an action |
-+`--------------------------------------------------*/
-+yyerrlab1:
-   if (yyerrstatus == 3)
-     {
--      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
-+      /* If just tried and failed to reuse lookahead token after an
-+       error, discard it.  */
-       /* return failure if at end of input */
-       if (yychar == YYEOF)
-       YYABORT;
--
--#if YYDEBUG != 0
--      if (yydebug)
--      fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
--#endif
--
-+      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-+                yychar, yytname[yychar1]));
-       yychar = YYEMPTY;
-     }
--  /* Else will try to reuse lookahead token
--     after shifting the error token.  */
-+  /* Else will try to reuse lookahead token after shifting the error
-+     token.  */
-   yyerrstatus = 3;            /* Each real token shifted decrements this */
-   goto yyerrhandle;
--yyerrdefault:  /* current state does not do anything special for the error token. */
-+/*-------------------------------------------------------------------.
-+| yyerrdefault -- current state does not do anything special for the |
-+| error token.                                                       |
-+`-------------------------------------------------------------------*/
-+yyerrdefault:
- #if 0
-   /* This is wrong; only states that explicitly want error tokens
-      should shift them.  */
--  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
--  if (yyn) goto yydefault;
-+
-+  /* If its default is to accept any token, ok.  Otherwise pop it.  */
-+  yyn = yydefact[yystate];
-+  if (yyn)
-+    goto yydefault;
- #endif
--yyerrpop:   /* pop the current state because it cannot handle the error token */
--  if (yyssp == yyss) YYABORT;
-+/*---------------------------------------------------------------.
-+| yyerrpop -- pop the current state because it cannot handle the |
-+| error token                                                    |
-+`---------------------------------------------------------------*/
-+yyerrpop:
-+  if (yyssp == yyss)
-+    YYABORT;
-   yyvsp--;
-   yystate = *--yyssp;
--#ifdef YYLSP_NEEDED
-+#if YYLSP_NEEDED
-   yylsp--;
- #endif
--#if YYDEBUG != 0
-+#if YYDEBUG
-   if (yydebug)
-     {
--      short *ssp1 = yyss - 1;
--      fprintf (stderr, "Error: state stack now");
--      while (ssp1 != yyssp)
--      fprintf (stderr, " %d", *++ssp1);
--      fprintf (stderr, "\n");
-+      short *yyssp1 = yyss - 1;
-+      YYFPRINTF (stderr, "Error: state stack now");
-+      while (yyssp1 != yyssp)
-+      YYFPRINTF (stderr, " %d", *++yyssp1);
-+      YYFPRINTF (stderr, "\n");
-     }
- #endif
-+/*--------------.
-+| yyerrhandle.  |
-+`--------------*/
- yyerrhandle:
--
-   yyn = yypact[yystate];
-   if (yyn == YYFLAG)
-     goto yyerrdefault;
-@@ -1104,50 +1270,52 @@
-   if (yyn == YYFINAL)
-     YYACCEPT;
--#if YYDEBUG != 0
--  if (yydebug)
--    fprintf(stderr, "Shifting error token, ");
--#endif
-+  YYDPRINTF ((stderr, "Shifting error token, "));
-   *++yyvsp = yylval;
--#ifdef YYLSP_NEEDED
-+#if YYLSP_NEEDED
-   *++yylsp = yylloc;
- #endif
-   yystate = yyn;
-   goto yynewstate;
-- yyacceptlab:
--  /* YYACCEPT comes here.  */
--  if (yyfree_stacks)
--    {
--      free (yyss);
--      free (yyvs);
--#ifdef YYLSP_NEEDED
--      free (yyls);
--#endif
--    }
--  return 0;
-- yyabortlab:
--  /* YYABORT comes here.  */
--  if (yyfree_stacks)
--    {
--      free (yyss);
--      free (yyvs);
--#ifdef YYLSP_NEEDED
--      free (yyls);
-+/*-------------------------------------.
-+| yyacceptlab -- YYACCEPT comes here.  |
-+`-------------------------------------*/
-+yyacceptlab:
-+  yyresult = 0;
-+  goto yyreturn;
-+
-+/*-----------------------------------.
-+| yyabortlab -- YYABORT comes here.  |
-+`-----------------------------------*/
-+yyabortlab:
-+  yyresult = 1;
-+  goto yyreturn;
-+
-+/*---------------------------------------------.
-+| yyoverflowab -- parser overflow comes here.  |
-+`---------------------------------------------*/
-+yyoverflowlab:
-+  yyerror ("parser stack overflow");
-+  yyresult = 2;
-+  /* Fall through.  */
-+
-+yyreturn:
-+#ifndef yyoverflow
-+  if (yyss != yyssa)
-+    YYSTACK_FREE (yyss);
- #endif
--    }
--  return 1;
-+  return yyresult;
- }
--#line 232 "plural.y"
-+#line 205 "plural.y"
- void
- internal_function
--FREE_EXPRESSION (exp)
--     struct expression *exp;
-+FREE_EXPRESSION (struct expression *exp)
- {
-   if (exp == NULL)
-     return;
-@@ -1173,9 +1341,7 @@
- static int
--yylex (lval, pexp)
--     YYSTYPE *lval;
--     const char **pexp;
-+yylex (YYSTYPE *lval, const char **pexp)
- {
-   const char *exp = *pexp;
-   int result;
-@@ -1318,8 +1484,7 @@
- static void
--yyerror (str)
--     const char *str;
-+yyerror (const char *str)
- {
-   /* Do nothing.  We don't print error messages here.  */
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/plural.y psmisc-20.2.works.clean/intl/plural.y
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/plural.y  2001-04-13 23:00:43.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/plural.y      2004-10-13 15:18:41.000000000 -0500
-@@ -1,21 +1,22 @@
- %{
- /* 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 under the terms of the GNU General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- /* The bison generated parser uses alloca.  AIX 3 forces us to put this
-    declaration at the beginning of the file.  The declaration in bison's
-@@ -29,25 +30,21 @@
- # include <config.h>
- #endif
-+#include <stddef.h>
- #include <stdlib.h>
--#include "gettextP.h"
-+#include "plural-exp.h"
--/* Names for the libintl functions are a problem.  They must not clash
--   with existing names and they should follow ANSI C.  But this source
--   code is also used in GNU C Library where the names have a __
--   prefix.  So we have to make a difference here.  */
--#ifdef _LIBC
--# define FREE_EXPRESSION __gettext_free_exp
--#else
--# define FREE_EXPRESSION gettext_free_exp__
--# define __gettextparse gettextparse__
-+/* The main function generated by the parser is called __gettextparse,
-+   but we want it to be called PLURAL_PARSE.  */
-+#ifndef _LIBC
-+# define __gettextparse PLURAL_PARSE
- #endif
- #define YYLEX_PARAM   &((struct parse_args *) arg)->cp
- #define YYPARSE_PARAM arg
- %}
- %pure_parser
--%expect 10
-+%expect 7
- %union {
-   unsigned long int num;
-@@ -57,28 +54,13 @@
- %{
- /* 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;
-@@ -107,16 +89,13 @@
- }
- 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];
-@@ -125,10 +104,7 @@
- }
- 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];
-@@ -138,11 +114,8 @@
- }
- 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];
-@@ -233,8 +206,7 @@
- void
- internal_function
--FREE_EXPRESSION (exp)
--     struct expression *exp;
-+FREE_EXPRESSION (struct expression *exp)
- {
-   if (exp == NULL)
-     return;
-@@ -260,9 +232,7 @@
- static int
--yylex (lval, pexp)
--     YYSTYPE *lval;
--     const char **pexp;
-+yylex (YYSTYPE *lval, const char **pexp)
- {
-   const char *exp = *pexp;
-   int result;
-@@ -405,8 +375,7 @@
- static void
--yyerror (str)
--     const char *str;
-+yyerror (const char *str)
- {
-   /* Do nothing.  We don't print error messages here.  */
- }
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf-args.c psmisc-20.2.works.clean/intl/printf-args.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf-args.c     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/printf-args.c 2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,119 @@
-+/* Decomposed printf argument list.
-+   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+/* Specification.  */
-+#include "printf-args.h"
-+
-+#ifdef STATIC
-+STATIC
-+#endif
-+int
-+printf_fetchargs (va_list args, arguments *a)
-+{
-+  size_t i;
-+  argument *ap;
-+
-+  for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++)
-+    switch (ap->type)
-+      {
-+      case TYPE_SCHAR:
-+      ap->a.a_schar = va_arg (args, /*signed char*/ int);
-+      break;
-+      case TYPE_UCHAR:
-+      ap->a.a_uchar = va_arg (args, /*unsigned char*/ int);
-+      break;
-+      case TYPE_SHORT:
-+      ap->a.a_short = va_arg (args, /*short*/ int);
-+      break;
-+      case TYPE_USHORT:
-+      ap->a.a_ushort = va_arg (args, /*unsigned short*/ int);
-+      break;
-+      case TYPE_INT:
-+      ap->a.a_int = va_arg (args, int);
-+      break;
-+      case TYPE_UINT:
-+      ap->a.a_uint = va_arg (args, unsigned int);
-+      break;
-+      case TYPE_LONGINT:
-+      ap->a.a_longint = va_arg (args, long int);
-+      break;
-+      case TYPE_ULONGINT:
-+      ap->a.a_ulongint = va_arg (args, unsigned long int);
-+      break;
-+#ifdef HAVE_LONG_LONG
-+      case TYPE_LONGLONGINT:
-+      ap->a.a_longlongint = va_arg (args, long long int);
-+      break;
-+      case TYPE_ULONGLONGINT:
-+      ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
-+      break;
-+#endif
-+      case TYPE_DOUBLE:
-+      ap->a.a_double = va_arg (args, double);
-+      break;
-+#ifdef HAVE_LONG_DOUBLE
-+      case TYPE_LONGDOUBLE:
-+      ap->a.a_longdouble = va_arg (args, long double);
-+      break;
-+#endif
-+      case TYPE_CHAR:
-+      ap->a.a_char = va_arg (args, int);
-+      break;
-+#ifdef HAVE_WINT_T
-+      case TYPE_WIDE_CHAR:
-+      ap->a.a_wide_char = va_arg (args, wint_t);
-+      break;
-+#endif
-+      case TYPE_STRING:
-+      ap->a.a_string = va_arg (args, const char *);
-+      break;
-+#ifdef HAVE_WCHAR_T
-+      case TYPE_WIDE_STRING:
-+      ap->a.a_wide_string = va_arg (args, const wchar_t *);
-+      break;
-+#endif
-+      case TYPE_POINTER:
-+      ap->a.a_pointer = va_arg (args, void *);
-+      break;
-+      case TYPE_COUNT_SCHAR_POINTER:
-+      ap->a.a_count_schar_pointer = va_arg (args, signed char *);
-+      break;
-+      case TYPE_COUNT_SHORT_POINTER:
-+      ap->a.a_count_short_pointer = va_arg (args, short *);
-+      break;
-+      case TYPE_COUNT_INT_POINTER:
-+      ap->a.a_count_int_pointer = va_arg (args, int *);
-+      break;
-+      case TYPE_COUNT_LONGINT_POINTER:
-+      ap->a.a_count_longint_pointer = va_arg (args, long int *);
-+      break;
-+#ifdef HAVE_LONG_LONG
-+      case TYPE_COUNT_LONGLONGINT_POINTER:
-+      ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
-+      break;
-+#endif
-+      default:
-+      /* Unknown type.  */
-+      return -1;
-+      }
-+  return 0;
-+}
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf-args.h psmisc-20.2.works.clean/intl/printf-args.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf-args.h     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/printf-args.h 2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,137 @@
-+/* Decomposed printf argument list.
-+   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _PRINTF_ARGS_H
-+#define _PRINTF_ARGS_H
-+
-+/* Get size_t.  */
-+#include <stddef.h>
-+
-+/* Get wchar_t.  */
-+#ifdef HAVE_WCHAR_T
-+# include <stddef.h>
-+#endif
-+
-+/* Get wint_t.  */
-+#ifdef HAVE_WINT_T
-+# include <wchar.h>
-+#endif
-+
-+/* Get va_list.  */
-+#include <stdarg.h>
-+
-+
-+/* Argument types */
-+typedef enum
-+{
-+  TYPE_NONE,
-+  TYPE_SCHAR,
-+  TYPE_UCHAR,
-+  TYPE_SHORT,
-+  TYPE_USHORT,
-+  TYPE_INT,
-+  TYPE_UINT,
-+  TYPE_LONGINT,
-+  TYPE_ULONGINT,
-+#ifdef HAVE_LONG_LONG
-+  TYPE_LONGLONGINT,
-+  TYPE_ULONGLONGINT,
-+#endif
-+  TYPE_DOUBLE,
-+#ifdef HAVE_LONG_DOUBLE
-+  TYPE_LONGDOUBLE,
-+#endif
-+  TYPE_CHAR,
-+#ifdef HAVE_WINT_T
-+  TYPE_WIDE_CHAR,
-+#endif
-+  TYPE_STRING,
-+#ifdef HAVE_WCHAR_T
-+  TYPE_WIDE_STRING,
-+#endif
-+  TYPE_POINTER,
-+  TYPE_COUNT_SCHAR_POINTER,
-+  TYPE_COUNT_SHORT_POINTER,
-+  TYPE_COUNT_INT_POINTER,
-+  TYPE_COUNT_LONGINT_POINTER
-+#ifdef HAVE_LONG_LONG
-+, TYPE_COUNT_LONGLONGINT_POINTER
-+#endif
-+} arg_type;
-+
-+/* Polymorphic argument */
-+typedef struct
-+{
-+  arg_type type;
-+  union
-+  {
-+    signed char                       a_schar;
-+    unsigned char             a_uchar;
-+    short                     a_short;
-+    unsigned short            a_ushort;
-+    int                               a_int;
-+    unsigned int              a_uint;
-+    long int                  a_longint;
-+    unsigned long int         a_ulongint;
-+#ifdef HAVE_LONG_LONG
-+    long long int             a_longlongint;
-+    unsigned long long int    a_ulonglongint;
-+#endif
-+    float                     a_float;
-+    double                    a_double;
-+#ifdef HAVE_LONG_DOUBLE
-+    long double                       a_longdouble;
-+#endif
-+    int                               a_char;
-+#ifdef HAVE_WINT_T
-+    wint_t                    a_wide_char;
-+#endif
-+    const char*                       a_string;
-+#ifdef HAVE_WCHAR_T
-+    const wchar_t*            a_wide_string;
-+#endif
-+    void*                     a_pointer;
-+    signed char *             a_count_schar_pointer;
-+    short *                   a_count_short_pointer;
-+    int *                     a_count_int_pointer;
-+    long int *                        a_count_longint_pointer;
-+#ifdef HAVE_LONG_LONG
-+    long long int *           a_count_longlongint_pointer;
-+#endif
-+  }
-+  a;
-+}
-+argument;
-+
-+typedef struct
-+{
-+  size_t count;
-+  argument *arg;
-+}
-+arguments;
-+
-+
-+/* Fetch the arguments, putting them into a. */
-+#ifdef STATIC
-+STATIC
-+#else
-+extern
-+#endif
-+int printf_fetchargs (va_list args, arguments *a);
-+
-+#endif /* _PRINTF_ARGS_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf-parse.c psmisc-20.2.works.clean/intl/printf-parse.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf-parse.c    1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/printf-parse.c        2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,537 @@
-+/* Formatted output to strings.
-+   Copyright (C) 1999-2000, 2002-2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+/* Specification.  */
-+#if WIDE_CHAR_VERSION
-+# include "wprintf-parse.h"
-+#else
-+# include "printf-parse.h"
-+#endif
-+
-+/* Get size_t, NULL.  */
-+#include <stddef.h>
-+
-+/* Get intmax_t.  */
-+#if HAVE_STDINT_H_WITH_UINTMAX
-+# include <stdint.h>
-+#endif
-+#if HAVE_INTTYPES_H_WITH_UINTMAX
-+# include <inttypes.h>
-+#endif
-+
-+/* malloc(), realloc(), free().  */
-+#include <stdlib.h>
-+
-+/* Checked size_t computations.  */
-+#include "xsize.h"
-+
-+#if WIDE_CHAR_VERSION
-+# define PRINTF_PARSE wprintf_parse
-+# define CHAR_T wchar_t
-+# define DIRECTIVE wchar_t_directive
-+# define DIRECTIVES wchar_t_directives
-+#else
-+# define PRINTF_PARSE printf_parse
-+# define CHAR_T char
-+# define DIRECTIVE char_directive
-+# define DIRECTIVES char_directives
-+#endif
-+
-+#ifdef STATIC
-+STATIC
-+#endif
-+int
-+PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
-+{
-+  const CHAR_T *cp = format;          /* pointer into format */
-+  size_t arg_posn = 0;                /* number of regular arguments consumed */
-+  size_t d_allocated;                 /* allocated elements of d->dir */
-+  size_t a_allocated;                 /* allocated elements of a->arg */
-+  size_t max_width_length = 0;
-+  size_t max_precision_length = 0;
-+
-+  d->count = 0;
-+  d_allocated = 1;
-+  d->dir = malloc (d_allocated * sizeof (DIRECTIVE));
-+  if (d->dir == NULL)
-+    /* Out of memory.  */
-+    return -1;
-+
-+  a->count = 0;
-+  a_allocated = 0;
-+  a->arg = NULL;
-+
-+#define REGISTER_ARG(_index_,_type_) \
-+  {                                                                   \
-+    size_t n = (_index_);                                             \
-+    if (n >= a_allocated)                                             \
-+      {                                                                       \
-+      size_t memory_size;                                             \
-+      argument *memory;                                               \
-+                                                                      \
-+      a_allocated = xtimes (a_allocated, 2);                          \
-+      if (a_allocated <= n)                                           \
-+        a_allocated = xsum (n, 1);                                    \
-+      memory_size = xtimes (a_allocated, sizeof (argument));          \
-+      if (size_overflow_p (memory_size))                              \
-+        /* Overflow, would lead to out of memory.  */                 \
-+        goto error;                                                   \
-+      memory = (a->arg                                                \
-+                ? realloc (a->arg, memory_size)                       \
-+                : malloc (memory_size));                              \
-+      if (memory == NULL)                                             \
-+        /* Out of memory.  */                                         \
-+        goto error;                                                   \
-+      a->arg = memory;                                                \
-+      }                                                                       \
-+    while (a->count <= n)                                             \
-+      a->arg[a->count++].type = TYPE_NONE;                            \
-+    if (a->arg[n].type == TYPE_NONE)                                  \
-+      a->arg[n].type = (_type_);                                      \
-+    else if (a->arg[n].type != (_type_))                              \
-+      /* Ambiguous type for positional argument.  */                  \
-+      goto error;                                                     \
-+  }
-+
-+  while (*cp != '\0')
-+    {
-+      CHAR_T c = *cp++;
-+      if (c == '%')
-+      {
-+        size_t arg_index = ARG_NONE;
-+        DIRECTIVE *dp = &d->dir[d->count];/* pointer to next directive */
-+
-+        /* Initialize the next directive.  */
-+        dp->dir_start = cp - 1;
-+        dp->flags = 0;
-+        dp->width_start = NULL;
-+        dp->width_end = NULL;
-+        dp->width_arg_index = ARG_NONE;
-+        dp->precision_start = NULL;
-+        dp->precision_end = NULL;
-+        dp->precision_arg_index = ARG_NONE;
-+        dp->arg_index = ARG_NONE;
-+
-+        /* Test for positional argument.  */
-+        if (*cp >= '0' && *cp <= '9')
-+          {
-+            const CHAR_T *np;
-+
-+            for (np = cp; *np >= '0' && *np <= '9'; np++)
-+              ;
-+            if (*np == '$')
-+              {
-+                size_t n = 0;
-+
-+                for (np = cp; *np >= '0' && *np <= '9'; np++)
-+                  n = xsum (xtimes (n, 10), *np - '0');
-+                if (n == 0)
-+                  /* Positional argument 0.  */
-+                  goto error;
-+                if (size_overflow_p (n))
-+                  /* n too large, would lead to out of memory later.  */
-+                  goto error;
-+                arg_index = n - 1;
-+                cp = np + 1;
-+              }
-+          }
-+
-+        /* Read the flags.  */
-+        for (;;)
-+          {
-+            if (*cp == '\'')
-+              {
-+                dp->flags |= FLAG_GROUP;
-+                cp++;
-+              }
-+            else if (*cp == '-')
-+              {
-+                dp->flags |= FLAG_LEFT;
-+                cp++;
-+              }
-+            else if (*cp == '+')
-+              {
-+                dp->flags |= FLAG_SHOWSIGN;
-+                cp++;
-+              }
-+            else if (*cp == ' ')
-+              {
-+                dp->flags |= FLAG_SPACE;
-+                cp++;
-+              }
-+            else if (*cp == '#')
-+              {
-+                dp->flags |= FLAG_ALT;
-+                cp++;
-+              }
-+            else if (*cp == '0')
-+              {
-+                dp->flags |= FLAG_ZERO;
-+                cp++;
-+              }
-+            else
-+              break;
-+          }
-+
-+        /* Parse the field width.  */
-+        if (*cp == '*')
-+          {
-+            dp->width_start = cp;
-+            cp++;
-+            dp->width_end = cp;
-+            if (max_width_length < 1)
-+              max_width_length = 1;
-+
-+            /* Test for positional argument.  */
-+            if (*cp >= '0' && *cp <= '9')
-+              {
-+                const CHAR_T *np;
-+
-+                for (np = cp; *np >= '0' && *np <= '9'; np++)
-+                  ;
-+                if (*np == '$')
-+                  {
-+                    size_t n = 0;
-+
-+                    for (np = cp; *np >= '0' && *np <= '9'; np++)
-+                      n = xsum (xtimes (n, 10), *np - '0');
-+                    if (n == 0)
-+                      /* Positional argument 0.  */
-+                      goto error;
-+                    if (size_overflow_p (n))
-+                      /* n too large, would lead to out of memory later.  */
-+                      goto error;
-+                    dp->width_arg_index = n - 1;
-+                    cp = np + 1;
-+                  }
-+              }
-+            if (dp->width_arg_index == ARG_NONE)
-+              {
-+                dp->width_arg_index = arg_posn++;
-+                if (dp->width_arg_index == ARG_NONE)
-+                  /* arg_posn wrapped around.  */
-+                  goto error;
-+              }
-+            REGISTER_ARG (dp->width_arg_index, TYPE_INT);
-+          }
-+        else if (*cp >= '0' && *cp <= '9')
-+          {
-+            size_t width_length;
-+
-+            dp->width_start = cp;
-+            for (; *cp >= '0' && *cp <= '9'; cp++)
-+              ;
-+            dp->width_end = cp;
-+            width_length = dp->width_end - dp->width_start;
-+            if (max_width_length < width_length)
-+              max_width_length = width_length;
-+          }
-+
-+        /* Parse the precision.  */
-+        if (*cp == '.')
-+          {
-+            cp++;
-+            if (*cp == '*')
-+              {
-+                dp->precision_start = cp - 1;
-+                cp++;
-+                dp->precision_end = cp;
-+                if (max_precision_length < 2)
-+                  max_precision_length = 2;
-+
-+                /* Test for positional argument.  */
-+                if (*cp >= '0' && *cp <= '9')
-+                  {
-+                    const CHAR_T *np;
-+
-+                    for (np = cp; *np >= '0' && *np <= '9'; np++)
-+                      ;
-+                    if (*np == '$')
-+                      {
-+                        size_t n = 0;
-+
-+                        for (np = cp; *np >= '0' && *np <= '9'; np++)
-+                          n = xsum (xtimes (n, 10), *np - '0');
-+                        if (n == 0)
-+                          /* Positional argument 0.  */
-+                          goto error;
-+                        if (size_overflow_p (n))
-+                          /* n too large, would lead to out of memory
-+                             later.  */
-+                          goto error;
-+                        dp->precision_arg_index = n - 1;
-+                        cp = np + 1;
-+                      }
-+                  }
-+                if (dp->precision_arg_index == ARG_NONE)
-+                  {
-+                    dp->precision_arg_index = arg_posn++;
-+                    if (dp->precision_arg_index == ARG_NONE)
-+                      /* arg_posn wrapped around.  */
-+                      goto error;
-+                  }
-+                REGISTER_ARG (dp->precision_arg_index, TYPE_INT);
-+              }
-+            else
-+              {
-+                size_t precision_length;
-+
-+                dp->precision_start = cp - 1;
-+                for (; *cp >= '0' && *cp <= '9'; cp++)
-+                  ;
-+                dp->precision_end = cp;
-+                precision_length = dp->precision_end - dp->precision_start;
-+                if (max_precision_length < precision_length)
-+                  max_precision_length = precision_length;
-+              }
-+          }
-+
-+        {
-+          arg_type type;
-+
-+          /* Parse argument type/size specifiers.  */
-+          {
-+            int flags = 0;
-+
-+            for (;;)
-+              {
-+                if (*cp == 'h')
-+                  {
-+                    flags |= (1 << (flags & 1));
-+                    cp++;
-+                  }
-+                else if (*cp == 'L')
-+                  {
-+                    flags |= 4;
-+                    cp++;
-+                  }
-+                else if (*cp == 'l')
-+                  {
-+                    flags += 8;
-+                    cp++;
-+                  }
-+#ifdef HAVE_INTMAX_T
-+                else if (*cp == 'j')
-+                  {
-+                    if (sizeof (intmax_t) > sizeof (long))
-+                      {
-+                        /* intmax_t = long long */
-+                        flags += 16;
-+                      }
-+                    else if (sizeof (intmax_t) > sizeof (int))
-+                      {
-+                        /* intmax_t = long */
-+                        flags += 8;
-+                      }
-+                    cp++;
-+                  }
-+#endif
-+                else if (*cp == 'z' || *cp == 'Z')
-+                  {
-+                    /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
-+                       because the warning facility in gcc-2.95.2 understands
-+                       only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784).  */
-+                    if (sizeof (size_t) > sizeof (long))
-+                      {
-+                        /* size_t = long long */
-+                        flags += 16;
-+                      }
-+                    else if (sizeof (size_t) > sizeof (int))
-+                      {
-+                        /* size_t = long */
-+                        flags += 8;
-+                      }
-+                    cp++;
-+                  }
-+                else if (*cp == 't')
-+                  {
-+                    if (sizeof (ptrdiff_t) > sizeof (long))
-+                      {
-+                        /* ptrdiff_t = long long */
-+                        flags += 16;
-+                      }
-+                    else if (sizeof (ptrdiff_t) > sizeof (int))
-+                      {
-+                        /* ptrdiff_t = long */
-+                        flags += 8;
-+                      }
-+                    cp++;
-+                  }
-+                else
-+                  break;
-+              }
-+
-+            /* Read the conversion character.  */
-+            c = *cp++;
-+            switch (c)
-+              {
-+              case 'd': case 'i':
-+#ifdef HAVE_LONG_LONG
-+                if (flags >= 16 || (flags & 4))
-+                  type = TYPE_LONGLONGINT;
-+                else
-+#endif
-+                if (flags >= 8)
-+                  type = TYPE_LONGINT;
-+                else if (flags & 2)
-+                  type = TYPE_SCHAR;
-+                else if (flags & 1)
-+                  type = TYPE_SHORT;
-+                else
-+                  type = TYPE_INT;
-+                break;
-+              case 'o': case 'u': case 'x': case 'X':
-+#ifdef HAVE_LONG_LONG
-+                if (flags >= 16 || (flags & 4))
-+                  type = TYPE_ULONGLONGINT;
-+                else
-+#endif
-+                if (flags >= 8)
-+                  type = TYPE_ULONGINT;
-+                else if (flags & 2)
-+                  type = TYPE_UCHAR;
-+                else if (flags & 1)
-+                  type = TYPE_USHORT;
-+                else
-+                  type = TYPE_UINT;
-+                break;
-+              case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
-+              case 'a': case 'A':
-+#ifdef HAVE_LONG_DOUBLE
-+                if (flags >= 16 || (flags & 4))
-+                  type = TYPE_LONGDOUBLE;
-+                else
-+#endif
-+                type = TYPE_DOUBLE;
-+                break;
-+              case 'c':
-+                if (flags >= 8)
-+#ifdef HAVE_WINT_T
-+                  type = TYPE_WIDE_CHAR;
-+#else
-+                  goto error;
-+#endif
-+                else
-+                  type = TYPE_CHAR;
-+                break;
-+#ifdef HAVE_WINT_T
-+              case 'C':
-+                type = TYPE_WIDE_CHAR;
-+                c = 'c';
-+                break;
-+#endif
-+              case 's':
-+                if (flags >= 8)
-+#ifdef HAVE_WCHAR_T
-+                  type = TYPE_WIDE_STRING;
-+#else
-+                  goto error;
-+#endif
-+                else
-+                  type = TYPE_STRING;
-+                break;
-+#ifdef HAVE_WCHAR_T
-+              case 'S':
-+                type = TYPE_WIDE_STRING;
-+                c = 's';
-+                break;
-+#endif
-+              case 'p':
-+                type = TYPE_POINTER;
-+                break;
-+              case 'n':
-+#ifdef HAVE_LONG_LONG
-+                if (flags >= 16 || (flags & 4))
-+                  type = TYPE_COUNT_LONGLONGINT_POINTER;
-+                else
-+#endif
-+                if (flags >= 8)
-+                  type = TYPE_COUNT_LONGINT_POINTER;
-+                else if (flags & 2)
-+                  type = TYPE_COUNT_SCHAR_POINTER;
-+                else if (flags & 1)
-+                  type = TYPE_COUNT_SHORT_POINTER;
-+                else
-+                  type = TYPE_COUNT_INT_POINTER;
-+                break;
-+              case '%':
-+                type = TYPE_NONE;
-+                break;
-+              default:
-+                /* Unknown conversion character.  */
-+                goto error;
-+              }
-+          }
-+
-+          if (type != TYPE_NONE)
-+            {
-+              dp->arg_index = arg_index;
-+              if (dp->arg_index == ARG_NONE)
-+                {
-+                  dp->arg_index = arg_posn++;
-+                  if (dp->arg_index == ARG_NONE)
-+                    /* arg_posn wrapped around.  */
-+                    goto error;
-+                }
-+              REGISTER_ARG (dp->arg_index, type);
-+            }
-+          dp->conversion = c;
-+          dp->dir_end = cp;
-+        }
-+
-+        d->count++;
-+        if (d->count >= d_allocated)
-+          {
-+            size_t memory_size;
-+            DIRECTIVE *memory;
-+
-+            d_allocated = xtimes (d_allocated, 2);
-+            memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
-+            if (size_overflow_p (memory_size))
-+              /* Overflow, would lead to out of memory.  */
-+              goto error;
-+            memory = realloc (d->dir, memory_size);
-+            if (memory == NULL)
-+              /* Out of memory.  */
-+              goto error;
-+            d->dir = memory;
-+          }
-+      }
-+    }
-+  d->dir[d->count].dir_start = cp;
-+
-+  d->max_width_length = max_width_length;
-+  d->max_precision_length = max_precision_length;
-+  return 0;
-+
-+error:
-+  if (a->arg)
-+    free (a->arg);
-+  if (d->dir)
-+    free (d->dir);
-+  return -1;
-+}
-+
-+#undef DIRECTIVES
-+#undef DIRECTIVE
-+#undef CHAR_T
-+#undef PRINTF_PARSE
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf-parse.h psmisc-20.2.works.clean/intl/printf-parse.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf-parse.h    1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/printf-parse.h        2004-10-13 15:18:41.000000000 -0500
-@@ -0,0 +1,75 @@
-+/* Parse printf format string.
-+   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _PRINTF_PARSE_H
-+#define _PRINTF_PARSE_H
-+
-+#include "printf-args.h"
-+
-+
-+/* Flags */
-+#define FLAG_GROUP     1      /* ' flag */
-+#define FLAG_LEFT      2      /* - flag */
-+#define FLAG_SHOWSIGN  4      /* + flag */
-+#define FLAG_SPACE     8      /* space flag */
-+#define FLAG_ALT      16      /* # flag */
-+#define FLAG_ZERO     32
-+
-+/* arg_index value indicating that no argument is consumed.  */
-+#define ARG_NONE      (~(size_t)0)
-+
-+/* A parsed directive.  */
-+typedef struct
-+{
-+  const char* dir_start;
-+  const char* dir_end;
-+  int flags;
-+  const char* width_start;
-+  const char* width_end;
-+  size_t width_arg_index;
-+  const char* precision_start;
-+  const char* precision_end;
-+  size_t precision_arg_index;
-+  char conversion; /* d i o u x X f e E g G c s p n U % but not C S */
-+  size_t arg_index;
-+}
-+char_directive;
-+
-+/* A parsed format string.  */
-+typedef struct
-+{
-+  size_t count;
-+  char_directive *dir;
-+  size_t max_width_length;
-+  size_t max_precision_length;
-+}
-+char_directives;
-+
-+
-+/* Parses the format string.  Fills in the number N of directives, and fills
-+   in directives[0], ..., directives[N-1], and sets directives[N].dir_start
-+   to the end of the format string.  Also fills in the arg_type fields of the
-+   arguments and the needed count of arguments.  */
-+#ifdef STATIC
-+STATIC
-+#else
-+extern
-+#endif
-+int printf_parse (const char *format, char_directives *d, arguments *a);
-+
-+#endif /* _PRINTF_PARSE_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf.c psmisc-20.2.works.clean/intl/printf.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/printf.c  1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/printf.c      2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,371 @@
-+/* Formatted output to strings, using POSIX/XSI format strings with positions.
-+   Copyright (C) 2003 Free Software Foundation, Inc.
-+   Written by Bruno Haible <bruno@clisp.org>, 2003.
-+
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#ifdef __GNUC__
-+# define alloca __builtin_alloca
-+# define HAVE_ALLOCA 1
-+#else
-+# ifdef _MSC_VER
-+#  include <malloc.h>
-+#  define alloca _alloca
-+# else
-+#  if defined HAVE_ALLOCA_H || defined _LIBC
-+#   include <alloca.h>
-+#  else
-+#   ifdef _AIX
-+ #pragma alloca
-+#   else
-+#    ifndef alloca
-+char *alloca ();
-+#    endif
-+#   endif
-+#  endif
-+# endif
-+#endif
-+
-+#include <stdio.h>
-+
-+#if !HAVE_POSIX_PRINTF
-+
-+#include <stdlib.h>
-+#include <string.h>
-+
-+/* When building a DLL, we must export some functions.  Note that because
-+   the functions are only defined for binary backward compatibility, we
-+   don't need to use __declspec(dllimport) in any case.  */
-+#if defined _MSC_VER && BUILDING_DLL
-+# define DLL_EXPORTED __declspec(dllexport)
-+#else
-+# define DLL_EXPORTED
-+#endif
-+
-+#define STATIC static
-+
-+/* Define auxiliary functions declared in "printf-args.h".  */
-+#include "printf-args.c"
-+
-+/* Define auxiliary functions declared in "printf-parse.h".  */
-+#include "printf-parse.c"
-+
-+/* Define functions declared in "vasnprintf.h".  */
-+#define vasnprintf libintl_vasnprintf
-+#include "vasnprintf.c"
-+#if 0 /* not needed */
-+#define asnprintf libintl_asnprintf
-+#include "asnprintf.c"
-+#endif
-+
-+DLL_EXPORTED
-+int
-+libintl_vfprintf (FILE *stream, const char *format, va_list args)
-+{
-+  if (strchr (format, '$') == NULL)
-+    return vfprintf (stream, format, args);
-+  else
-+    {
-+      size_t length;
-+      char *result = libintl_vasnprintf (NULL, &length, format, args);
-+      int retval = -1;
-+      if (result != NULL)
-+      {
-+        if (fwrite (result, 1, length, stream) == length)
-+          retval = length;
-+        free (result);
-+      }
-+      return retval;
-+    }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_fprintf (FILE *stream, const char *format, ...)
-+{
-+  va_list args;
-+  int retval;
-+
-+  va_start (args, format);
-+  retval = libintl_vfprintf (stream, format, args);
-+  va_end (args);
-+  return retval;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_vprintf (const char *format, va_list args)
-+{
-+  return libintl_vfprintf (stdout, format, args);
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_printf (const char *format, ...)
-+{
-+  va_list args;
-+  int retval;
-+
-+  va_start (args, format);
-+  retval = libintl_vprintf (format, args);
-+  va_end (args);
-+  return retval;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_vsprintf (char *resultbuf, const char *format, va_list args)
-+{
-+  if (strchr (format, '$') == NULL)
-+    return vsprintf (resultbuf, format, args);
-+  else
-+    {
-+      size_t length = (size_t) ~0 / (4 * sizeof (char));
-+      char *result = libintl_vasnprintf (resultbuf, &length, format, args);
-+      if (result != resultbuf)
-+      {
-+        free (result);
-+        return -1;
-+      }
-+      else
-+      return length;
-+    }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_sprintf (char *resultbuf, const char *format, ...)
-+{
-+  va_list args;
-+  int retval;
-+
-+  va_start (args, format);
-+  retval = libintl_vsprintf (resultbuf, format, args);
-+  va_end (args);
-+  return retval;
-+}
-+
-+#if HAVE_SNPRINTF
-+
-+# if HAVE_DECL__SNPRINTF
-+   /* Windows.  */
-+#  define system_vsnprintf _vsnprintf
-+# else
-+   /* Unix.  */
-+#  define system_vsnprintf vsnprintf
-+# endif
-+
-+DLL_EXPORTED
-+int
-+libintl_vsnprintf (char *resultbuf, size_t length, const char *format, va_list args)
-+{
-+  if (strchr (format, '$') == NULL)
-+    return system_vsnprintf (resultbuf, length, format, args);
-+  else
-+    {
-+      size_t maxlength = length;
-+      char *result = libintl_vasnprintf (resultbuf, &length, format, args);
-+      if (result != resultbuf)
-+      {
-+        if (maxlength > 0)
-+          {
-+            if (length < maxlength)
-+              abort ();
-+            memcpy (resultbuf, result, maxlength - 1);
-+            resultbuf[maxlength - 1] = '\0';
-+          }
-+        free (result);
-+        return -1;
-+      }
-+      else
-+      return length;
-+    }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_snprintf (char *resultbuf, size_t length, const char *format, ...)
-+{
-+  va_list args;
-+  int retval;
-+
-+  va_start (args, format);
-+  retval = libintl_vsnprintf (resultbuf, length, format, args);
-+  va_end (args);
-+  return retval;
-+}
-+
-+#endif
-+
-+#if HAVE_ASPRINTF
-+
-+DLL_EXPORTED
-+int
-+libintl_vasprintf (char **resultp, const char *format, va_list args)
-+{
-+  size_t length;
-+  char *result = libintl_vasnprintf (NULL, &length, format, args);
-+  if (result == NULL)
-+    return -1;
-+  *resultp = result;
-+  return length;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_asprintf (char **resultp, const char *format, ...)
-+{
-+  va_list args;
-+  int retval;
-+
-+  va_start (args, format);
-+  retval = libintl_vasprintf (resultp, format, args);
-+  va_end (args);
-+  return retval;
-+}
-+
-+#endif
-+
-+#if HAVE_FWPRINTF
-+
-+#include <wchar.h>
-+
-+#define WIDE_CHAR_VERSION 1
-+
-+/* Define auxiliary functions declared in "wprintf-parse.h".  */
-+#include "printf-parse.c"
-+
-+/* Define functions declared in "vasnprintf.h".  */
-+#define vasnwprintf libintl_vasnwprintf
-+#include "vasnprintf.c"
-+#if 0 /* not needed */
-+#define asnwprintf libintl_asnwprintf
-+#include "asnprintf.c"
-+#endif
-+
-+# if HAVE_DECL__SNWPRINTF
-+   /* Windows.  */
-+#  define system_vswprintf _vsnwprintf
-+# else
-+   /* Unix.  */
-+#  define system_vswprintf vswprintf
-+# endif
-+
-+DLL_EXPORTED
-+int
-+libintl_vfwprintf (FILE *stream, const wchar_t *format, va_list args)
-+{
-+  if (wcschr (format, '$') == NULL)
-+    return vfwprintf (stream, format, args);
-+  else
-+    {
-+      size_t length;
-+      wchar_t *result = libintl_vasnwprintf (NULL, &length, format, args);
-+      int retval = -1;
-+      if (result != NULL)
-+      {
-+        size_t i;
-+        for (i = 0; i < length; i++)
-+          if (fputwc (result[i], stream) == WEOF)
-+            break;
-+        if (i == length)
-+          retval = length;
-+        free (result);
-+      }
-+      return retval;
-+    }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_fwprintf (FILE *stream, const wchar_t *format, ...)
-+{
-+  va_list args;
-+  int retval;
-+
-+  va_start (args, format);
-+  retval = libintl_vfwprintf (stream, format, args);
-+  va_end (args);
-+  return retval;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_vwprintf (const wchar_t *format, va_list args)
-+{
-+  return libintl_vfwprintf (stdout, format, args);
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_wprintf (const wchar_t *format, ...)
-+{
-+  va_list args;
-+  int retval;
-+
-+  va_start (args, format);
-+  retval = libintl_vwprintf (format, args);
-+  va_end (args);
-+  return retval;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_vswprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, va_list args)
-+{
-+  if (wcschr (format, '$') == NULL)
-+    return system_vswprintf (resultbuf, length, format, args);
-+  else
-+    {
-+      size_t maxlength = length;
-+      wchar_t *result = libintl_vasnwprintf (resultbuf, &length, format, args);
-+      if (result != resultbuf)
-+      {
-+        if (maxlength > 0)
-+          {
-+            if (length < maxlength)
-+              abort ();
-+            memcpy (resultbuf, result, (maxlength - 1) * sizeof (wchar_t));
-+            resultbuf[maxlength - 1] = 0;
-+          }
-+        free (result);
-+        return -1;
-+      }
-+      else
-+      return length;
-+    }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_swprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, ...)
-+{
-+  va_list args;
-+  int retval;
-+
-+  va_start (args, format);
-+  retval = libintl_vswprintf (resultbuf, length, format, args);
-+  va_end (args);
-+  return retval;
-+}
-+
-+#endif
-+
-+#endif
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/relocatable.c psmisc-20.2.works.clean/intl/relocatable.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/relocatable.c     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/relocatable.c 2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,449 @@
-+/* Provide relocatable packages.
-+   Copyright (C) 2003 Free Software Foundation, Inc.
-+   Written by Bruno Haible <bruno@clisp.org>, 2003.
-+
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+
-+/* Tell glibc's <stdio.h> to provide a prototype for getline().
-+   This must come before <config.h> because <config.h> may include
-+   <features.h>, and once <features.h> has been included, it's too late.  */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE  1
-+#endif
-+
-+#ifdef HAVE_CONFIG_H
-+# include "config.h"
-+#endif
-+
-+/* Specification.  */
-+#include "relocatable.h"
-+
-+#if ENABLE_RELOCATABLE
-+
-+#include <stddef.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#ifdef NO_XMALLOC
-+# define xmalloc malloc
-+#else
-+# include "xalloc.h"
-+#endif
-+
-+#if defined _WIN32 || defined __WIN32__
-+# define WIN32_LEAN_AND_MEAN
-+# include <windows.h>
-+#endif
-+
-+#if DEPENDS_ON_LIBCHARSET
-+# include <libcharset.h>
-+#endif
-+#if DEPENDS_ON_LIBICONV && HAVE_ICONV
-+# include <iconv.h>
-+#endif
-+#if DEPENDS_ON_LIBINTL && ENABLE_NLS
-+# include <libintl.h>
-+#endif
-+
-+/* Faked cheap 'bool'.  */
-+#undef bool
-+#undef false
-+#undef true
-+#define bool int
-+#define false 0
-+#define true 1
-+
-+/* Pathname support.
-+   ISSLASH(C)           tests whether C is a directory separator character.
-+   IS_PATH_WITH_DIR(P)  tests whether P contains a directory specification.
-+ */
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+  /* Win32, OS/2, DOS */
-+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-+# define HAS_DEVICE(P) \
-+    ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
-+     && (P)[1] == ':')
-+# define IS_PATH_WITH_DIR(P) \
-+    (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
-+# define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
-+#else
-+  /* Unix */
-+# define ISSLASH(C) ((C) == '/')
-+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
-+# define FILESYSTEM_PREFIX_LEN(P) 0
-+#endif
-+
-+/* Original installation prefix.  */
-+static char *orig_prefix;
-+static size_t orig_prefix_len;
-+/* Current installation prefix.  */
-+static char *curr_prefix;
-+static size_t curr_prefix_len;
-+/* These prefixes do not end in a slash.  Anything that will be concatenated
-+   to them must start with a slash.  */
-+
-+/* Sets the original and the current installation prefix of this module.
-+   Relocation simply replaces a pathname starting with the original prefix
-+   by the corresponding pathname with the current prefix instead.  Both
-+   prefixes should be directory names without trailing slash (i.e. use ""
-+   instead of "/").  */
-+static void
-+set_this_relocation_prefix (const char *orig_prefix_arg,
-+                          const char *curr_prefix_arg)
-+{
-+  if (orig_prefix_arg != NULL && curr_prefix_arg != NULL
-+      /* Optimization: if orig_prefix and curr_prefix are equal, the
-+       relocation is a nop.  */
-+      && strcmp (orig_prefix_arg, curr_prefix_arg) != 0)
-+    {
-+      /* Duplicate the argument strings.  */
-+      char *memory;
-+
-+      orig_prefix_len = strlen (orig_prefix_arg);
-+      curr_prefix_len = strlen (curr_prefix_arg);
-+      memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1);
-+#ifdef NO_XMALLOC
-+      if (memory != NULL)
-+#endif
-+      {
-+        memcpy (memory, orig_prefix_arg, orig_prefix_len + 1);
-+        orig_prefix = memory;
-+        memory += orig_prefix_len + 1;
-+        memcpy (memory, curr_prefix_arg, curr_prefix_len + 1);
-+        curr_prefix = memory;
-+        return;
-+      }
-+    }
-+  orig_prefix = NULL;
-+  curr_prefix = NULL;
-+  /* Don't worry about wasted memory here - this function is usually only
-+     called once.  */
-+}
-+
-+/* Sets the original and the current installation prefix of the package.
-+   Relocation simply replaces a pathname starting with the original prefix
-+   by the corresponding pathname with the current prefix instead.  Both
-+   prefixes should be directory names without trailing slash (i.e. use ""
-+   instead of "/").  */
-+void
-+set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg)
-+{
-+  set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
-+
-+  /* Now notify all dependent libraries.  */
-+#if DEPENDS_ON_LIBCHARSET
-+  libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
-+#endif
-+#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109
-+  libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
-+#endif
-+#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix
-+  libintl_set_relocation_prefix (orig_prefix_arg, 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
-+   file, and the current pathname of this file.  Returns NULL upon failure.  */
-+#ifdef IN_LIBRARY
-+#define compute_curr_prefix local_compute_curr_prefix
-+static
-+#endif
-+const char *
-+compute_curr_prefix (const char *orig_installprefix,
-+                   const char *orig_installdir,
-+                   const char *curr_pathname)
-+{
-+  const char *curr_installdir;
-+  const char *rel_installdir;
-+
-+  if (curr_pathname == NULL)
-+    return NULL;
-+
-+  /* Determine the relative installation directory, relative to the prefix.
-+     This is simply the difference between orig_installprefix and
-+     orig_installdir.  */
-+  if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix))
-+      != 0)
-+    /* Shouldn't happen - nothing should be installed outside $(prefix).  */
-+    return NULL;
-+  rel_installdir = orig_installdir + strlen (orig_installprefix);
-+
-+  /* Determine the current installation directory.  */
-+  {
-+    const char *p_base = curr_pathname + FILESYSTEM_PREFIX_LEN (curr_pathname);
-+    const char *p = curr_pathname + strlen (curr_pathname);
-+    char *q;
-+
-+    while (p > p_base)
-+      {
-+      p--;
-+      if (ISSLASH (*p))
-+        break;
-+      }
-+
-+    q = (char *) xmalloc (p - curr_pathname + 1);
-+#ifdef NO_XMALLOC
-+    if (q == NULL)
-+      return NULL;
-+#endif
-+    memcpy (q, curr_pathname, p - curr_pathname);
-+    q[p - curr_pathname] = '\0';
-+    curr_installdir = q;
-+  }
-+
-+  /* Compute the current installation prefix by removing the trailing
-+     rel_installdir from it.  */
-+  {
-+    const char *rp = rel_installdir + strlen (rel_installdir);
-+    const char *cp = curr_installdir + strlen (curr_installdir);
-+    const char *cp_base =
-+      curr_installdir + FILESYSTEM_PREFIX_LEN (curr_installdir);
-+
-+    while (rp > rel_installdir && cp > cp_base)
-+      {
-+      bool same = false;
-+      const char *rpi = rp;
-+      const char *cpi = cp;
-+
-+      while (rpi > rel_installdir && cpi > cp_base)
-+        {
-+          rpi--;
-+          cpi--;
-+          if (ISSLASH (*rpi) || ISSLASH (*cpi))
-+            {
-+              if (ISSLASH (*rpi) && ISSLASH (*cpi))
-+                same = true;
-+              break;
-+            }
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+          /* Win32, OS/2, DOS - case insignificant filesystem */
-+          if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi)
-+              != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi))
-+            break;
-+#else
-+          if (*rpi != *cpi)
-+            break;
-+#endif
-+        }
-+      if (!same)
-+        break;
-+      /* The last pathname component was the same.  opi and cpi now point
-+         to the slash before it.  */
-+      rp = rpi;
-+      cp = cpi;
-+      }
-+
-+    if (rp > rel_installdir)
-+      /* Unexpected: The curr_installdir does not end with rel_installdir.  */
-+      return NULL;
-+
-+    {
-+      size_t curr_prefix_len = cp - curr_installdir;
-+      char *curr_prefix;
-+
-+      curr_prefix = (char *) xmalloc (curr_prefix_len + 1);
-+#ifdef NO_XMALLOC
-+      if (curr_prefix == NULL)
-+      return NULL;
-+#endif
-+      memcpy (curr_prefix, curr_installdir, curr_prefix_len);
-+      curr_prefix[curr_prefix_len] = '\0';
-+
-+      return curr_prefix;
-+    }
-+  }
-+}
-+
-+#endif /* !IN_LIBRARY || PIC */
-+
-+#if defined PIC && defined INSTALLDIR
-+
-+/* Full pathname of shared library, or NULL.  */
-+static char *shared_library_fullname;
-+
-+#if defined _WIN32 || defined __WIN32__
-+
-+/* Determine the full pathname of the shared library when it is loaded.  */
-+
-+BOOL WINAPI
-+DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved)
-+{
-+  (void) reserved;
-+
-+  if (event == DLL_PROCESS_ATTACH)
-+    {
-+      /* The DLL is being loaded into an application's address range.  */
-+      static char location[MAX_PATH];
-+
-+      if (!GetModuleFileName (module_handle, location, sizeof (location)))
-+      /* Shouldn't happen.  */
-+      return FALSE;
-+
-+      if (!IS_PATH_WITH_DIR (location))
-+      /* Shouldn't happen.  */
-+      return FALSE;
-+
-+      shared_library_fullname = strdup (location);
-+    }
-+
-+  return TRUE;
-+}
-+
-+#else /* Unix */
-+
-+static void
-+find_shared_library_fullname ()
-+{
-+#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.  */
-+  fp = fopen ("/proc/self/maps", "r");
-+  if (fp)
-+    {
-+      unsigned long address = (unsigned long) &find_shared_library_fullname;
-+      for (;;)
-+      {
-+        unsigned long start, end;
-+        int c;
-+
-+        if (fscanf (fp, "%lx-%lx", &start, &end) != 2)
-+          break;
-+        if (address >= start && address <= end - 1)
-+          {
-+            /* Found it.  Now see if this line contains a filename.  */
-+            while (c = getc (fp), c != EOF && c != '\n' && c != '/')
-+              continue;
-+            if (c == '/')
-+              {
-+                size_t size;
-+                int len;
-+
-+                ungetc (c, fp);
-+                shared_library_fullname = NULL; size = 0;
-+                len = getline (&shared_library_fullname, &size, fp);
-+                if (len >= 0)
-+                  {
-+                    /* Success: filled shared_library_fullname.  */
-+                    if (len > 0 && shared_library_fullname[len - 1] == '\n')
-+                      shared_library_fullname[len - 1] = '\0';
-+                  }
-+              }
-+            break;
-+          }
-+        while (c = getc (fp), c != EOF && c != '\n')
-+          continue;
-+      }
-+      fclose (fp);
-+    }
-+#endif
-+}
-+
-+#endif /* WIN32 / Unix */
-+
-+/* Return the full pathname of the current shared library.
-+   Return NULL if unknown.
-+   Guaranteed to work only on Linux and Woe32.  */
-+static char *
-+get_shared_library_fullname ()
-+{
-+#if !(defined _WIN32 || defined __WIN32__)
-+  static bool tried_find_shared_library_fullname;
-+  if (!tried_find_shared_library_fullname)
-+    {
-+      find_shared_library_fullname ();
-+      tried_find_shared_library_fullname = true;
-+    }
-+#endif
-+  return shared_library_fullname;
-+}
-+
-+#endif /* PIC */
-+
-+/* Returns the pathname, relocated according to the current installation
-+   directory.  */
-+const char *
-+relocate (const char *pathname)
-+{
-+#if defined PIC && defined INSTALLDIR
-+  static int initialized;
-+
-+  /* Initialization code for a shared library.  */
-+  if (!initialized)
-+    {
-+      /* At this point, orig_prefix and curr_prefix likely have already been
-+       set through the main program's set_program_name_and_installdir
-+       function.  This is sufficient in the case that the library has
-+       initially been installed in the same orig_prefix.  But we can do
-+       better, to also cover the cases that 1. it has been installed
-+       in a different prefix before being moved to orig_prefix and (later)
-+       to curr_prefix, 2. unlike the program, it has not moved away from
-+       orig_prefix.  */
-+      const char *orig_installprefix = INSTALLPREFIX;
-+      const char *orig_installdir = INSTALLDIR;
-+      const char *curr_prefix_better;
-+
-+      curr_prefix_better =
-+      compute_curr_prefix (orig_installprefix, orig_installdir,
-+                           get_shared_library_fullname ());
-+      if (curr_prefix_better == NULL)
-+      curr_prefix_better = curr_prefix;
-+
-+      set_relocation_prefix (orig_installprefix, curr_prefix_better);
-+
-+      initialized = 1;
-+    }
-+#endif
-+
-+  /* Note: It is not necessary to perform case insensitive comparison here,
-+     even for DOS-like filesystems, because the pathname argument was
-+     typically created from the same Makefile variable as orig_prefix came
-+     from.  */
-+  if (orig_prefix != NULL && curr_prefix != NULL
-+      && strncmp (pathname, orig_prefix, orig_prefix_len) == 0)
-+    {
-+      if (pathname[orig_prefix_len] == '\0')
-+      /* pathname equals orig_prefix.  */
-+      return curr_prefix;
-+      if (ISSLASH (pathname[orig_prefix_len]))
-+      {
-+        /* pathname starts with orig_prefix.  */
-+        const char *pathname_tail = &pathname[orig_prefix_len];
-+        char *result =
-+          (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1);
-+
-+#ifdef NO_XMALLOC
-+        if (result != NULL)
-+#endif
-+          {
-+            memcpy (result, curr_prefix, curr_prefix_len);
-+            strcpy (result + curr_prefix_len, pathname_tail);
-+            return result;
-+          }
-+      }
-+    }
-+  /* Nothing to relocate.  */
-+  return pathname;
-+}
-+
-+#endif
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/relocatable.h psmisc-20.2.works.clean/intl/relocatable.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/relocatable.h     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/relocatable.h 2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,77 @@
-+/* Provide relocatable packages.
-+   Copyright (C) 2003 Free Software Foundation, Inc.
-+   Written by Bruno Haible <bruno@clisp.org>, 2003.
-+
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _RELOCATABLE_H
-+#define _RELOCATABLE_H
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+/* This can be enabled through the configure --enable-relocatable option.  */
-+#if ENABLE_RELOCATABLE
-+
-+/* When building a DLL, we must export some functions.  Note that because
-+   this is a private .h file, we don't need to use __declspec(dllimport)
-+   in any case.  */
-+#if defined _MSC_VER && BUILDING_DLL
-+# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport)
-+#else
-+# define RELOCATABLE_DLL_EXPORTED
-+#endif
-+
-+/* Sets the original and the current installation prefix of the package.
-+   Relocation simply replaces a pathname starting with the original prefix
-+   by the corresponding pathname with the current prefix instead.  Both
-+   prefixes should be directory names without trailing slash (i.e. use ""
-+   instead of "/").  */
-+extern RELOCATABLE_DLL_EXPORTED void
-+       set_relocation_prefix (const char *orig_prefix,
-+                            const char *curr_prefix);
-+
-+/* Returns the pathname, relocated according to the current installation
-+   directory.  */
-+extern const char * relocate (const char *pathname);
-+
-+/* Memory management: relocate() leaks memory, because it has to construct
-+   a fresh pathname.  If this is a problem because your program calls
-+   relocate() frequently, think about caching the result.  */
-+
-+/* Convenience function:
-+   Computes the current installation prefix, based on the original
-+   installation prefix, the original installation directory of a particular
-+   file, and the current pathname of this file.  Returns NULL upon failure.  */
-+extern const char * compute_curr_prefix (const char *orig_installprefix,
-+                                       const char *orig_installdir,
-+                                       const char *curr_pathname);
-+
-+#else
-+
-+/* By default, we use the hardwired pathnames.  */
-+#define relocate(pathname) (pathname)
-+
-+#endif
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _RELOCATABLE_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/textdomain.c psmisc-20.2.works.clean/intl/textdomain.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/textdomain.c      2001-04-13 23:00:42.000000000 -0500
-+++ psmisc-20.2.works.clean/intl/textdomain.c  2004-10-13 15:18:42.000000000 -0500
-@@ -1,19 +1,20 @@
- /* Implementation of the textdomain(3) function.
--   Copyright (C) 1995-1998, 2000, 2001 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 General Public License as published by
--   the Free Software Foundation; either version 2, or (at your option)
-+   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
-+   by the Free Software Foundation; either version 2, or (at your option)
-    any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--   GNU General Public License for more details.
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
--   You should have received a copy of the GNU General Public License
--   along with this program; if not, write to the Free Software Foundation,
--   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -43,17 +44,17 @@
-    names than the internal variables in GNU libc, otherwise programs
-    using libintl.a cannot be linked statically.  */
- #if !defined _LIBC
--# define _nl_default_default_domain _nl_default_default_domain__
--# define _nl_current_default_domain _nl_current_default_domain__
-+# define _nl_default_default_domain libintl_nl_default_default_domain
-+# define _nl_current_default_domain libintl_nl_current_default_domain
- #endif
- /* @@ end of prolog @@ */
- /* Name of the default text domain.  */
--extern const char _nl_default_default_domain[];
-+extern const char _nl_default_default_domain[] attribute_hidden;
- /* Default text domain in which entries for gettext(3) are to be found.  */
--extern const char *_nl_current_default_domain;
-+extern const char *_nl_current_default_domain attribute_hidden;
- /* Names for the libintl functions are a problem.  They must not clash
-@@ -66,18 +67,17 @@
- #  define strdup(str) __strdup (str)
- # endif
- #else
--# define TEXTDOMAIN textdomain__
-+# define TEXTDOMAIN libintl_textdomain
- #endif
- /* Lock variable to protect the global data in the gettext implementation.  */
--__libc_rwlock_define (extern, _nl_state_lock)
-+__libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
- /* Set the current default message catalog to DOMAINNAME.
-    If DOMAINNAME is null, return the current default.
-    If DOMAINNAME is "", reset to the default of "messages".  */
- char *
--TEXTDOMAIN (domainname)
--     const char *domainname;
-+TEXTDOMAIN (const char *domainname)
- {
-   char *new_domain;
-   char *old_domain;
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/vasnprintf.c psmisc-20.2.works.clean/intl/vasnprintf.c
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/vasnprintf.c      1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/vasnprintf.c  2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,887 @@
-+/* vsprintf with automatic memory allocation.
-+   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
-+   This must come before <config.h> because <config.h> may include
-+   <features.h>, and once <features.h> has been included, it's too late.  */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE    1
-+#endif
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+#ifndef IN_LIBINTL
-+# include <alloca.h>
-+#endif
-+
-+/* Specification.  */
-+#if WIDE_CHAR_VERSION
-+# include "vasnwprintf.h"
-+#else
-+# include "vasnprintf.h"
-+#endif
-+
-+#include <stdio.h>    /* snprintf(), sprintf() */
-+#include <stdlib.h>   /* abort(), malloc(), realloc(), free() */
-+#include <string.h>   /* memcpy(), strlen() */
-+#include <errno.h>    /* errno */
-+#include <limits.h>   /* CHAR_BIT */
-+#include <float.h>    /* DBL_MAX_EXP, LDBL_MAX_EXP */
-+#if WIDE_CHAR_VERSION
-+# include "wprintf-parse.h"
-+#else
-+# include "printf-parse.h"
-+#endif
-+
-+/* Checked size_t computations.  */
-+#include "xsize.h"
-+
-+#ifdef HAVE_WCHAR_T
-+# ifdef HAVE_WCSLEN
-+#  define local_wcslen wcslen
-+# else
-+   /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid
-+      a dependency towards this library, here is a local substitute.
-+      Define this substitute only once, even if this file is included
-+      twice in the same compilation unit.  */
-+#  ifndef local_wcslen_defined
-+#   define local_wcslen_defined 1
-+static size_t
-+local_wcslen (const wchar_t *s)
-+{
-+  const wchar_t *ptr;
-+
-+  for (ptr = s; *ptr != (wchar_t) 0; ptr++)
-+    ;
-+  return ptr - s;
-+}
-+#  endif
-+# endif
-+#endif
-+
-+#if WIDE_CHAR_VERSION
-+# define VASNPRINTF vasnwprintf
-+# define CHAR_T wchar_t
-+# define DIRECTIVE wchar_t_directive
-+# define DIRECTIVES wchar_t_directives
-+# define PRINTF_PARSE wprintf_parse
-+# define USE_SNPRINTF 1
-+# if HAVE_DECL__SNWPRINTF
-+   /* On Windows, the function swprintf() has a different signature than
-+      on Unix; we use the _snwprintf() function instead.  */
-+#  define SNPRINTF _snwprintf
-+# else
-+   /* Unix.  */
-+#  define SNPRINTF swprintf
-+# endif
-+#else
-+# define VASNPRINTF vasnprintf
-+# define CHAR_T char
-+# define DIRECTIVE char_directive
-+# define DIRECTIVES char_directives
-+# define PRINTF_PARSE printf_parse
-+# define USE_SNPRINTF (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF)
-+# if HAVE_DECL__SNPRINTF
-+   /* Windows.  */
-+#  define SNPRINTF _snprintf
-+# else
-+   /* Unix.  */
-+#  define SNPRINTF snprintf
-+# endif
-+#endif
-+
-+CHAR_T *
-+VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list args)
-+{
-+  DIRECTIVES d;
-+  arguments a;
-+
-+  if (PRINTF_PARSE (format, &d, &a) < 0)
-+    {
-+      errno = EINVAL;
-+      return NULL;
-+    }
-+
-+#define CLEANUP() \
-+  free (d.dir);                                                               \
-+  if (a.arg)                                                          \
-+    free (a.arg);
-+
-+  if (printf_fetchargs (args, &a) < 0)
-+    {
-+      CLEANUP ();
-+      errno = EINVAL;
-+      return NULL;
-+    }
-+
-+  {
-+    size_t buf_neededlength;
-+    CHAR_T *buf;
-+    CHAR_T *buf_malloced;
-+    const CHAR_T *cp;
-+    size_t i;
-+    DIRECTIVE *dp;
-+    /* Output string accumulator.  */
-+    CHAR_T *result;
-+    size_t allocated;
-+    size_t length;
-+
-+    /* Allocate a small buffer that will hold a directive passed to
-+       sprintf or snprintf.  */
-+    buf_neededlength =
-+      xsum4 (7, d.max_width_length, d.max_precision_length, 6);
-+#if HAVE_ALLOCA
-+    if (buf_neededlength < 4000 / sizeof (CHAR_T))
-+      {
-+      buf = (CHAR_T *) alloca (buf_neededlength * sizeof (CHAR_T));
-+      buf_malloced = NULL;
-+      }
-+    else
-+#endif
-+      {
-+      size_t buf_memsize = xtimes (buf_neededlength, sizeof (CHAR_T));
-+      if (size_overflow_p (buf_memsize))
-+        goto out_of_memory_1;
-+      buf = (CHAR_T *) malloc (buf_memsize);
-+      if (buf == NULL)
-+        goto out_of_memory_1;
-+      buf_malloced = buf;
-+      }
-+
-+    if (resultbuf != NULL)
-+      {
-+      result = resultbuf;
-+      allocated = *lengthp;
-+      }
-+    else
-+      {
-+      result = NULL;
-+      allocated = 0;
-+      }
-+    length = 0;
-+    /* Invariants:
-+       result is either == resultbuf or == NULL or malloc-allocated.
-+       If length > 0, then result != NULL.  */
-+
-+    /* Ensures that allocated >= needed.  Aborts through a jump to
-+       out_of_memory if needed is SIZE_MAX or otherwise too big.  */
-+#define ENSURE_ALLOCATION(needed) \
-+    if ((needed) > allocated)                                              \
-+      {                                                                            \
-+      size_t memory_size;                                                  \
-+      CHAR_T *memory;                                                      \
-+                                                                           \
-+      allocated = (allocated > 0 ? xtimes (allocated, 2) : 12);            \
-+      if ((needed) > allocated)                                            \
-+        allocated = (needed);                                              \
-+      memory_size = xtimes (allocated, sizeof (CHAR_T));                   \
-+      if (size_overflow_p (memory_size))                                   \
-+        goto out_of_memory;                                                \
-+      if (result == resultbuf || result == NULL)                           \
-+        memory = (CHAR_T *) malloc (memory_size);                          \
-+      else                                                                 \
-+        memory = (CHAR_T *) realloc (result, memory_size);                 \
-+      if (memory == NULL)                                                  \
-+        goto out_of_memory;                                                \
-+      if (result == resultbuf && length > 0)                               \
-+        memcpy (memory, result, length * sizeof (CHAR_T));                 \
-+      result = memory;                                                     \
-+      }
-+
-+    for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++)
-+      {
-+      if (cp != dp->dir_start)
-+        {
-+          size_t n = dp->dir_start - cp;
-+          size_t augmented_length = xsum (length, n);
-+
-+          ENSURE_ALLOCATION (augmented_length);
-+          memcpy (result + length, cp, n * sizeof (CHAR_T));
-+          length = augmented_length;
-+        }
-+      if (i == d.count)
-+        break;
-+
-+      /* Execute a single directive.  */
-+      if (dp->conversion == '%')
-+        {
-+          size_t augmented_length;
-+
-+          if (!(dp->arg_index == ARG_NONE))
-+            abort ();
-+          augmented_length = xsum (length, 1);
-+          ENSURE_ALLOCATION (augmented_length);
-+          result[length] = '%';
-+          length = augmented_length;
-+        }
-+      else
-+        {
-+          if (!(dp->arg_index != ARG_NONE))
-+            abort ();
-+
-+          if (dp->conversion == 'n')
-+            {
-+              switch (a.arg[dp->arg_index].type)
-+                {
-+                case TYPE_COUNT_SCHAR_POINTER:
-+                  *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
-+                  break;
-+                case TYPE_COUNT_SHORT_POINTER:
-+                  *a.arg[dp->arg_index].a.a_count_short_pointer = length;
-+                  break;
-+                case TYPE_COUNT_INT_POINTER:
-+                  *a.arg[dp->arg_index].a.a_count_int_pointer = length;
-+                  break;
-+                case TYPE_COUNT_LONGINT_POINTER:
-+                  *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
-+                  break;
-+#ifdef HAVE_LONG_LONG
-+                case TYPE_COUNT_LONGLONGINT_POINTER:
-+                  *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
-+                  break;
-+#endif
-+                default:
-+                  abort ();
-+                }
-+            }
-+          else
-+            {
-+              arg_type type = a.arg[dp->arg_index].type;
-+              CHAR_T *p;
-+              unsigned int prefix_count;
-+              int prefixes[2];
-+#if !USE_SNPRINTF
-+              size_t tmp_length;
-+              CHAR_T tmpbuf[700];
-+              CHAR_T *tmp;
-+
-+              /* Allocate a temporary buffer of sufficient size for calling
-+                 sprintf.  */
-+              {
-+                size_t width;
-+                size_t precision;
-+
-+                width = 0;
-+                if (dp->width_start != dp->width_end)
-+                  {
-+                    if (dp->width_arg_index != ARG_NONE)
-+                      {
-+                        int arg;
-+
-+                        if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+                          abort ();
-+                        arg = a.arg[dp->width_arg_index].a.a_int;
-+                        width = (arg < 0 ? (unsigned int) (-arg) : arg);
-+                      }
-+                    else
-+                      {
-+                        const CHAR_T *digitp = dp->width_start;
-+
-+                        do
-+                          width = xsum (xtimes (width, 10), *digitp++ - '0');
-+                        while (digitp != dp->width_end);
-+                      }
-+                  }
-+
-+                precision = 6;
-+                if (dp->precision_start != dp->precision_end)
-+                  {
-+                    if (dp->precision_arg_index != ARG_NONE)
-+                      {
-+                        int arg;
-+
-+                        if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+                          abort ();
-+                        arg = a.arg[dp->precision_arg_index].a.a_int;
-+                        precision = (arg < 0 ? 0 : arg);
-+                      }
-+                    else
-+                      {
-+                        const CHAR_T *digitp = dp->precision_start + 1;
-+
-+                        precision = 0;
-+                        do
-+                          precision = xsum (xtimes (precision, 10), *digitp++ - '0');
-+                        while (digitp != dp->precision_end);
-+                      }
-+                  }
-+
-+                switch (dp->conversion)
-+                  {
-+
-+                  case 'd': case 'i': case 'u':
-+# ifdef HAVE_LONG_LONG
-+                    if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+                                        * 0.30103 /* binary -> decimal */
-+                                        * 2 /* estimate for FLAG_GROUP */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 1; /* account for leading sign */
-+                    else
-+# endif
-+                    if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+                                        * 0.30103 /* binary -> decimal */
-+                                        * 2 /* estimate for FLAG_GROUP */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 1; /* account for leading sign */
-+                    else
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+                                        * 0.30103 /* binary -> decimal */
-+                                        * 2 /* estimate for FLAG_GROUP */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 1; /* account for leading sign */
-+                    break;
-+
-+                  case 'o':
-+# ifdef HAVE_LONG_LONG
-+                    if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+                                        * 0.333334 /* binary -> octal */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 1; /* account for leading sign */
-+                    else
-+# endif
-+                    if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+                                        * 0.333334 /* binary -> octal */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 1; /* account for leading sign */
-+                    else
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+                                        * 0.333334 /* binary -> octal */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 1; /* account for leading sign */
-+                    break;
-+
-+                  case 'x': case 'X':
-+# ifdef HAVE_LONG_LONG
-+                    if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+                                        * 0.25 /* binary -> hexadecimal */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 2; /* account for leading sign or alternate form */
-+                    else
-+# endif
-+                    if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+                                        * 0.25 /* binary -> hexadecimal */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 2; /* account for leading sign or alternate form */
-+                    else
-+                      tmp_length =
-+                        (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+                                        * 0.25 /* binary -> hexadecimal */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 2; /* account for leading sign or alternate form */
-+                    break;
-+
-+                  case 'f': case 'F':
-+# ifdef HAVE_LONG_DOUBLE
-+                    if (type == TYPE_LONGDOUBLE)
-+                      tmp_length =
-+                        (unsigned int) (LDBL_MAX_EXP
-+                                        * 0.30103 /* binary -> decimal */
-+                                        * 2 /* estimate for FLAG_GROUP */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 10; /* sign, decimal point etc. */
-+                    else
-+# endif
-+                      tmp_length =
-+                        (unsigned int) (DBL_MAX_EXP
-+                                        * 0.30103 /* binary -> decimal */
-+                                        * 2 /* estimate for FLAG_GROUP */
-+                                       )
-+                        + 1 /* turn floor into ceil */
-+                        + 10; /* sign, decimal point etc. */
-+                    tmp_length = xsum (tmp_length, precision);
-+                    break;
-+
-+                  case 'e': case 'E': case 'g': case 'G':
-+                  case 'a': case 'A':
-+                    tmp_length =
-+                      12; /* sign, decimal point, exponent etc. */
-+                    tmp_length = xsum (tmp_length, precision);
-+                    break;
-+
-+                  case 'c':
-+# if defined HAVE_WINT_T && !WIDE_CHAR_VERSION
-+                    if (type == TYPE_WIDE_CHAR)
-+                      tmp_length = MB_CUR_MAX;
-+                    else
-+# endif
-+                      tmp_length = 1;
-+                    break;
-+
-+                  case 's':
-+# ifdef HAVE_WCHAR_T
-+                    if (type == TYPE_WIDE_STRING)
-+                      {
-+                        tmp_length =
-+                          local_wcslen (a.arg[dp->arg_index].a.a_wide_string);
-+
-+#  if !WIDE_CHAR_VERSION
-+                        tmp_length = xtimes (tmp_length, MB_CUR_MAX);
-+#  endif
-+                      }
-+                    else
-+# endif
-+                      tmp_length = strlen (a.arg[dp->arg_index].a.a_string);
-+                    break;
-+
-+                  case 'p':
-+                    tmp_length =
-+                      (unsigned int) (sizeof (void *) * CHAR_BIT
-+                                      * 0.25 /* binary -> hexadecimal */
-+                                     )
-+                        + 1 /* turn floor into ceil */
-+                        + 2; /* account for leading 0x */
-+                    break;
-+
-+                  default:
-+                    abort ();
-+                  }
-+
-+                if (tmp_length < width)
-+                  tmp_length = width;
-+
-+                tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
-+              }
-+
-+              if (tmp_length <= sizeof (tmpbuf) / sizeof (CHAR_T))
-+                tmp = tmpbuf;
-+              else
-+                {
-+                  size_t tmp_memsize = xtimes (tmp_length, sizeof (CHAR_T));
-+
-+                  if (size_overflow_p (tmp_memsize))
-+                    /* Overflow, would lead to out of memory.  */
-+                    goto out_of_memory;
-+                  tmp = (CHAR_T *) malloc (tmp_memsize);
-+                  if (tmp == NULL)
-+                    /* Out of memory.  */
-+                    goto out_of_memory;
-+                }
-+#endif
-+
-+              /* Construct the format string for calling snprintf or
-+                 sprintf.  */
-+              p = buf;
-+              *p++ = '%';
-+              if (dp->flags & FLAG_GROUP)
-+                *p++ = '\'';
-+              if (dp->flags & FLAG_LEFT)
-+                *p++ = '-';
-+              if (dp->flags & FLAG_SHOWSIGN)
-+                *p++ = '+';
-+              if (dp->flags & FLAG_SPACE)
-+                *p++ = ' ';
-+              if (dp->flags & FLAG_ALT)
-+                *p++ = '#';
-+              if (dp->flags & FLAG_ZERO)
-+                *p++ = '0';
-+              if (dp->width_start != dp->width_end)
-+                {
-+                  size_t n = dp->width_end - dp->width_start;
-+                  memcpy (p, dp->width_start, n * sizeof (CHAR_T));
-+                  p += n;
-+                }
-+              if (dp->precision_start != dp->precision_end)
-+                {
-+                  size_t n = dp->precision_end - dp->precision_start;
-+                  memcpy (p, dp->precision_start, n * sizeof (CHAR_T));
-+                  p += n;
-+                }
-+
-+              switch (type)
-+                {
-+#ifdef HAVE_LONG_LONG
-+                case TYPE_LONGLONGINT:
-+                case TYPE_ULONGLONGINT:
-+                  *p++ = 'l';
-+                  /*FALLTHROUGH*/
-+#endif
-+                case TYPE_LONGINT:
-+                case TYPE_ULONGINT:
-+#ifdef HAVE_WINT_T
-+                case TYPE_WIDE_CHAR:
-+#endif
-+#ifdef HAVE_WCHAR_T
-+                case TYPE_WIDE_STRING:
-+#endif
-+                  *p++ = 'l';
-+                  break;
-+#ifdef HAVE_LONG_DOUBLE
-+                case TYPE_LONGDOUBLE:
-+                  *p++ = 'L';
-+                  break;
-+#endif
-+                default:
-+                  break;
-+                }
-+              *p = dp->conversion;
-+#if USE_SNPRINTF
-+              p[1] = '%';
-+              p[2] = 'n';
-+              p[3] = '\0';
-+#else
-+              p[1] = '\0';
-+#endif
-+
-+              /* Construct the arguments for calling snprintf or sprintf.  */
-+              prefix_count = 0;
-+              if (dp->width_arg_index != ARG_NONE)
-+                {
-+                  if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+                    abort ();
-+                  prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int;
-+                }
-+              if (dp->precision_arg_index != ARG_NONE)
-+                {
-+                  if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+                    abort ();
-+                  prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int;
-+                }
-+
-+#if USE_SNPRINTF
-+              /* Prepare checking whether snprintf returns the count
-+                 via %n.  */
-+              ENSURE_ALLOCATION (xsum (length, 1));
-+              result[length] = '\0';
-+#endif
-+
-+              for (;;)
-+                {
-+                  size_t maxlen;
-+                  int count;
-+                  int retcount;
-+
-+                  maxlen = allocated - length;
-+                  count = -1;
-+                  retcount = 0;
-+
-+#if USE_SNPRINTF
-+# define SNPRINTF_BUF(arg) \
-+                  switch (prefix_count)                                   \
-+                    {                                                     \
-+                    case 0:                                               \
-+                      retcount = SNPRINTF (result + length, maxlen, buf,  \
-+                                           arg, &count);                  \
-+                      break;                                              \
-+                    case 1:                                               \
-+                      retcount = SNPRINTF (result + length, maxlen, buf,  \
-+                                           prefixes[0], arg, &count);     \
-+                      break;                                              \
-+                    case 2:                                               \
-+                      retcount = SNPRINTF (result + length, maxlen, buf,  \
-+                                           prefixes[0], prefixes[1], arg, \
-+                                           &count);                       \
-+                      break;                                              \
-+                    default:                                              \
-+                      abort ();                                           \
-+                    }
-+#else
-+# define SNPRINTF_BUF(arg) \
-+                  switch (prefix_count)                                   \
-+                    {                                                     \
-+                    case 0:                                               \
-+                      count = sprintf (tmp, buf, arg);                    \
-+                      break;                                              \
-+                    case 1:                                               \
-+                      count = sprintf (tmp, buf, prefixes[0], arg);       \
-+                      break;                                              \
-+                    case 2:                                               \
-+                      count = sprintf (tmp, buf, prefixes[0], prefixes[1],\
-+                                       arg);                              \
-+                      break;                                              \
-+                    default:                                              \
-+                      abort ();                                           \
-+                    }
-+#endif
-+
-+                  switch (type)
-+                    {
-+                    case TYPE_SCHAR:
-+                      {
-+                        int arg = a.arg[dp->arg_index].a.a_schar;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    case TYPE_UCHAR:
-+                      {
-+                        unsigned int arg = a.arg[dp->arg_index].a.a_uchar;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    case TYPE_SHORT:
-+                      {
-+                        int arg = a.arg[dp->arg_index].a.a_short;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    case TYPE_USHORT:
-+                      {
-+                        unsigned int arg = a.arg[dp->arg_index].a.a_ushort;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    case TYPE_INT:
-+                      {
-+                        int arg = a.arg[dp->arg_index].a.a_int;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    case TYPE_UINT:
-+                      {
-+                        unsigned int arg = a.arg[dp->arg_index].a.a_uint;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    case TYPE_LONGINT:
-+                      {
-+                        long int arg = a.arg[dp->arg_index].a.a_longint;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    case TYPE_ULONGINT:
-+                      {
-+                        unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+#ifdef HAVE_LONG_LONG
-+                    case TYPE_LONGLONGINT:
-+                      {
-+                        long long int arg = a.arg[dp->arg_index].a.a_longlongint;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    case TYPE_ULONGLONGINT:
-+                      {
-+                        unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+#endif
-+                    case TYPE_DOUBLE:
-+                      {
-+                        double arg = a.arg[dp->arg_index].a.a_double;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+#ifdef HAVE_LONG_DOUBLE
-+                    case TYPE_LONGDOUBLE:
-+                      {
-+                        long double arg = a.arg[dp->arg_index].a.a_longdouble;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+#endif
-+                    case TYPE_CHAR:
-+                      {
-+                        int arg = a.arg[dp->arg_index].a.a_char;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+#ifdef HAVE_WINT_T
-+                    case TYPE_WIDE_CHAR:
-+                      {
-+                        wint_t arg = a.arg[dp->arg_index].a.a_wide_char;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+#endif
-+                    case TYPE_STRING:
-+                      {
-+                        const char *arg = a.arg[dp->arg_index].a.a_string;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+#ifdef HAVE_WCHAR_T
-+                    case TYPE_WIDE_STRING:
-+                      {
-+                        const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+#endif
-+                    case TYPE_POINTER:
-+                      {
-+                        void *arg = a.arg[dp->arg_index].a.a_pointer;
-+                        SNPRINTF_BUF (arg);
-+                      }
-+                      break;
-+                    default:
-+                      abort ();
-+                    }
-+
-+#if USE_SNPRINTF
-+                  /* Portability: Not all implementations of snprintf()
-+                     are ISO C 99 compliant.  Determine the number of
-+                     bytes that snprintf() has produced or would have
-+                     produced.  */
-+                  if (count >= 0)
-+                    {
-+                      /* Verify that snprintf() has NUL-terminated its
-+                         result.  */
-+                      if (count < maxlen && result[length + count] != '\0')
-+                        abort ();
-+                      /* Portability hack.  */
-+                      if (retcount > count)
-+                        count = retcount;
-+                    }
-+                  else
-+                    {
-+                      /* snprintf() doesn't understand the '%n'
-+                         directive.  */
-+                      if (p[1] != '\0')
-+                        {
-+                          /* Don't use the '%n' directive; instead, look
-+                             at the snprintf() return value.  */
-+                          p[1] = '\0';
-+                          continue;
-+                        }
-+                      else
-+                        {
-+                          /* Look at the snprintf() return value.  */
-+                          if (retcount < 0)
-+                            {
-+                              /* HP-UX 10.20 snprintf() is doubly deficient:
-+                                 It doesn't understand the '%n' directive,
-+                                 *and* it returns -1 (rather than the length
-+                                 that would have been required) when the
-+                                 buffer is too small.  */
-+                              size_t bigger_need =
-+                                xsum (xtimes (allocated, 2), 12);
-+                              ENSURE_ALLOCATION (bigger_need);
-+                              continue;
-+                            }
-+                          else
-+                            count = retcount;
-+                        }
-+                    }
-+#endif
-+
-+                  /* Attempt to handle failure.  */
-+                  if (count < 0)
-+                    {
-+                      if (!(result == resultbuf || result == NULL))
-+                        free (result);
-+                      if (buf_malloced != NULL)
-+                        free (buf_malloced);
-+                      CLEANUP ();
-+                      errno = EINVAL;
-+                      return NULL;
-+                    }
-+
-+#if !USE_SNPRINTF
-+                  if (count >= tmp_length)
-+                    /* tmp_length was incorrectly calculated - fix the
-+                       code above!  */
-+                    abort ();
-+#endif
-+
-+                  /* Make room for the result.  */
-+                  if (count >= maxlen)
-+                    {
-+                      /* Need at least count bytes.  But allocate
-+                         proportionally, to avoid looping eternally if
-+                         snprintf() reports a too small count.  */
-+                      size_t n =
-+                        xmax (xsum (length, count), xtimes (allocated, 2));
-+
-+                      ENSURE_ALLOCATION (n);
-+#if USE_SNPRINTF
-+                      continue;
-+#endif
-+                    }
-+
-+#if USE_SNPRINTF
-+                  /* The snprintf() result did fit.  */
-+#else
-+                  /* Append the sprintf() result.  */
-+                  memcpy (result + length, tmp, count * sizeof (CHAR_T));
-+                  if (tmp != tmpbuf)
-+                    free (tmp);
-+#endif
-+
-+                  length += count;
-+                  break;
-+                }
-+            }
-+        }
-+      }
-+
-+    /* Add the final NUL.  */
-+    ENSURE_ALLOCATION (xsum (length, 1));
-+    result[length] = '\0';
-+
-+    if (result != resultbuf && length + 1 < allocated)
-+      {
-+      /* Shrink the allocated memory if possible.  */
-+      CHAR_T *memory;
-+
-+      memory = (CHAR_T *) realloc (result, (length + 1) * sizeof (CHAR_T));
-+      if (memory != NULL)
-+        result = memory;
-+      }
-+
-+    if (buf_malloced != NULL)
-+      free (buf_malloced);
-+    CLEANUP ();
-+    *lengthp = length;
-+    return result;
-+
-+  out_of_memory:
-+    if (!(result == resultbuf || result == NULL))
-+      free (result);
-+    if (buf_malloced != NULL)
-+      free (buf_malloced);
-+  out_of_memory_1:
-+    CLEANUP ();
-+    errno = ENOMEM;
-+    return NULL;
-+  }
-+}
-+
-+#undef SNPRINTF
-+#undef USE_SNPRINTF
-+#undef PRINTF_PARSE
-+#undef DIRECTIVES
-+#undef DIRECTIVE
-+#undef CHAR_T
-+#undef VASNPRINTF
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/vasnprintf.h psmisc-20.2.works.clean/intl/vasnprintf.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/vasnprintf.h      1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/vasnprintf.h  2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,61 @@
-+/* vsprintf with automatic memory allocation.
-+   Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _VASNPRINTF_H
-+#define _VASNPRINTF_H
-+
-+/* Get va_list.  */
-+#include <stdarg.h>
-+
-+/* Get size_t.  */
-+#include <stddef.h>
-+
-+#ifndef __attribute__
-+/* This feature is available in gcc versions 2.5 and later.  */
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
-+#  define __attribute__(Spec) /* empty */
-+# endif
-+/* The __-protected variants of `format' and `printf' attributes
-+   are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-+#  define __format__ format
-+#  define __printf__ printf
-+# endif
-+#endif
-+
-+#ifdef        __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Write formatted output to a string dynamically allocated with malloc().
-+   You can pass a preallocated buffer for the result in RESULTBUF and its
-+   size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
-+   If successful, return the address of the string (this may be = RESULTBUF
-+   if no dynamic memory allocation was necessary) and set *LENGTHP to the
-+   number of resulting bytes, excluding the trailing NUL.  Upon error, set
-+   errno and return NULL.  */
-+extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
-+       __attribute__ ((__format__ (__printf__, 3, 4)));
-+extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
-+       __attribute__ ((__format__ (__printf__, 3, 0)));
-+
-+#ifdef        __cplusplus
-+}
-+#endif
-+
-+#endif /* _VASNPRINTF_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/vasnwprintf.h psmisc-20.2.works.clean/intl/vasnwprintf.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/vasnwprintf.h     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/vasnwprintf.h 2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,46 @@
-+/* vswprintf with automatic memory allocation.
-+   Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _VASNWPRINTF_H
-+#define _VASNWPRINTF_H
-+
-+/* Get va_list.  */
-+#include <stdarg.h>
-+
-+/* Get wchar_t, size_t.  */
-+#include <stddef.h>
-+
-+#ifdef        __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Write formatted output to a string dynamically allocated with malloc().
-+   You can pass a preallocated buffer for the result in RESULTBUF and its
-+   size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
-+   If successful, return the address of the string (this may be = RESULTBUF
-+   if no dynamic memory allocation was necessary) and set *LENGTHP to the
-+   number of resulting bytes, excluding the trailing NUL.  Upon error, set
-+   errno and return NULL.  */
-+extern wchar_t * asnwprintf (wchar_t *resultbuf, size_t *lengthp, const wchar_t *format, ...);
-+extern wchar_t * vasnwprintf (wchar_t *resultbuf, size_t *lengthp, const wchar_t *format, va_list args);
-+
-+#ifdef        __cplusplus
-+}
-+#endif
-+
-+#endif /* _VASNWPRINTF_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/wprintf-parse.h psmisc-20.2.works.clean/intl/wprintf-parse.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/wprintf-parse.h   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/wprintf-parse.h       2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,75 @@
-+/* Parse printf format string.
-+   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _WPRINTF_PARSE_H
-+#define _WPRINTF_PARSE_H
-+
-+#include "printf-args.h"
-+
-+
-+/* Flags */
-+#define FLAG_GROUP     1      /* ' flag */
-+#define FLAG_LEFT      2      /* - flag */
-+#define FLAG_SHOWSIGN  4      /* + flag */
-+#define FLAG_SPACE     8      /* space flag */
-+#define FLAG_ALT      16      /* # flag */
-+#define FLAG_ZERO     32
-+
-+/* arg_index value indicating that no argument is consumed.  */
-+#define ARG_NONE      (~(size_t)0)
-+
-+/* A parsed directive.  */
-+typedef struct
-+{
-+  const wchar_t* dir_start;
-+  const wchar_t* dir_end;
-+  int flags;
-+  const wchar_t* width_start;
-+  const wchar_t* width_end;
-+  size_t width_arg_index;
-+  const wchar_t* precision_start;
-+  const wchar_t* precision_end;
-+  size_t precision_arg_index;
-+  wchar_t conversion; /* d i o u x X f e E g G c s p n U % but not C S */
-+  size_t arg_index;
-+}
-+wchar_t_directive;
-+
-+/* A parsed format string.  */
-+typedef struct
-+{
-+  size_t count;
-+  wchar_t_directive *dir;
-+  size_t max_width_length;
-+  size_t max_precision_length;
-+}
-+wchar_t_directives;
-+
-+
-+/* Parses the format string.  Fills in the number N of directives, and fills
-+   in directives[0], ..., directives[N-1], and sets directives[N].dir_start
-+   to the end of the format string.  Also fills in the arg_type fields of the
-+   arguments and the needed count of arguments.  */
-+#ifdef STATIC
-+STATIC
-+#else
-+extern
-+#endif
-+int wprintf_parse (const wchar_t *format, wchar_t_directives *d, arguments *a);
-+
-+#endif /* _WPRINTF_PARSE_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/xsize.h psmisc-20.2.works.clean/intl/xsize.h
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/intl/xsize.h   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/intl/xsize.h       2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,109 @@
-+/* xsize.h -- Checked size_t computations.
-+
-+   Copyright (C) 2003 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify it
-+   under the terms of the GNU Library General Public License as published
-+   by the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Library General Public License for more details.
-+
-+   You should have received a copy of the GNU Library General Public
-+   License along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+   USA.  */
-+
-+#ifndef _XSIZE_H
-+#define _XSIZE_H
-+
-+/* Get size_t.  */
-+#include <stddef.h>
-+
-+/* Get SIZE_MAX.  */
-+#include <limits.h>
-+#if HAVE_STDINT_H
-+# include <stdint.h>
-+#endif
-+
-+/* The size of memory objects is often computed through expressions of
-+   type size_t. Example:
-+      void* p = malloc (header_size + n * element_size).
-+   These computations can lead to overflow.  When this happens, malloc()
-+   returns a piece of memory that is way too small, and the program then
-+   crashes while attempting to fill the memory.
-+   To avoid this, the functions and macros in this file check for overflow.
-+   The convention is that SIZE_MAX represents overflow.
-+   malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc
-+   implementation that uses mmap --, it's recommended to use size_overflow_p()
-+   or size_in_bounds_p() before invoking malloc().
-+   The example thus becomes:
-+      size_t size = xsum (header_size, xtimes (n, element_size));
-+      void *p = (size_in_bounds_p (size) ? malloc (size) : NULL);
-+*/
-+
-+/* Convert an arbitrary value >= 0 to type size_t.  */
-+#define xcast_size_t(N) \
-+  ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
-+
-+/* Sum of two sizes, with overflow check.  */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum (size_t size1, size_t size2)
-+{
-+  size_t sum = size1 + size2;
-+  return (sum >= size1 ? sum : SIZE_MAX);
-+}
-+
-+/* Sum of three sizes, with overflow check.  */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum3 (size_t size1, size_t size2, size_t size3)
-+{
-+  return xsum (xsum (size1, size2), size3);
-+}
-+
-+/* Sum of four sizes, with overflow check.  */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
-+{
-+  return xsum (xsum (xsum (size1, size2), size3), size4);
-+}
-+
-+/* Maximum of two sizes, with overflow check.  */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xmax (size_t size1, size_t size2)
-+{
-+  /* No explicit check is needed here, because for any n:
-+     max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX.  */
-+  return (size1 >= size2 ? size1 : size2);
-+}
-+
-+/* Multiplication of a count with an element size, with overflow check.
-+   The count must be >= 0 and the element size must be > 0.
-+   This is a macro, not an inline function, so that it works correctly even
-+   when N is of a wider tupe and N > SIZE_MAX.  */
-+#define xtimes(N, ELSIZE) \
-+  ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
-+
-+/* Check for overflow.  */
-+#define size_overflow_p(SIZE) \
-+  ((SIZE) == SIZE_MAX)
-+/* Check against overflow.  */
-+#define size_in_bounds_p(SIZE) \
-+  ((SIZE) != SIZE_MAX)
-+
-+#endif /* _XSIZE_H */
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/ChangeLog psmisc-20.2.works.clean/m4/ChangeLog
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/ChangeLog   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/ChangeLog       2004-10-13 15:11:01.000000000 -0500
-@@ -0,0 +1,25 @@
-+2004-10-13  gettextize  <bug-gnu-gettext@gnu.org>
-+
-+      * gettext.m4: Upgrade to gettext-0.14.1.
-+      * intmax.m4: New file, from gettext-0.14.1.
-+      * inttypes_h.m4: Upgrade to gettext-0.14.1.
-+      * isc-posix.m4: New file, from gettext-0.14.1.
-+      * lib-ld.m4: Upgrade to gettext-0.14.1.
-+      * lib-link.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.
-+      * nls.m4: New file, from gettext-0.14.1.
-+      * po.m4: New file, from gettext-0.14.1.
-+      * printf-posix.m4: New file, from gettext-0.14.1.
-+      * progtest.m4: Upgrade to gettext-0.14.1.
-+      * signed.m4: New file, from gettext-0.14.1.
-+      * size_max.m4: New file, from gettext-0.14.1.
-+      * stdint_h.m4: Upgrade to gettext-0.14.1.
-+      * uintmax_t.m4: Upgrade to 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: New file.
-+
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/Makefile psmisc-20.2.works.clean/m4/Makefile
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/Makefile.am psmisc-20.2.works.clean/m4/Makefile.am
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/Makefile.am 1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/Makefile.am     2004-10-13 15:11:01.000000000 -0500
-@@ -0,0 +1 @@
-+EXTRA_DIST = intmax.m4 isc-posix.m4 longdouble.m4 longlong.m4 nls.m4 po.m4 printf-posix.m4 signed.m4 size_max.m4 wchar_t.m4 wint_t.m4 xsize.m4
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/Makefile.in psmisc-20.2.works.clean/m4/Makefile.in
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/codeset.m4 psmisc-20.2.works.clean/m4/codeset.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/codeset.m4  1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/codeset.m4      2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,23 @@
-+# codeset.m4 serial AM1 (gettext-0.10.40)
-+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([AM_LANGINFO_CODESET],
-+[
-+  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
-+    [AC_TRY_LINK([#include <langinfo.h>],
-+      [char* cs = nl_langinfo(CODESET);],
-+      am_cv_langinfo_codeset=yes,
-+      am_cv_langinfo_codeset=no)
-+    ])
-+  if test $am_cv_langinfo_codeset = yes; then
-+    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
-+      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/codeset.m4~ psmisc-20.2.works.clean/m4/codeset.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/gettext.m4 psmisc-20.2.works.clean/m4/gettext.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/gettext.m4  1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/gettext.m4      2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,487 @@
-+# 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
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library General Public
-+dnl License but which still want to provide support for the GNU gettext
-+dnl functionality.
-+dnl Please note that the actual code of the GNU gettext library is covered
-+dnl by the GNU Library General Public License, and the rest of the GNU
-+dnl gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-+
-+dnl Macro to add for using GNU gettext.
-+
-+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-+dnl    default (if it is not specified or empty) is 'no-libtool'.
-+dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
-+dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-+dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
-+dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-+dnl    depending on --{enable,disable}-{shared,static} and on the presence of
-+dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-+dnl    $(top_builddir)/intl/libintl.a will be created.
-+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-+dnl    implementations (in libc or libintl) without the ngettext() function
-+dnl    will be ignored.  If NEEDSYMBOL is specified and is
-+dnl    'need-formatstring-macros', then GNU gettext implementations that don't
-+dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-+dnl INTLDIR is used to find the intl libraries.  If empty,
-+dnl    the value `$(top_builddir)/intl/' is used.
-+dnl
-+dnl The result of the configuration is one of three cases:
-+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-+dnl    and used.
-+dnl    Catalog format: GNU --> install in $(datadir)
-+dnl    Catalog extension: .mo after installation, .gmo in source tree
-+dnl 2) GNU gettext has been found in the system's C library.
-+dnl    Catalog format: GNU --> install in $(datadir)
-+dnl    Catalog extension: .mo after installation, .gmo in source tree
-+dnl 3) No internationalization, always use English msgid.
-+dnl    Catalog format: none
-+dnl    Catalog extension: none
-+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-+dnl The use of .gmo is historical (it was needed to avoid overwriting the
-+dnl GNU format catalogs when building on a platform with an X/Open gettext),
-+dnl but we keep it in order not to force irrelevant filename changes on the
-+dnl maintainers.
-+dnl
-+AC_DEFUN([AM_GNU_GETTEXT],
-+[
-+  dnl Argument checking.
-+  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
-+    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-+])])])])])
-+  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
-+    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-+])])])])
-+  define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
-+  define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
-+
-+  AC_REQUIRE([AM_PO_SUBDIRS])dnl
-+  ifelse(gt_included_intl, yes, [
-+    AC_REQUIRE([AM_INTL_SUBDIR])dnl
-+  ])
-+
-+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+  AC_REQUIRE([AC_LIB_RPATH])
-+
-+  dnl Sometimes libintl requires libiconv, so first search for libiconv.
-+  dnl Ideally we would do this search only after the
-+  dnl      if test "$USE_NLS" = "yes"; then
-+  dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-+  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
-+  dnl the configure script would need to contain the same shell code
-+  dnl again, outside any 'if'. There are two solutions:
-+  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
-+  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
-+  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
-+  dnl documented, we avoid it.
-+  ifelse(gt_included_intl, yes, , [
-+    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-+  ])
-+
-+  dnl Set USE_NLS.
-+  AM_NLS
-+
-+  ifelse(gt_included_intl, yes, [
-+    BUILD_INCLUDED_LIBINTL=no
-+    USE_INCLUDED_LIBINTL=no
-+  ])
-+  LIBINTL=
-+  LTLIBINTL=
-+  POSUB=
-+
-+  dnl If we use NLS figure out what method
-+  if test "$USE_NLS" = "yes"; then
-+    gt_use_preinstalled_gnugettext=no
-+    ifelse(gt_included_intl, yes, [
-+      AC_MSG_CHECKING([whether included gettext is requested])
-+      AC_ARG_WITH(included-gettext,
-+        [  --with-included-gettext use the GNU gettext library included here],
-+        nls_cv_force_use_gnu_gettext=$withval,
-+        nls_cv_force_use_gnu_gettext=no)
-+      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-+
-+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-+    ])
-+        dnl User does not insist on using GNU NLS library.  Figure out what
-+        dnl to use.  If GNU gettext is available we use this.  Else we have
-+        dnl to fall back to GNU NLS library.
-+
-+        dnl Add a version number to the cache macros.
-+        define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
-+        define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
-+        define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-+
-+        AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
-+         [AC_TRY_LINK([#include <libintl.h>
-+]ifelse([$2], [need-formatstring-macros],
-+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-+#endif
-+changequote(,)dnl
-+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-+changequote([,])dnl
-+], [])[extern int _nl_msg_cat_cntr;
-+extern int *_nl_domain_bindings;],
-+            [bindtextdomain ("", "");
-+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
-+            gt_cv_func_gnugettext_libc=yes,
-+            gt_cv_func_gnugettext_libc=no)])
-+
-+        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-+          dnl Sometimes libintl requires libiconv, so first search for libiconv.
-+          ifelse(gt_included_intl, yes, , [
-+            AM_ICONV_LINK
-+          ])
-+          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
-+          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
-+          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
-+          dnl even if libiconv doesn't exist.
-+          AC_LIB_LINKFLAGS_BODY([intl])
-+          AC_CACHE_CHECK([for GNU gettext in libintl],
-+            gt_cv_func_gnugettext_libintl,
-+           [gt_save_CPPFLAGS="$CPPFLAGS"
-+            CPPFLAGS="$CPPFLAGS $INCINTL"
-+            gt_save_LIBS="$LIBS"
-+            LIBS="$LIBS $LIBINTL"
-+            dnl Now see whether libintl exists and does not depend on libiconv.
-+            AC_TRY_LINK([#include <libintl.h>
-+]ifelse([$2], [need-formatstring-macros],
-+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-+#endif
-+changequote(,)dnl
-+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-+changequote([,])dnl
-+], [])[extern int _nl_msg_cat_cntr;
-+extern
-+#ifdef __cplusplus
-+"C"
-+#endif
-+const char *_nl_expand_alias ();],
-+              [bindtextdomain ("", "");
-+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-+              gt_cv_func_gnugettext_libintl=yes,
-+              gt_cv_func_gnugettext_libintl=no)
-+            dnl Now see whether libintl exists and depends on libiconv.
-+            if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
-+              LIBS="$LIBS $LIBICONV"
-+              AC_TRY_LINK([#include <libintl.h>
-+]ifelse([$2], [need-formatstring-macros],
-+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-+#endif
-+changequote(,)dnl
-+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-+changequote([,])dnl
-+], [])[extern int _nl_msg_cat_cntr;
-+extern
-+#ifdef __cplusplus
-+"C"
-+#endif
-+const char *_nl_expand_alias ();],
-+                [bindtextdomain ("", "");
-+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-+               [LIBINTL="$LIBINTL $LIBICONV"
-+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-+                gt_cv_func_gnugettext_libintl=yes
-+               ])
-+            fi
-+            CPPFLAGS="$gt_save_CPPFLAGS"
-+            LIBS="$gt_save_LIBS"])
-+        fi
-+
-+        dnl If an already present or preinstalled GNU gettext() is found,
-+        dnl use it.  But if this macro is used in GNU gettext, and GNU
-+        dnl gettext is already preinstalled in libintl, we update this
-+        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
-+        if test "$gt_cv_func_gnugettext_libc" = "yes" \
-+           || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
-+                && test "$PACKAGE" != gettext-runtime \
-+                && test "$PACKAGE" != gettext-tools; }; then
-+          gt_use_preinstalled_gnugettext=yes
-+        else
-+          dnl Reset the values set by searching for libintl.
-+          LIBINTL=
-+          LTLIBINTL=
-+          INCINTL=
-+        fi
-+
-+    ifelse(gt_included_intl, yes, [
-+        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
-+          dnl GNU gettext is not found in the C library.
-+          dnl Fall back on included GNU gettext library.
-+          nls_cv_use_gnu_gettext=yes
-+        fi
-+      fi
-+
-+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-+        dnl Mark actions used to generate GNU NLS library.
-+        BUILD_INCLUDED_LIBINTL=yes
-+        USE_INCLUDED_LIBINTL=yes
-+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
-+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
-+        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
-+      fi
-+
-+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
-+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
-+        dnl Mark actions to use GNU gettext tools.
-+        CATOBJEXT=.gmo
-+      fi
-+    ])
-+
-+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
-+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
-+      AC_DEFINE(ENABLE_NLS, 1,
-+        [Define to 1 if translation of program messages to the user's native language
-+   is requested.])
-+    else
-+      USE_NLS=no
-+    fi
-+  fi
-+
-+  AC_MSG_CHECKING([whether to use NLS])
-+  AC_MSG_RESULT([$USE_NLS])
-+  if test "$USE_NLS" = "yes"; then
-+    AC_MSG_CHECKING([where the gettext function comes from])
-+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-+      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-+        gt_source="external libintl"
-+      else
-+        gt_source="libc"
-+      fi
-+    else
-+      gt_source="included intl directory"
-+    fi
-+    AC_MSG_RESULT([$gt_source])
-+  fi
-+
-+  if test "$USE_NLS" = "yes"; then
-+
-+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-+      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-+        AC_MSG_CHECKING([how to link with libintl])
-+        AC_MSG_RESULT([$LIBINTL])
-+        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
-+      fi
-+
-+      dnl For backward compatibility. Some packages may be using this.
-+      AC_DEFINE(HAVE_GETTEXT, 1,
-+       [Define if the GNU gettext() function is already present or preinstalled.])
-+      AC_DEFINE(HAVE_DCGETTEXT, 1,
-+       [Define if the GNU dcgettext() function is already present or preinstalled.])
-+    fi
-+
-+    dnl We need to process the po/ directory.
-+    POSUB=po
-+  fi
-+
-+  ifelse(gt_included_intl, yes, [
-+    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
-+    dnl to 'yes' because some of the testsuite requires it.
-+    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
-+      BUILD_INCLUDED_LIBINTL=yes
-+    fi
-+
-+    dnl Make all variables we use known to autoconf.
-+    AC_SUBST(BUILD_INCLUDED_LIBINTL)
-+    AC_SUBST(USE_INCLUDED_LIBINTL)
-+    AC_SUBST(CATOBJEXT)
-+
-+    dnl For backward compatibility. Some configure.ins may be using this.
-+    nls_cv_header_intl=
-+    nls_cv_header_libgt=
-+
-+    dnl For backward compatibility. Some Makefiles may be using this.
-+    DATADIRNAME=share
-+    AC_SUBST(DATADIRNAME)
-+
-+    dnl For backward compatibility. Some Makefiles may be using this.
-+    INSTOBJEXT=.mo
-+    AC_SUBST(INSTOBJEXT)
-+
-+    dnl For backward compatibility. Some Makefiles may be using this.
-+    GENCAT=gencat
-+    AC_SUBST(GENCAT)
-+
-+    dnl For backward compatibility. Some Makefiles may be using this.
-+    if test "$USE_INCLUDED_LIBINTL" = yes; then
-+      INTLOBJS="\$(GETTOBJS)"
-+    fi
-+    AC_SUBST(INTLOBJS)
-+
-+    dnl Enable libtool support if the surrounding package wishes it.
-+    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
-+    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
-+  ])
-+
-+  dnl For backward compatibility. Some Makefiles may be using this.
-+  INTLLIBS="$LIBINTL"
-+  AC_SUBST(INTLLIBS)
-+
-+  dnl Make all documented variables known to autoconf.
-+  AC_SUBST(LIBINTL)
-+  AC_SUBST(LTLIBINTL)
-+  AC_SUBST(POSUB)
-+])
-+
-+
-+dnl Checks for all prerequisites of the intl subdirectory,
-+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-+dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-+AC_DEFUN([AM_INTL_SUBDIR],
-+[
-+  AC_REQUIRE([AC_PROG_INSTALL])dnl
-+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-+  AC_REQUIRE([AC_PROG_CC])dnl
-+  AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+  AC_REQUIRE([AC_PROG_RANLIB])dnl
-+  AC_REQUIRE([AC_ISC_POSIX])dnl
-+  AC_REQUIRE([AC_HEADER_STDC])dnl
-+  AC_REQUIRE([AC_C_CONST])dnl
-+  AC_REQUIRE([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
-+  AC_REQUIRE([gt_INTDIV0])dnl
-+  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
-+  AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
-+  AC_REQUIRE([gt_INTTYPES_PRI])dnl
-+  AC_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([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
-+    AM_LC_MESSAGES
-+  fi
-+
-+  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
-+  dnl because plural.y uses bison specific features. It requires at least
-+  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
-+  dnl compile.
-+  dnl bison is only needed for the maintainer (who touches plural.y). But in
-+  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
-+  dnl the rule in general Makefile. Now, some people carelessly touch the
-+  dnl files or have a broken "make" program, hence the plural.c rule will
-+  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
-+  dnl present or too old.
-+  AC_CHECK_PROGS([INTLBISON], [bison])
-+  if test -z "$INTLBISON"; then
-+    ac_verc_fail=yes
-+  else
-+    dnl Found it, now check the version.
-+    AC_MSG_CHECKING([version of bison])
-+changequote(<<,>>)dnl
-+    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-+    case $ac_prog_version in
-+      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-+      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-+changequote([,])dnl
-+         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-+      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-+    esac
-+    AC_MSG_RESULT([$ac_prog_version])
-+  fi
-+  if test $ac_verc_fail = yes; then
-+    INTLBISON=:
-+  fi
-+])
-+
-+
-+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], [])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/gettext.m4~ psmisc-20.2.works.clean/m4/gettext.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/glibc21.m4 psmisc-20.2.works.clean/m4/glibc21.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/glibc21.m4  1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/glibc21.m4      2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,32 @@
-+# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
-+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+# Test for the GNU C Library, version 2.1 or newer.
-+# From Bruno Haible.
-+
-+AC_DEFUN([jm_GLIBC21],
-+  [
-+    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
-+      ac_cv_gnu_library_2_1,
-+      [AC_EGREP_CPP([Lucky GNU user],
-+      [
-+#include <features.h>
-+#ifdef __GNU_LIBRARY__
-+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-+  Lucky GNU user
-+ #endif
-+#endif
-+      ],
-+      ac_cv_gnu_library_2_1=yes,
-+      ac_cv_gnu_library_2_1=no)
-+      ]
-+    )
-+    AC_SUBST(GLIBC21)
-+    GLIBC21="$ac_cv_gnu_library_2_1"
-+  ]
-+)
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/glibc21.m4~ psmisc-20.2.works.clean/m4/glibc21.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/iconv.m4 psmisc-20.2.works.clean/m4/iconv.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/iconv.m4    1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/iconv.m4        2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,103 @@
-+# iconv.m4 serial AM4 (gettext-0.11.3)
-+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-+[
-+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+  AC_REQUIRE([AC_LIB_RPATH])
-+
-+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-+  dnl accordingly.
-+  AC_LIB_LINKFLAGS_BODY([iconv])
-+])
-+
-+AC_DEFUN([AM_ICONV_LINK],
-+[
-+  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
-+  dnl those with the standalone portable GNU libiconv installed).
-+
-+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-+  dnl accordingly.
-+  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-+
-+  dnl Add $INCICONV to CPPFLAGS before performing the following checks,
-+  dnl because if the user has installed libiconv and not disabled its use
-+  dnl via --without-libiconv-prefix, he wants to use it. The first
-+  dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
-+  am_save_CPPFLAGS="$CPPFLAGS"
-+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-+
-+  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
-+    am_cv_func_iconv="no, consider installing GNU libiconv"
-+    am_cv_lib_iconv=no
-+    AC_TRY_LINK([#include <stdlib.h>
-+#include <iconv.h>],
-+      [iconv_t cd = iconv_open("","");
-+       iconv(cd,NULL,NULL,NULL,NULL);
-+       iconv_close(cd);],
-+      am_cv_func_iconv=yes)
-+    if test "$am_cv_func_iconv" != yes; then
-+      am_save_LIBS="$LIBS"
-+      LIBS="$LIBS $LIBICONV"
-+      AC_TRY_LINK([#include <stdlib.h>
-+#include <iconv.h>],
-+        [iconv_t cd = iconv_open("","");
-+         iconv(cd,NULL,NULL,NULL,NULL);
-+         iconv_close(cd);],
-+        am_cv_lib_iconv=yes
-+        am_cv_func_iconv=yes)
-+      LIBS="$am_save_LIBS"
-+    fi
-+  ])
-+  if test "$am_cv_func_iconv" = yes; then
-+    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
-+  fi
-+  if test "$am_cv_lib_iconv" = yes; then
-+    AC_MSG_CHECKING([how to link with libiconv])
-+    AC_MSG_RESULT([$LIBICONV])
-+  else
-+    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
-+    dnl either.
-+    CPPFLAGS="$am_save_CPPFLAGS"
-+    LIBICONV=
-+    LTLIBICONV=
-+  fi
-+  AC_SUBST(LIBICONV)
-+  AC_SUBST(LTLIBICONV)
-+])
-+
-+AC_DEFUN([AM_ICONV],
-+[
-+  AM_ICONV_LINK
-+  if test "$am_cv_func_iconv" = yes; then
-+    AC_MSG_CHECKING([for iconv declaration])
-+    AC_CACHE_VAL(am_cv_proto_iconv, [
-+      AC_TRY_COMPILE([
-+#include <stdlib.h>
-+#include <iconv.h>
-+extern
-+#ifdef __cplusplus
-+"C"
-+#endif
-+#if defined(__STDC__) || defined(__cplusplus)
-+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-+#else
-+size_t iconv();
-+#endif
-+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
-+      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
-+    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-+    AC_MSG_RESULT([$]{ac_t:-
-+         }[$]am_cv_proto_iconv)
-+    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
-+      [Define as const if the declaration of iconv() needs const.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/iconv.m4~ psmisc-20.2.works.clean/m4/iconv.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/intdiv0.m4 psmisc-20.2.works.clean/m4/intdiv0.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/intdiv0.m4  1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/intdiv0.m4      2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,72 @@
-+# intdiv0.m4 serial 1 (gettext-0.11.3)
-+dnl Copyright (C) 2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([gt_INTDIV0],
-+[
-+  AC_REQUIRE([AC_PROG_CC])dnl
-+  AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+
-+  AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
-+    gt_cv_int_divbyzero_sigfpe,
-+    [
-+      AC_TRY_RUN([
-+#include <stdlib.h>
-+#include <signal.h>
-+
-+static void
-+#ifdef __cplusplus
-+sigfpe_handler (int sig)
-+#else
-+sigfpe_handler (sig) int sig;
-+#endif
-+{
-+  /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
-+  exit (sig != SIGFPE);
-+}
-+
-+int x = 1;
-+int y = 0;
-+int z;
-+int nan;
-+
-+int main ()
-+{
-+  signal (SIGFPE, sigfpe_handler);
-+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
-+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
-+  signal (SIGTRAP, sigfpe_handler);
-+#endif
-+/* Linux/SPARC yields signal SIGILL.  */
-+#if defined (__sparc__) && defined (__linux__)
-+  signal (SIGILL, sigfpe_handler);
-+#endif
-+
-+  z = x / y;
-+  nan = y / y;
-+  exit (1);
-+}
-+], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
-+        [
-+          # Guess based on the CPU.
-+          case "$host_cpu" in
-+            alpha* | i[34567]86 | m68k | s390*)
-+              gt_cv_int_divbyzero_sigfpe="guessing yes";;
-+            *)
-+              gt_cv_int_divbyzero_sigfpe="guessing no";;
-+          esac
-+        ])
-+    ])
-+  case "$gt_cv_int_divbyzero_sigfpe" in
-+    *yes) value=1;;
-+    *) value=0;;
-+  esac
-+  AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
-+    [Define if integer division by zero raises signal SIGFPE.])
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/intdiv0.m4~ psmisc-20.2.works.clean/m4/intdiv0.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/intmax.m4 psmisc-20.2.works.clean/m4/intmax.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/intmax.m4   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/intmax.m4       2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,32 @@
-+# intmax.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether the system has the 'intmax_t' type, but don't attempt to
-+dnl find a replacement if it is lacking.
-+
-+AC_DEFUN([gt_TYPE_INTMAX_T],
-+[
-+  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
-+  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
-+  AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
-+    [AC_TRY_COMPILE([
-+#include <stddef.h> 
-+#include <stdlib.h>
-+#if HAVE_STDINT_H_WITH_UINTMAX
-+#include <stdint.h>
-+#endif
-+#if HAVE_INTTYPES_H_WITH_UINTMAX
-+#include <inttypes.h>
-+#endif
-+], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
-+  if test $gt_cv_c_intmax_t = yes; then
-+    AC_DEFINE(HAVE_INTMAX_T, 1,
-+      [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/intmax.m4~ psmisc-20.2.works.clean/m4/intmax.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes-pri.m4 psmisc-20.2.works.clean/m4/inttypes-pri.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes-pri.m4     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/inttypes-pri.m4 2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,32 @@
-+# inttypes-pri.m4 serial 1 (gettext-0.11.4)
-+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
-+# macros to non-string values.  This is the case on AIX 4.3.3.
-+
-+AC_DEFUN([gt_INTTYPES_PRI],
-+[
-+  AC_REQUIRE([gt_HEADER_INTTYPES_H])
-+  if test $gt_cv_header_inttypes_h = yes; then
-+    AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
-+      gt_cv_inttypes_pri_broken,
-+      [
-+        AC_TRY_COMPILE([#include <inttypes.h>
-+#ifdef PRId32
-+char *p = PRId32;
-+#endif
-+], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
-+      ])
-+  fi
-+  if test "$gt_cv_inttypes_pri_broken" = yes; then
-+    AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
-+      [Define if <inttypes.h> exists and defines unusable PRI* macros.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes-pri.m4~ psmisc-20.2.works.clean/m4/inttypes-pri.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes.m4 psmisc-20.2.works.clean/m4/inttypes.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes.m4 1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/inttypes.m4     2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,27 @@
-+# inttypes.m4 serial 1 (gettext-0.11.4)
-+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-+# <sys/types.h>.
-+
-+AC_DEFUN([gt_HEADER_INTTYPES_H],
-+[
-+  AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
-+  [
-+    AC_TRY_COMPILE(
-+      [#include <sys/types.h>
-+#include <inttypes.h>],
-+      [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
-+  ])
-+  if test $gt_cv_header_inttypes_h = yes; then
-+    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
-+      [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes.m4~ psmisc-20.2.works.clean/m4/inttypes.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes_h.m4 psmisc-20.2.works.clean/m4/inttypes_h.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes_h.m4       1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/inttypes_h.m4   2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,28 @@
-+# inttypes_h.m4 serial 5 (gettext-0.12)
-+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-+# doesn't clash with <sys/types.h>, and declares uintmax_t.
-+
-+AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
-+[
-+  AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
-+  [AC_TRY_COMPILE(
-+    [#include <sys/types.h>
-+#include <inttypes.h>],
-+    [uintmax_t i = (uintmax_t) -1;],
-+    jm_ac_cv_header_inttypes_h=yes,
-+    jm_ac_cv_header_inttypes_h=no)])
-+  if test $jm_ac_cv_header_inttypes_h = yes; then
-+    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
-+      [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
-+       and declares uintmax_t. ])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/inttypes_h.m4~ psmisc-20.2.works.clean/m4/inttypes_h.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/isc-posix.m4 psmisc-20.2.works.clean/m4/isc-posix.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/isc-posix.m4        1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/isc-posix.m4    2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,26 @@
-+# isc-posix.m4 serial 2 (gettext-0.11.2)
-+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+# This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
-+
-+# This test replaces the one in autoconf.
-+# Currently this macro should have the same name as the autoconf macro
-+# because gettext's gettext.m4 (distributed in the automake package)
-+# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
-+# give these diagnostics:
-+#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-+#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-+
-+undefine([AC_ISC_POSIX])
-+
-+AC_DEFUN([AC_ISC_POSIX],
-+  [
-+    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
-+    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
-+  ]
-+)
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/isc-posix.m4~ psmisc-20.2.works.clean/m4/isc-posix.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lcmessage.m4 psmisc-20.2.works.clean/m4/lcmessage.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lcmessage.m4        1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/lcmessage.m4    2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,32 @@
-+# lcmessage.m4 serial 3 (gettext-0.11.3)
-+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library General Public
-+dnl License but which still want to provide support for the GNU gettext
-+dnl functionality.
-+dnl Please note that the actual code of the GNU gettext library is covered
-+dnl by the GNU Library General Public License, and the rest of the GNU
-+dnl gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
-+
-+# Check whether LC_MESSAGES is available in <locale.h>.
-+
-+AC_DEFUN([AM_LC_MESSAGES],
-+[
-+  AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
-+    [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
-+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
-+  if test $am_cv_val_LC_MESSAGES = yes; then
-+    AC_DEFINE(HAVE_LC_MESSAGES, 1,
-+      [Define if your <locale.h> file defines LC_MESSAGES.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lcmessage.m4~ psmisc-20.2.works.clean/m4/lcmessage.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-ld.m4 psmisc-20.2.works.clean/m4/lib-ld.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-ld.m4   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/lib-ld.m4       2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,112 @@
-+# 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
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl Subroutines of libtool.m4,
-+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-+dnl with libtool.m4.
-+
-+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-+AC_DEFUN([AC_LIB_PROG_LD_GNU],
-+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-+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
-+])
-+
-+dnl From libtool-1.4. Sets the variable LD.
-+AC_DEFUN([AC_LIB_PROG_LD],
-+[AC_ARG_WITH(gnu-ld,
-+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
-+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-+AC_REQUIRE([AC_PROG_CC])dnl
-+AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+# Prepare PATH_SEPARATOR.
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+  echo "#! /bin/sh" >conf$$.sh
-+  echo  "exit 0"   >>conf$$.sh
-+  chmod +x conf$$.sh
-+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-+    PATH_SEPARATOR=';'
-+  else
-+    PATH_SEPARATOR=:
-+  fi
-+  rm -f conf$$.sh
-+fi
-+ac_prog=ld
-+if test "$GCC" = yes; then
-+  # Check if gcc -print-prog-name=ld gives a path.
-+  AC_MSG_CHECKING([for ld used by GCC])
-+  case $host in
-+  *-*-mingw*)
-+    # gcc leaves a trailing carriage return which upsets mingw
-+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-+  *)
-+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-+  esac
-+  case $ac_prog in
-+    # Accept absolute paths.
-+    [[\\/]* | [A-Za-z]:[\\/]*)]
-+      [re_direlt='/[^/][^/]*/\.\./']
-+      # Canonicalize the path of ld
-+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-+      ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-+      done
-+      test -z "$LD" && LD="$ac_prog"
-+      ;;
-+  "")
-+    # If it fails, then pretend we aren't using GCC.
-+    ac_prog=ld
-+    ;;
-+  *)
-+    # If it is relative, then search for the first ld in PATH.
-+    with_gnu_ld=unknown
-+    ;;
-+  esac
-+elif test "$with_gnu_ld" = yes; then
-+  AC_MSG_CHECKING([for GNU ld])
-+else
-+  AC_MSG_CHECKING([for non-GNU ld])
-+fi
-+AC_CACHE_VAL(acl_cv_path_LD,
-+[if test -z "$LD"; then
-+  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-+  for ac_dir in $PATH; do
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-+      acl_cv_path_LD="$ac_dir/$ac_prog"
-+      # Check to see if the program is GNU ld.  I'd rather use --version,
-+      # but apparently some GNU ld's only accept -v.
-+      # Break only if it was the GNU/non-GNU ld that we prefer.
-+      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"
-+else
-+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
-+fi])
-+LD="$acl_cv_path_LD"
-+if test -n "$LD"; then
-+  AC_MSG_RESULT($LD)
-+else
-+  AC_MSG_RESULT(no)
-+fi
-+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-+AC_LIB_PROG_LD_GNU
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-ld.m4~ psmisc-20.2.works.clean/m4/lib-ld.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-link.m4 psmisc-20.2.works.clean/m4/lib-link.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-link.m4 1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/lib-link.m4     2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,551 @@
-+# lib-link.m4 serial 4 (gettext-0.12)
-+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
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-+dnl the libraries corresponding to explicit and implicit dependencies.
-+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-+dnl augments the CPPFLAGS variable.
-+AC_DEFUN([AC_LIB_LINKFLAGS],
-+[
-+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+  AC_REQUIRE([AC_LIB_RPATH])
-+  define([Name],[translit([$1],[./-], [___])])
-+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
-+    AC_LIB_LINKFLAGS_BODY([$1], [$2])
-+    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
-+    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
-+    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
-+  ])
-+  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
-+  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
-+  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
-+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-+  AC_SUBST([LIB]NAME)
-+  AC_SUBST([LTLIB]NAME)
-+  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
-+  dnl results of this search when this library appears as a dependency.
-+  HAVE_LIB[]NAME=yes
-+  undefine([Name])
-+  undefine([NAME])
-+])
-+
-+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
-+dnl searches for libname and the libraries corresponding to explicit and
-+dnl implicit dependencies, together with the specified include files and
-+dnl the ability to compile and link the specified testcode. If found, it
-+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-+[
-+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+  AC_REQUIRE([AC_LIB_RPATH])
-+  define([Name],[translit([$1],[./-], [___])])
-+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+
-+  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
-+  dnl accordingly.
-+  AC_LIB_LINKFLAGS_BODY([$1], [$2])
-+
-+  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
-+  dnl because if the user has installed lib[]Name and not disabled its use
-+  dnl via --without-lib[]Name-prefix, he wants to use it.
-+  ac_save_CPPFLAGS="$CPPFLAGS"
-+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-+
-+  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
-+    ac_save_LIBS="$LIBS"
-+    LIBS="$LIBS $LIB[]NAME"
-+    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
-+    LIBS="$ac_save_LIBS"
-+  ])
-+  if test "$ac_cv_lib[]Name" = yes; then
-+    HAVE_LIB[]NAME=yes
-+    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
-+    AC_MSG_CHECKING([how to link with lib[]$1])
-+    AC_MSG_RESULT([$LIB[]NAME])
-+  else
-+    HAVE_LIB[]NAME=no
-+    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
-+    dnl $INC[]NAME either.
-+    CPPFLAGS="$ac_save_CPPFLAGS"
-+    LIB[]NAME=
-+    LTLIB[]NAME=
-+  fi
-+  AC_SUBST([HAVE_LIB]NAME)
-+  AC_SUBST([LIB]NAME)
-+  AC_SUBST([LTLIB]NAME)
-+  undefine([Name])
-+  undefine([NAME])
-+])
-+
-+dnl Determine the platform dependent parameters needed to use rpath:
-+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-+dnl hardcode_direct, hardcode_minus_L.
-+AC_DEFUN([AC_LIB_RPATH],
-+[
-+  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
-+  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
-+  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
-+  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
-+  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
-+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-+    . ./conftest.sh
-+    rm -f ./conftest.sh
-+    acl_cv_rpath=done
-+  ])
-+  wl="$acl_cv_wl"
-+  libext="$acl_cv_libext"
-+  shlibext="$acl_cv_shlibext"
-+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-+  hardcode_direct="$acl_cv_hardcode_direct"
-+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
-+  dnl Determine whether the user wants rpath handling at all.
-+  AC_ARG_ENABLE(rpath,
-+    [  --disable-rpath         do not hardcode runtime library paths],
-+    :, enable_rpath=yes)
-+])
-+
-+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-+dnl the libraries corresponding to explicit and implicit dependencies.
-+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-+[
-+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+  dnl By default, look in $includedir and $libdir.
-+  use_additional=yes
-+  AC_LIB_WITH_FINAL_PREFIX([
-+    eval additional_includedir=\"$includedir\"
-+    eval additional_libdir=\"$libdir\"
-+  ])
-+  AC_LIB_ARG_WITH([lib$1-prefix],
-+[  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
-+  --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
-+[
-+    if test "X$withval" = "Xno"; then
-+      use_additional=no
-+    else
-+      if test "X$withval" = "X"; then
-+        AC_LIB_WITH_FINAL_PREFIX([
-+          eval additional_includedir=\"$includedir\"
-+          eval additional_libdir=\"$libdir\"
-+        ])
-+      else
-+        additional_includedir="$withval/include"
-+        additional_libdir="$withval/lib"
-+      fi
-+    fi
-+])
-+  dnl Search the library and its dependencies in $additional_libdir and
-+  dnl $LDFLAGS. Using breadth-first-seach.
-+  LIB[]NAME=
-+  LTLIB[]NAME=
-+  INC[]NAME=
-+  rpathdirs=
-+  ltrpathdirs=
-+  names_already_handled=
-+  names_next_round='$1 $2'
-+  while test -n "$names_next_round"; do
-+    names_this_round="$names_next_round"
-+    names_next_round=
-+    for name in $names_this_round; do
-+      already_handled=
-+      for n in $names_already_handled; do
-+        if test "$n" = "$name"; then
-+          already_handled=yes
-+          break
-+        fi
-+      done
-+      if test -z "$already_handled"; then
-+        names_already_handled="$names_already_handled $name"
-+        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
-+        dnl or AC_LIB_HAVE_LINKFLAGS call.
-+        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-+        eval value=\"\$HAVE_LIB$uppername\"
-+        if test -n "$value"; then
-+          if test "$value" = yes; then
-+            eval value=\"\$LIB$uppername\"
-+            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
-+            eval value=\"\$LTLIB$uppername\"
-+            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
-+          else
-+            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
-+            dnl that this library doesn't exist. So just drop it.
-+            :
-+          fi
-+        else
-+          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
-+          dnl and the already constructed $LIBNAME/$LTLIBNAME.
-+          found_dir=
-+          found_la=
-+          found_so=
-+          found_a=
-+          if test $use_additional = yes; then
-+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
-+              found_dir="$additional_libdir"
-+              found_so="$additional_libdir/lib$name.$shlibext"
-+              if test -f "$additional_libdir/lib$name.la"; then
-+                found_la="$additional_libdir/lib$name.la"
-+              fi
-+            else
-+              if test -f "$additional_libdir/lib$name.$libext"; then
-+                found_dir="$additional_libdir"
-+                found_a="$additional_libdir/lib$name.$libext"
-+                if test -f "$additional_libdir/lib$name.la"; then
-+                  found_la="$additional_libdir/lib$name.la"
-+                fi
-+              fi
-+            fi
-+          fi
-+          if test "X$found_dir" = "X"; then
-+            for x in $LDFLAGS $LTLIB[]NAME; do
-+              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+              case "$x" in
-+                -L*)
-+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
-+                    found_dir="$dir"
-+                    found_so="$dir/lib$name.$shlibext"
-+                    if test -f "$dir/lib$name.la"; then
-+                      found_la="$dir/lib$name.la"
-+                    fi
-+                  else
-+                    if test -f "$dir/lib$name.$libext"; then
-+                      found_dir="$dir"
-+                      found_a="$dir/lib$name.$libext"
-+                      if test -f "$dir/lib$name.la"; then
-+                        found_la="$dir/lib$name.la"
-+                      fi
-+                    fi
-+                  fi
-+                  ;;
-+              esac
-+              if test "X$found_dir" != "X"; then
-+                break
-+              fi
-+            done
-+          fi
-+          if test "X$found_dir" != "X"; then
-+            dnl Found the library.
-+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
-+            if test "X$found_so" != "X"; then
-+              dnl Linking with a shared library. We attempt to hardcode its
-+              dnl directory into the executable's runpath, unless it's the
-+              dnl standard /usr/lib.
-+              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
-+                dnl No hardcoding is needed.
-+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+              else
-+                dnl Use an explicit option to hardcode DIR into the resulting
-+                dnl binary.
-+                dnl Potentially add DIR to ltrpathdirs.
-+                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-+                haveit=
-+                for x in $ltrpathdirs; do
-+                  if test "X$x" = "X$found_dir"; then
-+                    haveit=yes
-+                    break
-+                  fi
-+                done
-+                if test -z "$haveit"; then
-+                  ltrpathdirs="$ltrpathdirs $found_dir"
-+                fi
-+                dnl The hardcoding into $LIBNAME is system dependent.
-+                if test "$hardcode_direct" = yes; then
-+                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
-+                  dnl resulting binary.
-+                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+                else
-+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
-+                    dnl Use an explicit option to hardcode DIR into the resulting
-+                    dnl binary.
-+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+                    dnl Potentially add DIR to rpathdirs.
-+                    dnl The rpathdirs will be appended to $LIBNAME at the end.
-+                    haveit=
-+                    for x in $rpathdirs; do
-+                      if test "X$x" = "X$found_dir"; then
-+                        haveit=yes
-+                        break
-+                      fi
-+                    done
-+                    if test -z "$haveit"; then
-+                      rpathdirs="$rpathdirs $found_dir"
-+                    fi
-+                  else
-+                    dnl Rely on "-L$found_dir".
-+                    dnl But don't add it if it's already contained in the LDFLAGS
-+                    dnl or the already constructed $LIBNAME
-+                    haveit=
-+                    for x in $LDFLAGS $LIB[]NAME; do
-+                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+                      if test "X$x" = "X-L$found_dir"; then
-+                        haveit=yes
-+                        break
-+                      fi
-+                    done
-+                    if test -z "$haveit"; then
-+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
-+                    fi
-+                    if test "$hardcode_minus_L" != no; then
-+                      dnl FIXME: Not sure whether we should use
-+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-+                      dnl here.
-+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+                    else
-+                      dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
-+                      dnl here, because this doesn't fit in flags passed to the
-+                      dnl compiler. So give up. No hardcoding. This affects only
-+                      dnl very old systems.
-+                      dnl FIXME: Not sure whether we should use
-+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-+                      dnl here.
-+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-+                    fi
-+                  fi
-+                fi
-+              fi
-+            else
-+              if test "X$found_a" != "X"; then
-+                dnl Linking with a static library.
-+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
-+              else
-+                dnl We shouldn't come here, but anyway it's good to have a
-+                dnl fallback.
-+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
-+              fi
-+            fi
-+            dnl Assume the include files are nearby.
-+            additional_includedir=
-+            case "$found_dir" in
-+              */lib | */lib/)
-+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
-+                additional_includedir="$basedir/include"
-+                ;;
-+            esac
-+            if test "X$additional_includedir" != "X"; then
-+              dnl Potentially add $additional_includedir to $INCNAME.
-+              dnl But don't add it
-+              dnl   1. if it's the standard /usr/include,
-+              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
-+              dnl   3. if it's already present in $CPPFLAGS or the already
-+              dnl      constructed $INCNAME,
-+              dnl   4. if it doesn't exist as a directory.
-+              if test "X$additional_includedir" != "X/usr/include"; then
-+                haveit=
-+                if test "X$additional_includedir" = "X/usr/local/include"; then
-+                  if test -n "$GCC"; then
-+                    case $host_os in
-+                      linux*) haveit=yes;;
-+                    esac
-+                  fi
-+                fi
-+                if test -z "$haveit"; then
-+                  for x in $CPPFLAGS $INC[]NAME; do
-+                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+                    if test "X$x" = "X-I$additional_includedir"; then
-+                      haveit=yes
-+                      break
-+                    fi
-+                  done
-+                  if test -z "$haveit"; then
-+                    if test -d "$additional_includedir"; then
-+                      dnl Really add $additional_includedir to $INCNAME.
-+                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
-+                    fi
-+                  fi
-+                fi
-+              fi
-+            fi
-+            dnl Look for dependencies.
-+            if test -n "$found_la"; then
-+              dnl Read the .la file. It defines the variables
-+              dnl dlname, library_names, old_library, dependency_libs, current,
-+              dnl age, revision, installed, dlopen, dlpreopen, libdir.
-+              save_libdir="$libdir"
-+              case "$found_la" in
-+                */* | *\\*) . "$found_la" ;;
-+                *) . "./$found_la" ;;
-+              esac
-+              libdir="$save_libdir"
-+              dnl We use only dependency_libs.
-+              for dep in $dependency_libs; do
-+                case "$dep" in
-+                  -L*)
-+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-+                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
-+                    dnl But don't add it
-+                    dnl   1. if it's the standard /usr/lib,
-+                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
-+                    dnl   3. if it's already present in $LDFLAGS or the already
-+                    dnl      constructed $LIBNAME,
-+                    dnl   4. if it doesn't exist as a directory.
-+                    if test "X$additional_libdir" != "X/usr/lib"; then
-+                      haveit=
-+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
-+                        if test -n "$GCC"; then
-+                          case $host_os in
-+                            linux*) haveit=yes;;
-+                          esac
-+                        fi
-+                      fi
-+                      if test -z "$haveit"; then
-+                        haveit=
-+                        for x in $LDFLAGS $LIB[]NAME; do
-+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+                          if test "X$x" = "X-L$additional_libdir"; then
-+                            haveit=yes
-+                            break
-+                          fi
-+                        done
-+                        if test -z "$haveit"; then
-+                          if test -d "$additional_libdir"; then
-+                            dnl Really add $additional_libdir to $LIBNAME.
-+                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
-+                          fi
-+                        fi
-+                        haveit=
-+                        for x in $LDFLAGS $LTLIB[]NAME; do
-+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+                          if test "X$x" = "X-L$additional_libdir"; then
-+                            haveit=yes
-+                            break
-+                          fi
-+                        done
-+                        if test -z "$haveit"; then
-+                          if test -d "$additional_libdir"; then
-+                            dnl Really add $additional_libdir to $LTLIBNAME.
-+                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
-+                          fi
-+                        fi
-+                      fi
-+                    fi
-+                    ;;
-+                  -R*)
-+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-+                    if test "$enable_rpath" != no; then
-+                      dnl Potentially add DIR to rpathdirs.
-+                      dnl The rpathdirs will be appended to $LIBNAME at the end.
-+                      haveit=
-+                      for x in $rpathdirs; do
-+                        if test "X$x" = "X$dir"; then
-+                          haveit=yes
-+                          break
-+                        fi
-+                      done
-+                      if test -z "$haveit"; then
-+                        rpathdirs="$rpathdirs $dir"
-+                      fi
-+                      dnl Potentially add DIR to ltrpathdirs.
-+                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-+                      haveit=
-+                      for x in $ltrpathdirs; do
-+                        if test "X$x" = "X$dir"; then
-+                          haveit=yes
-+                          break
-+                        fi
-+                      done
-+                      if test -z "$haveit"; then
-+                        ltrpathdirs="$ltrpathdirs $dir"
-+                      fi
-+                    fi
-+                    ;;
-+                  -l*)
-+                    dnl Handle this in the next round.
-+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-+                    ;;
-+                  *.la)
-+                    dnl Handle this in the next round. Throw away the .la's
-+                    dnl directory; it is already contained in a preceding -L
-+                    dnl option.
-+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-+                    ;;
-+                  *)
-+                    dnl Most likely an immediate library name.
-+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
-+                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
-+                    ;;
-+                esac
-+              done
-+            fi
-+          else
-+            dnl Didn't find the library; assume it is in the system directories
-+            dnl known to the linker and runtime loader. (All the system
-+            dnl directories known to the linker should also be known to the
-+            dnl runtime loader, otherwise the system is severely misconfigured.)
-+            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
-+          fi
-+        fi
-+      fi
-+    done
-+  done
-+  if test "X$rpathdirs" != "X"; then
-+    if test -n "$hardcode_libdir_separator"; then
-+      dnl Weird platform: only the last -rpath option counts, the user must
-+      dnl pass all path elements in one option. We can arrange that for a
-+      dnl single library, but not when more than one $LIBNAMEs are used.
-+      alldirs=
-+      for found_dir in $rpathdirs; do
-+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
-+      done
-+      dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
-+      acl_save_libdir="$libdir"
-+      libdir="$alldirs"
-+      eval flag=\"$hardcode_libdir_flag_spec\"
-+      libdir="$acl_save_libdir"
-+      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-+    else
-+      dnl The -rpath options are cumulative.
-+      for found_dir in $rpathdirs; do
-+        acl_save_libdir="$libdir"
-+        libdir="$found_dir"
-+        eval flag=\"$hardcode_libdir_flag_spec\"
-+        libdir="$acl_save_libdir"
-+        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-+      done
-+    fi
-+  fi
-+  if test "X$ltrpathdirs" != "X"; then
-+    dnl When using libtool, the option that works for both libraries and
-+    dnl executables is -R. The -R options are cumulative.
-+    for found_dir in $ltrpathdirs; do
-+      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
-+    done
-+  fi
-+])
-+
-+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-+dnl unless already present in VAR.
-+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-+dnl contains two or three consecutive elements that belong together.
-+AC_DEFUN([AC_LIB_APPENDTOVAR],
-+[
-+  for element in [$2]; do
-+    haveit=
-+    for x in $[$1]; do
-+      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+      if test "X$x" = "X$element"; then
-+        haveit=yes
-+        break
-+      fi
-+    done
-+    if test -z "$haveit"; then
-+      [$1]="${[$1]}${[$1]:+ }$element"
-+    fi
-+  done
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-link.m4~ psmisc-20.2.works.clean/m4/lib-link.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-prefix.m4 psmisc-20.2.works.clean/m4/lib-prefix.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-prefix.m4       1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/lib-prefix.m4   2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,155 @@
-+# 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
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-+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])])])
-+
-+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-+dnl to access previously installed libraries. The basic assumption is that
-+dnl a user will want packages to use other packages he previously installed
-+dnl with the same --prefix option.
-+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-+dnl libraries, but is otherwise very convenient.
-+AC_DEFUN([AC_LIB_PREFIX],
-+[
-+  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
-+  AC_REQUIRE([AC_PROG_CC])
-+  AC_REQUIRE([AC_CANONICAL_HOST])
-+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+  dnl By default, look in $includedir and $libdir.
-+  use_additional=yes
-+  AC_LIB_WITH_FINAL_PREFIX([
-+    eval additional_includedir=\"$includedir\"
-+    eval additional_libdir=\"$libdir\"
-+  ])
-+  AC_LIB_ARG_WITH([lib-prefix],
-+[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
-+  --without-lib-prefix    don't search for libraries in includedir and libdir],
-+[
-+    if test "X$withval" = "Xno"; then
-+      use_additional=no
-+    else
-+      if test "X$withval" = "X"; then
-+        AC_LIB_WITH_FINAL_PREFIX([
-+          eval additional_includedir=\"$includedir\"
-+          eval additional_libdir=\"$libdir\"
-+        ])
-+      else
-+        additional_includedir="$withval/include"
-+        additional_libdir="$withval/lib"
-+      fi
-+    fi
-+])
-+  if test $use_additional = yes; then
-+    dnl Potentially add $additional_includedir to $CPPFLAGS.
-+    dnl But don't add it
-+    dnl   1. if it's the standard /usr/include,
-+    dnl   2. if it's already present in $CPPFLAGS,
-+    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
-+    dnl   4. if it doesn't exist as a directory.
-+    if test "X$additional_includedir" != "X/usr/include"; then
-+      haveit=
-+      for x in $CPPFLAGS; do
-+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+        if test "X$x" = "X-I$additional_includedir"; then
-+          haveit=yes
-+          break
-+        fi
-+      done
-+      if test -z "$haveit"; then
-+        if test "X$additional_includedir" = "X/usr/local/include"; then
-+          if test -n "$GCC"; then
-+            case $host_os in
-+              linux*) haveit=yes;;
-+            esac
-+          fi
-+        fi
-+        if test -z "$haveit"; then
-+          if test -d "$additional_includedir"; then
-+            dnl Really add $additional_includedir to $CPPFLAGS.
-+            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
-+          fi
-+        fi
-+      fi
-+    fi
-+    dnl Potentially add $additional_libdir to $LDFLAGS.
-+    dnl But don't add it
-+    dnl   1. if it's the standard /usr/lib,
-+    dnl   2. if it's already present in $LDFLAGS,
-+    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
-+    dnl   4. if it doesn't exist as a directory.
-+    if test "X$additional_libdir" != "X/usr/lib"; then
-+      haveit=
-+      for x in $LDFLAGS; do
-+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+        if test "X$x" = "X-L$additional_libdir"; then
-+          haveit=yes
-+          break
-+        fi
-+      done
-+      if test -z "$haveit"; then
-+        if test "X$additional_libdir" = "X/usr/local/lib"; then
-+          if test -n "$GCC"; then
-+            case $host_os in
-+              linux*) haveit=yes;;
-+            esac
-+          fi
-+        fi
-+        if test -z "$haveit"; then
-+          if test -d "$additional_libdir"; then
-+            dnl Really add $additional_libdir to $LDFLAGS.
-+            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
-+          fi
-+        fi
-+      fi
-+    fi
-+  fi
-+])
-+
-+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-+dnl acl_final_exec_prefix, containing the values to which $prefix and
-+dnl $exec_prefix will expand at the end of the configure script.
-+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-+[
-+  dnl Unfortunately, prefix and exec_prefix get only finally determined
-+  dnl at the end of configure.
-+  if test "X$prefix" = "XNONE"; then
-+    acl_final_prefix="$ac_default_prefix"
-+  else
-+    acl_final_prefix="$prefix"
-+  fi
-+  if test "X$exec_prefix" = "XNONE"; then
-+    acl_final_exec_prefix='${prefix}'
-+  else
-+    acl_final_exec_prefix="$exec_prefix"
-+  fi
-+  acl_save_prefix="$prefix"
-+  prefix="$acl_final_prefix"
-+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-+  prefix="$acl_save_prefix"
-+])
-+
-+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-+dnl variables prefix and exec_prefix bound to the values they will have
-+dnl at the end of the configure script.
-+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-+[
-+  acl_save_prefix="$prefix"
-+  prefix="$acl_final_prefix"
-+  acl_save_exec_prefix="$exec_prefix"
-+  exec_prefix="$acl_final_exec_prefix"
-+  $1
-+  exec_prefix="$acl_save_exec_prefix"
-+  prefix="$acl_save_prefix"
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/lib-prefix.m4~ psmisc-20.2.works.clean/m4/lib-prefix.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/longdouble.m4 psmisc-20.2.works.clean/m4/longdouble.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/longdouble.m4       1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/longdouble.m4   2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,30 @@
-+# longdouble.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether the compiler supports the 'long double' type.
-+dnl Prerequisite: AC_PROG_CC
-+
-+AC_DEFUN([gt_TYPE_LONGDOUBLE],
-+[
-+  AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
-+    [if test "$GCC" = yes; then
-+       gt_cv_c_long_double=yes
-+     else
-+       AC_TRY_COMPILE([
-+         /* The Stardent Vistra knows sizeof(long double), but does not support it.  */
-+         long double foo = 0.0;
-+         /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
-+         int array [2*(sizeof(long double) >= sizeof(double)) - 1];
-+         ], ,
-+         gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
-+     fi])
-+  if test $gt_cv_c_long_double = yes; then
-+    AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/longdouble.m4~ psmisc-20.2.works.clean/m4/longdouble.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/longlong.m4 psmisc-20.2.works.clean/m4/longlong.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/longlong.m4 1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/longlong.m4     2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,25 @@
-+# longlong.m4 serial 4
-+dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_LONG_LONG if 'long long' works.
-+
-+AC_DEFUN([jm_AC_TYPE_LONG_LONG],
-+[
-+  AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
-+  [AC_TRY_LINK([long long ll = 1LL; int i = 63;],
-+    [long long llmax = (long long) -1;
-+     return ll << i | ll >> i | llmax / ll | llmax % ll;],
-+    ac_cv_type_long_long=yes,
-+    ac_cv_type_long_long=no)])
-+  if test $ac_cv_type_long_long = yes; then
-+    AC_DEFINE(HAVE_LONG_LONG, 1,
-+      [Define if you have the 'long long' type.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/longlong.m4~ psmisc-20.2.works.clean/m4/longlong.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/nls.m4 psmisc-20.2.works.clean/m4/nls.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/nls.m4      1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/nls.m4  2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,49 @@
-+# nls.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library General Public
-+dnl License but which still want to provide support for the GNU gettext
-+dnl functionality.
-+dnl Please note that the actual code of the GNU gettext library is covered
-+dnl by the GNU Library General Public License, and the rest of the GNU
-+dnl gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-+
-+AC_DEFUN([AM_NLS],
-+[
-+  AC_MSG_CHECKING([whether NLS is requested])
-+  dnl Default is enabled NLS
-+  AC_ARG_ENABLE(nls,
-+    [  --disable-nls           do not use Native Language Support],
-+    USE_NLS=$enableval, USE_NLS=yes)
-+  AC_MSG_RESULT($USE_NLS)
-+  AC_SUBST(USE_NLS)
-+])
-+
-+AC_DEFUN([AM_MKINSTALLDIRS],
-+[
-+  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-+  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
-+  dnl Try to locate it.
-+  MKINSTALLDIRS=
-+  if test -n "$ac_aux_dir"; then
-+    case "$ac_aux_dir" in
-+      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
-+      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
-+    esac
-+  fi
-+  if test -z "$MKINSTALLDIRS"; then
-+    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-+  fi
-+  AC_SUBST(MKINSTALLDIRS)
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/nls.m4~ psmisc-20.2.works.clean/m4/nls.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/po.m4 psmisc-20.2.works.clean/m4/po.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/po.m4       1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/po.m4   2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,426 @@
-+# po.m4 serial 3 (gettext-0.14)
-+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library General Public
-+dnl License but which still want to provide support for the GNU gettext
-+dnl functionality.
-+dnl Please note that the actual code of the GNU gettext library is covered
-+dnl by the GNU Library General Public License, and the rest of the GNU
-+dnl gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-+
-+dnl Checks for all prerequisites of the po subdirectory.
-+AC_DEFUN([AM_PO_SUBDIRS],
-+[
-+  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-+  AC_REQUIRE([AC_PROG_INSTALL])dnl
-+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-+  AC_REQUIRE([AM_NLS])dnl
-+
-+  dnl Perform the following tests also if --disable-nls has been given,
-+  dnl because they are needed for "make dist" to work.
-+
-+  dnl Search for GNU msgfmt in the PATH.
-+  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
-+  dnl The second test excludes FreeBSD msgfmt.
-+  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-+    [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
-+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-+    :)
-+  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-+
-+  dnl Search for GNU xgettext 0.12 or newer in the PATH.
-+  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
-+  dnl The second test excludes FreeBSD xgettext.
-+  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-+    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
-+     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-+    :)
-+  dnl Remove leftover from FreeBSD xgettext call.
-+  rm -f messages.po
-+
-+  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
-+  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
-+    [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
-+
-+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-+  dnl Test whether we really found GNU msgfmt.
-+  if test "$GMSGFMT" != ":"; then
-+    dnl If it is no GNU msgfmt we define it as : so that the
-+    dnl Makefiles still can work.
-+    if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
-+       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-+      : ;
-+    else
-+      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
-+      AC_MSG_RESULT(
-+        [found $GMSGFMT program is not GNU msgfmt; ignore it])
-+      GMSGFMT=":"
-+    fi
-+  fi
-+
-+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-+  dnl Test whether we really found GNU xgettext.
-+  if test "$XGETTEXT" != ":"; then
-+    dnl If it is no GNU xgettext we define it as : so that the
-+    dnl Makefiles still can work.
-+    if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
-+       (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-+      : ;
-+    else
-+      AC_MSG_RESULT(
-+        [found xgettext program is not GNU xgettext; ignore it])
-+      XGETTEXT=":"
-+    fi
-+    dnl Remove leftover from FreeBSD xgettext call.
-+    rm -f messages.po
-+  fi
-+
-+  AC_OUTPUT_COMMANDS([
-+    for ac_file in $CONFIG_FILES; do
-+      # Support "outfile[:infile[:infile...]]"
-+      case "$ac_file" in
-+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-+      esac
-+      # PO directories have a Makefile.in generated from Makefile.in.in.
-+      case "$ac_file" in */Makefile.in)
-+        # Adjust a relative srcdir.
-+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-+        # In autoconf-2.13 it is called $ac_given_srcdir.
-+        # In autoconf-2.50 it is called $srcdir.
-+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-+        case "$ac_given_srcdir" in
-+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-+          /*) top_srcdir="$ac_given_srcdir" ;;
-+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-+        esac
-+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
-+          rm -f "$ac_dir/POTFILES"
-+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[         ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
-+          POMAKEFILEDEPS="POTFILES.in"
-+          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
-+          # on $ac_dir but don't depend on user-specified configuration
-+          # parameters.
-+          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
-+            # The LINGUAS file contains the set of available languages.
-+            if test -n "$OBSOLETE_ALL_LINGUAS"; then
-+              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
-+            fi
-+            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-+            # Hide the ALL_LINGUAS assigment from automake.
-+            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
-+            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
-+          else
-+            # The set of available languages was given in configure.in.
-+            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
-+          fi
-+          # Compute POFILES
-+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
-+          # Compute UPDATEPOFILES
-+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
-+          # Compute DUMMYPOFILES
-+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
-+          # Compute GMOFILES
-+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
-+          case "$ac_given_srcdir" in
-+            .) srcdirpre= ;;
-+            *) srcdirpre='$(srcdir)/' ;;
-+          esac
-+          POFILES=
-+          UPDATEPOFILES=
-+          DUMMYPOFILES=
-+          GMOFILES=
-+          for lang in $ALL_LINGUAS; do
-+            POFILES="$POFILES $srcdirpre$lang.po"
-+            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-+            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-+          done
-+          # CATALOGS depends on both $ac_dir and the user's LINGUAS
-+          # environment variable.
-+          INST_LINGUAS=
-+          if test -n "$ALL_LINGUAS"; then
-+            for presentlang in $ALL_LINGUAS; do
-+              useit=no
-+              if test "%UNSET%" != "$LINGUAS"; then
-+                desiredlanguages="$LINGUAS"
-+              else
-+                desiredlanguages="$ALL_LINGUAS"
-+              fi
-+              for desiredlang in $desiredlanguages; do
-+                # Use the presentlang catalog if desiredlang is
-+                #   a. equal to presentlang, or
-+                #   b. a variant of presentlang (because in this case,
-+                #      presentlang can be used as a fallback for messages
-+                #      which are not translated in the desiredlang catalog).
-+                case "$desiredlang" in
-+                  "$presentlang"*) useit=yes;;
-+                esac
-+              done
-+              if test $useit = yes; then
-+                INST_LINGUAS="$INST_LINGUAS $presentlang"
-+              fi
-+            done
-+          fi
-+          CATALOGS=
-+          if test -n "$INST_LINGUAS"; then
-+            for lang in $INST_LINGUAS; do
-+              CATALOGS="$CATALOGS $lang.gmo"
-+            done
-+          fi
-+          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
-+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
-+          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
-+            if test -f "$f"; then
-+              case "$f" in
-+                *.orig | *.bak | *~) ;;
-+                *) cat "$f" >> "$ac_dir/Makefile" ;;
-+              esac
-+            fi
-+          done
-+        fi
-+        ;;
-+      esac
-+    done],
-+   [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
-+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
-+    # from automake.
-+    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
-+    # Capture the value of LINGUAS because we need it to compute CATALOGS.
-+    LINGUAS="${LINGUAS-%UNSET%}"
-+   ])
-+])
-+
-+dnl Postprocesses a Makefile in a directory containing PO files.
-+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
-+[
-+  # When this code is run, in config.status, two variables have already been
-+  # set:
-+  # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
-+  # - LINGUAS is the value of the environment variable LINGUAS at configure
-+  #   time.
-+
-+changequote(,)dnl
-+  # Adjust a relative srcdir.
-+  ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-+  ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-+  ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-+  # In autoconf-2.13 it is called $ac_given_srcdir.
-+  # In autoconf-2.50 it is called $srcdir.
-+  test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-+  case "$ac_given_srcdir" in
-+    .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-+    /*) top_srcdir="$ac_given_srcdir" ;;
-+    *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-+  esac
-+
-+  # Find a way to echo strings without interpreting backslash.
-+  if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
-+    gt_echo='echo'
-+  else
-+    if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
-+      gt_echo='printf %s\n'
-+    else
-+      echo_func () {
-+        cat <<EOT
-+$*
-+EOT
-+      }
-+      gt_echo='echo_func'
-+    fi
-+  fi
-+
-+  # A sed script that extracts the value of VARIABLE from a Makefile.
-+  sed_x_variable='
-+# Test if the hold space is empty.
-+x
-+s/P/P/
-+x
-+ta
-+# Yes it was empty. Look if we have the expected variable definition.
-+/^[    ]*VARIABLE[     ]*=/{
-+  # Seen the first line of the variable definition.
-+  s/^[         ]*VARIABLE[     ]*=//
-+  ba
-+}
-+bd
-+:a
-+# Here we are processing a line from the variable definition.
-+# Remove comment, more precisely replace it with a space.
-+s/#.*$/ /
-+# See if the line ends in a backslash.
-+tb
-+:b
-+s/\\$//
-+# Print the line, without the trailing backslash.
-+p
-+tc
-+# There was no trailing backslash. The end of the variable definition is
-+# reached. Clear the hold space.
-+s/^.*$//
-+x
-+bd
-+:c
-+# A trailing backslash means that the variable definition continues in the
-+# next line. Put a nonempty string into the hold space to indicate this.
-+s/^.*$/P/
-+x
-+:d
-+'
-+changequote([,])dnl
-+
-+  # Set POTFILES to the value of the Makefile variable POTFILES.
-+  sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
-+  POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
-+  # Compute POTFILES_DEPS as
-+  #   $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
-+  POTFILES_DEPS=
-+  for file in $POTFILES; do
-+    POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
-+  done
-+  POMAKEFILEDEPS=""
-+
-+  if test -n "$OBSOLETE_ALL_LINGUAS"; then
-+    test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
-+  fi
-+  if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
-+    # The LINGUAS file contains the set of available languages.
-+    ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-+    POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
-+  else
-+    # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
-+    sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
-+    ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
-+  fi
-+  # Hide the ALL_LINGUAS assigment from automake.
-+  eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
-+  # Compute POFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
-+  # Compute UPDATEPOFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
-+  # Compute DUMMYPOFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
-+  # Compute GMOFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
-+  # Compute PROPERTIESFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
-+  # Compute CLASSFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
-+  # Compute QMFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
-+  # Compute MSGFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
-+  # Compute RESOURCESDLLFILES
-+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
-+  case "$ac_given_srcdir" in
-+    .) srcdirpre= ;;
-+    *) srcdirpre='$(srcdir)/' ;;
-+  esac
-+  POFILES=
-+  UPDATEPOFILES=
-+  DUMMYPOFILES=
-+  GMOFILES=
-+  PROPERTIESFILES=
-+  CLASSFILES=
-+  QMFILES=
-+  MSGFILES=
-+  RESOURCESDLLFILES=
-+  for lang in $ALL_LINGUAS; do
-+    POFILES="$POFILES $srcdirpre$lang.po"
-+    UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-+    DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-+    GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-+    PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
-+    CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
-+    QMFILES="$QMFILES $srcdirpre$lang.qm"
-+    frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-+    MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
-+    frobbedlang=`echo $lang | sed -e 's/_/-/g'`
-+    RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
-+  done
-+  # CATALOGS depends on both $ac_dir and the user's LINGUAS
-+  # environment variable.
-+  INST_LINGUAS=
-+  if test -n "$ALL_LINGUAS"; then
-+    for presentlang in $ALL_LINGUAS; do
-+      useit=no
-+      if test "%UNSET%" != "$LINGUAS"; then
-+        desiredlanguages="$LINGUAS"
-+      else
-+        desiredlanguages="$ALL_LINGUAS"
-+      fi
-+      for desiredlang in $desiredlanguages; do
-+        # Use the presentlang catalog if desiredlang is
-+        #   a. equal to presentlang, or
-+        #   b. a variant of presentlang (because in this case,
-+        #      presentlang can be used as a fallback for messages
-+        #      which are not translated in the desiredlang catalog).
-+        case "$desiredlang" in
-+          "$presentlang"*) useit=yes;;
-+        esac
-+      done
-+      if test $useit = yes; then
-+        INST_LINGUAS="$INST_LINGUAS $presentlang"
-+      fi
-+    done
-+  fi
-+  CATALOGS=
-+  JAVACATALOGS=
-+  QTCATALOGS=
-+  TCLCATALOGS=
-+  CSHARPCATALOGS=
-+  if test -n "$INST_LINGUAS"; then
-+    for lang in $INST_LINGUAS; do
-+      CATALOGS="$CATALOGS $lang.gmo"
-+      JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
-+      QTCATALOGS="$QTCATALOGS $lang.qm"
-+      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-+      TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
-+      frobbedlang=`echo $lang | sed -e 's/_/-/g'`
-+      CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
-+    done
-+  fi
-+
-+  sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
-+  if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
-+    # Add dependencies that cannot be formulated as a simple suffix rule.
-+    for lang in $ALL_LINGUAS; do
-+      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-+      cat >> "$ac_file.tmp" <<EOF
-+$frobbedlang.msg: $lang.po
-+      @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
-+      \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-+EOF
-+    done
-+  fi
-+  if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
-+    # Add dependencies that cannot be formulated as a simple suffix rule.
-+    for lang in $ALL_LINGUAS; do
-+      frobbedlang=`echo $lang | sed -e 's/_/-/g'`
-+      cat >> "$ac_file.tmp" <<EOF
-+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
-+      @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
-+      \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-+EOF
-+    done
-+  fi
-+  if test -n "$POMAKEFILEDEPS"; then
-+    cat >> "$ac_file.tmp" <<EOF
-+Makefile: $POMAKEFILEDEPS
-+EOF
-+  fi
-+  mv "$ac_file.tmp" "$ac_file"
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/po.m4~ psmisc-20.2.works.clean/m4/po.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/printf-posix.m4 psmisc-20.2.works.clean/m4/printf-posix.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/printf-posix.m4     1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/printf-posix.m4 2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,46 @@
-+# printf-posix.m4 serial 2 (gettext-0.13.1)
-+dnl Copyright (C) 2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether the printf() function supports POSIX/XSI format strings with
-+dnl positions.
-+
-+AC_DEFUN([gt_PRINTF_POSIX],
-+[
-+  AC_REQUIRE([AC_PROG_CC])
-+  AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
-+    gt_cv_func_printf_posix,
-+    [
-+      AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+/* The string "%2$d %1$d", with dollar characters protected from the shell's
-+   dollar expansion (possibly an autoconf bug).  */
-+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
-+static char buf[100];
-+int main ()
-+{
-+  sprintf (buf, format, 33, 55);
-+  return (strcmp (buf, "55 33") != 0);
-+}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
-+      [
-+        AC_EGREP_CPP(notposix, [
-+#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
-+  notposix
-+#endif
-+        ], gt_cv_func_printf_posix="guessing no",
-+           gt_cv_func_printf_posix="guessing yes")
-+      ])
-+    ])
-+  case $gt_cv_func_printf_posix in
-+    *yes)
-+      AC_DEFINE(HAVE_POSIX_PRINTF, 1,
-+        [Define if your printf() function supports format strings with positions.])
-+      ;;
-+  esac
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/printf-posix.m4~ psmisc-20.2.works.clean/m4/printf-posix.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/progtest.m4 psmisc-20.2.works.clean/m4/progtest.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/progtest.m4 1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/progtest.m4     2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,91 @@
-+# progtest.m4 serial 3 (gettext-0.12)
-+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
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library General Public
-+dnl License but which still want to provide support for the GNU gettext
-+dnl functionality.
-+dnl Please note that the actual code of the GNU gettext library is covered
-+dnl by the GNU Library General Public License, and the rest of the GNU
-+dnl gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
-+
-+# Search path for a program which passes the given test.
-+
-+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-+[
-+# Prepare PATH_SEPARATOR.
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+  echo "#! /bin/sh" >conf$$.sh
-+  echo  "exit 0"   >>conf$$.sh
-+  chmod +x conf$$.sh
-+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-+    PATH_SEPARATOR=';'
-+  else
-+    PATH_SEPARATOR=:
-+  fi
-+  rm -f conf$$.sh
-+fi
-+
-+# Find out how to test for executable files. Don't use a zero-byte file,
-+# as systems may use methods other than mode bits to determine executability.
-+cat >conf$$.file <<_ASEOF
-+#! /bin/sh
-+exit 0
-+_ASEOF
-+chmod +x conf$$.file
-+if test -x conf$$.file >/dev/null 2>&1; then
-+  ac_executable_p="test -x"
-+else
-+  ac_executable_p="test -f"
-+fi
-+rm -f conf$$.file
-+
-+# Extract the first word of "$2", so it can be a program name with args.
-+set dummy $2; ac_word=[$]2
-+AC_MSG_CHECKING([for $ac_word])
-+AC_CACHE_VAL(ac_cv_path_$1,
-+[case "[$]$1" in
-+  [[\\/]]* | ?:[[\\/]]*)
-+    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
-+    ;;
-+  *)
-+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-+    for ac_dir in ifelse([$5], , $PATH, [$5]); do
-+      IFS="$ac_save_IFS"
-+      test -z "$ac_dir" && ac_dir=.
-+      for ac_exec_ext in '' $ac_executable_extensions; do
-+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-+          if [$3]; then
-+            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
-+            break 2
-+          fi
-+        fi
-+      done
-+    done
-+    IFS="$ac_save_IFS"
-+dnl If no 4th arg is given, leave the cache variable unset,
-+dnl so AC_PATH_PROGS will keep looking.
-+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-+])dnl
-+    ;;
-+esac])dnl
-+$1="$ac_cv_path_$1"
-+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
-+  AC_MSG_RESULT([$]$1)
-+else
-+  AC_MSG_RESULT(no)
-+fi
-+AC_SUBST($1)dnl
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/progtest.m4~ psmisc-20.2.works.clean/m4/progtest.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/signed.m4 psmisc-20.2.works.clean/m4/signed.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/signed.m4   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/signed.m4       2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,19 @@
-+# signed.m4 serial 1 (gettext-0.10.40)
-+dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([bh_C_SIGNED],
-+[
-+  AC_CACHE_CHECK([for signed], bh_cv_c_signed,
-+   [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)])
-+  if test $bh_cv_c_signed = no; then
-+    AC_DEFINE(signed, ,
-+              [Define to empty if the C compiler doesn't support this keyword.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/signed.m4~ psmisc-20.2.works.clean/m4/signed.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/size_max.m4 psmisc-20.2.works.clean/m4/size_max.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/size_max.m4 1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/size_max.m4     2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,61 @@
-+# size_max.m4 serial 2
-+dnl Copyright (C) 2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([gl_SIZE_MAX],
-+[
-+  AC_CHECK_HEADERS(stdint.h)
-+  dnl First test whether the system already has SIZE_MAX.
-+  AC_MSG_CHECKING([for SIZE_MAX])
-+  result=
-+  AC_EGREP_CPP([Found it], [
-+#include <limits.h>
-+#if HAVE_STDINT_H
-+#include <stdint.h>
-+#endif
-+#ifdef SIZE_MAX
-+Found it
-+#endif
-+], result=yes)
-+  if test -z "$result"; then
-+    dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
-+    dnl than the type 'unsigned long'.
-+    dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr',
-+    dnl which is guaranteed to work from LONG_MIN to LONG_MAX.
-+    _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi,
-+      [#include <stddef.h>], result=?)
-+    _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo,
-+      [#include <stddef.h>], result=?)
-+    _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint,
-+      [#include <stddef.h>], result=?)
-+    if test "$fits_in_uint" = 1; then
-+      dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
-+      dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
-+      AC_TRY_COMPILE([#include <stddef.h>
-+        extern size_t foo;
-+        extern unsigned long foo;
-+        ], [], fits_in_uint=0)
-+    fi
-+    if test -z "$result"; then
-+      if test "$fits_in_uint" = 1; then
-+        result="$res_hi$res_lo"U
-+      else
-+        result="$res_hi$res_lo"UL
-+      fi
-+    else
-+      dnl Shouldn't happen, but who knows...
-+      result='~(size_t)0'
-+    fi
-+  fi
-+  AC_MSG_RESULT([$result])
-+  if test "$result" != yes; then
-+    AC_DEFINE_UNQUOTED([SIZE_MAX], [$result],
-+      [Define as the maximum value of type 'size_t', if the system doesn't define it.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/size_max.m4~ psmisc-20.2.works.clean/m4/size_max.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/stdint_h.m4 psmisc-20.2.works.clean/m4/stdint_h.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/stdint_h.m4 1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/stdint_h.m4     2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,28 @@
-+# stdint_h.m4 serial 3 (gettext-0.12)
-+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-+# doesn't clash with <sys/types.h>, and declares uintmax_t.
-+
-+AC_DEFUN([jm_AC_HEADER_STDINT_H],
-+[
-+  AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
-+  [AC_TRY_COMPILE(
-+    [#include <sys/types.h>
-+#include <stdint.h>],
-+    [uintmax_t i = (uintmax_t) -1;],
-+    jm_ac_cv_header_stdint_h=yes,
-+    jm_ac_cv_header_stdint_h=no)])
-+  if test $jm_ac_cv_header_stdint_h = yes; then
-+    AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
-+      [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
-+       and declares uintmax_t. ])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/stdint_h.m4~ psmisc-20.2.works.clean/m4/stdint_h.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/uintmax_t.m4 psmisc-20.2.works.clean/m4/uintmax_t.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/uintmax_t.m4        1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/uintmax_t.m4    2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,32 @@
-+# uintmax_t.m4 serial 7 (gettext-0.12)
-+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+AC_PREREQ(2.13)
-+
-+# Define uintmax_t to 'unsigned long' or 'unsigned long long'
-+# if it is not already defined in <stdint.h> or <inttypes.h>.
-+
-+AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-+[
-+  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
-+  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
-+  if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
-+    AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-+    test $ac_cv_type_unsigned_long_long = yes \
-+      && ac_type='unsigned long long' \
-+      || ac_type='unsigned long'
-+    AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
-+      [Define to unsigned long or unsigned long long
-+       if <stdint.h> and <inttypes.h> don't define.])
-+  else
-+    AC_DEFINE(HAVE_UINTMAX_T, 1,
-+      [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/uintmax_t.m4~ psmisc-20.2.works.clean/m4/uintmax_t.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/ulonglong.m4 psmisc-20.2.works.clean/m4/ulonglong.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/ulonglong.m4        1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/ulonglong.m4    2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,25 @@
-+# ulonglong.m4 serial 3
-+dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
-+
-+AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
-+[
-+  AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
-+  [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],
-+    [unsigned long long ullmax = (unsigned long long) -1;
-+     return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
-+    ac_cv_type_unsigned_long_long=yes,
-+    ac_cv_type_unsigned_long_long=no)])
-+  if test $ac_cv_type_unsigned_long_long = yes; then
-+    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
-+      [Define if you have the 'unsigned long long' type.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/ulonglong.m4~ psmisc-20.2.works.clean/m4/ulonglong.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/wchar_t.m4 psmisc-20.2.works.clean/m4/wchar_t.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/wchar_t.m4  1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/wchar_t.m4      2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,22 @@
-+# wchar_t.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether <stddef.h> has the 'wchar_t' type.
-+dnl Prerequisite: AC_PROG_CC
-+
-+AC_DEFUN([gt_TYPE_WCHAR_T],
-+[
-+  AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
-+    [AC_TRY_COMPILE([#include <stddef.h>
-+       wchar_t foo = (wchar_t)'\0';], ,
-+       gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
-+  if test $gt_cv_c_wchar_t = yes; then
-+    AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/wchar_t.m4~ psmisc-20.2.works.clean/m4/wchar_t.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/wint_t.m4 psmisc-20.2.works.clean/m4/wint_t.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/wint_t.m4   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/wint_t.m4       2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,22 @@
-+# wint_t.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether <wchar.h> has the 'wint_t' type.
-+dnl Prerequisite: AC_PROG_CC
-+
-+AC_DEFUN([gt_TYPE_WINT_T],
-+[
-+  AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
-+    [AC_TRY_COMPILE([#include <wchar.h>
-+       wint_t foo = (wchar_t)'\0';], ,
-+       gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
-+  if test $gt_cv_c_wint_t = yes; then
-+    AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
-+  fi
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/wint_t.m4~ psmisc-20.2.works.clean/m4/wint_t.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/xsize.m4 psmisc-20.2.works.clean/m4/xsize.m4
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/xsize.m4    1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/m4/xsize.m4        2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,14 @@
-+# xsize.m4 serial 2
-+dnl Copyright (C) 2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License.  As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+AC_DEFUN([gl_XSIZE],
-+[
-+  dnl Prerequisites of lib/xsize.h.
-+  AC_REQUIRE([gl_SIZE_MAX])
-+  AC_CHECK_HEADERS(stdint.h)
-+])
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/m4/xsize.m4~ psmisc-20.2.works.clean/m4/xsize.m4~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/missing psmisc-20.2.works.clean/missing
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/mkinstalldirs psmisc-20.2.works.clean/mkinstalldirs
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/Makefile.in.in psmisc-20.2.works.clean/po/Makefile.in.in
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/Makefile.in.in      2001-04-13 23:00:46.000000000 -0500
-+++ psmisc-20.2.works.clean/po/Makefile.in.in  2004-10-13 15:18:42.000000000 -0500
-@@ -1,10 +1,14 @@
--# Makefile for program source directory in GNU NLS utilities package.
--# Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-+# Makefile for PO directory in any package using GNU gettext.
-+# Copyright (C) 1995-1997, 2000-2004 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
- #
--# This file file be copied and used freely without restrictions.  It can
--# be used in projects which are not available under the GNU Public License
--# but which still want to provide support for the GNU gettext functionality.
--# Please note that the actual code is *not* freely available.
-+# This file can be copied and used freely without restrictions.  It can
-+# be used in projects which are not available under the GNU General Public
-+# License but which still want to provide support for the GNU gettext
-+# functionality.
-+# Please note that the actual code of GNU gettext is covered by the GNU
-+# General Public License and is *not* in the public domain.
-+#
-+# Origin: gettext-0.14
- PACKAGE = @PACKAGE@
- VERSION = @VERSION@
-@@ -14,88 +18,139 @@
- srcdir = @srcdir@
- top_srcdir = @top_srcdir@
--top_builddir = ..
- VPATH = @srcdir@
- prefix = @prefix@
- exec_prefix = @exec_prefix@
--datadir = $(prefix)/share
-+datadir = @datadir@
- localedir = $(datadir)/locale
--gettextsrcdir = $(prefix)/share/gettext/po
--subdir = po
-+gettextsrcdir = $(datadir)/gettext/po
- INSTALL = @INSTALL@
- INSTALL_DATA = @INSTALL_DATA@
- MKINSTALLDIRS = @MKINSTALLDIRS@
--mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
--CC = @CC@
--GENCAT = @GENCAT@
- GMSGFMT = @GMSGFMT@
- MSGFMT = @MSGFMT@
- XGETTEXT = @XGETTEXT@
- MSGMERGE = msgmerge
--
--DEFS = @DEFS@
--CFLAGS = @CFLAGS@
--CPPFLAGS = @CPPFLAGS@
--
--INCLUDES = -I.. -I$(top_srcdir)/intl
--
--COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-+MSGMERGE_UPDATE = @MSGMERGE@ --update
-+MSGINIT = msginit
-+MSGCONV = msgconv
-+MSGFILTER = msgfilter
- POFILES = @POFILES@
- GMOFILES = @GMOFILES@
--DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
--$(POFILES) $(GMOFILES)
-+UPDATEPOFILES = @UPDATEPOFILES@
-+DUMMYPOFILES = @DUMMYPOFILES@
-+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
-+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
-+$(POFILES) $(GMOFILES) \
-+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
- POTFILES = \
- CATALOGS = @CATALOGS@
--.SUFFIXES:
--.SUFFIXES: .c .o .po .pox .gmo .mo
--
--.c.o:
--      $(COMPILE) $<
-+# Makevars gets inserted here. (Don't remove this line!)
--.po.pox:
--      $(MAKE) $(PACKAGE).pot
--      $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
-+.SUFFIXES:
-+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
- .po.mo:
--      $(MSGFMT) -o $@ $<
-+      @echo "$(MSGFMT) -c -o $@ $<"; \
-+      $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
- .po.gmo:
--      file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
--        && rm -f $$file && $(GMSGFMT) --statistics -o $$file $<
-+      @lang=`echo $* | sed -e 's,.*/,,'`; \
-+      test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-+      echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
-+      cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
-+
-+.sin.sed:
-+      sed -e '/^#/d' $< > t-$@
-+      mv t-$@ $@
- all: all-@USE_NLS@
--all-yes: $(CATALOGS)
-+all-yes: stamp-po
- all-no:
--# Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot',
-+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
-+# been loosely updated. Its purpose is that when a developer or translator
-+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
-+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
-+# invocations of "make" will do nothing. This timestamp would not be necessary
-+# if updating the $(CATALOGS) would always touch them; however, the rule for
-+# $(POFILES) has been designed to not touch files that don't need to be
-+# changed.
-+stamp-po: $(srcdir)/$(DOMAIN).pot
-+      test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
-+      @echo "touch stamp-po"
-+      @echo timestamp > stamp-poT
-+      @mv stamp-poT stamp-po
-+
-+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
- # otherwise packages like GCC can not be built if only parts of the source
- # have been downloaded.
--$(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
--      $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
--        --add-comments --keyword=_ --keyword=N_ \
-+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
-+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
-+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
-+      $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
-+        --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
-         --files-from=$(srcdir)/POTFILES.in \
--      && test ! -f $(PACKAGE).po \
--         || ( rm -f $(srcdir)/$(PACKAGE).pot \
--              && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
-+        --copyright-holder='$(COPYRIGHT_HOLDER)' \
-+        --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
-+      test ! -f $(DOMAIN).po || { \
-+        if test -f $(srcdir)/$(DOMAIN).pot; then \
-+          sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
-+          sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
-+          if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
-+            rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
-+          else \
-+            rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
-+            mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
-+          fi; \
-+        else \
-+          mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
-+        fi; \
-+      }
-+
-+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
-+# every "make" invocation, only create it when it is missing.
-+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
-+$(srcdir)/$(DOMAIN).pot:
-+      $(MAKE) $(DOMAIN).pot-update
-+
-+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
-+# Note that a PO file is not touched if it doesn't need to be changed.
-+$(POFILES): $(srcdir)/$(DOMAIN).pot
-+      @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
-+      if test -f "$(srcdir)/$${lang}.po"; then \
-+        test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-+        echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
-+        cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
-+      else \
-+        $(MAKE) $${lang}.po-create; \
-+      fi
- install: install-exec install-data
- install-exec:
- install-data: install-data-@USE_NLS@
--      if test "$(PACKAGE)" = "gettext"; then \
-+      if test "$(PACKAGE)" = "gettext-tools"; then \
-         $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
--        $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
--                        $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
-+        for file in $(DISTFILES.common) Makevars.template; do \
-+          $(INSTALL_DATA) $(srcdir)/$$file \
-+                          $(DESTDIR)$(gettextsrcdir)/$$file; \
-+        done; \
-+        for file in Makevars; do \
-+          rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-+        done; \
-       else \
-         : ; \
-       fi
-@@ -105,41 +160,118 @@
-       @catalogs='$(CATALOGS)'; \
-       for cat in $$catalogs; do \
-         cat=`basename $$cat`; \
--        lang=`echo $$cat | sed 's/\.gmo$$//'`; \
-+        lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-         dir=$(localedir)/$$lang/LC_MESSAGES; \
-         $(mkinstalldirs) $(DESTDIR)$$dir; \
--        if test -r $$cat; then \
--          $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
--          echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \
--        else \
--          $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
--          echo "installing $(srcdir)/$$cat as" \
--               "$(DESTDIR)$$dir/$(PACKAGE).mo"; \
--        fi; \
-+        if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
-+        $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
-+        echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
-+        for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
-+          if test -n "$$lc"; then \
-+            if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
-+              link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
-+              mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-+              mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-+              (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
-+               for file in *; do \
-+                 if test -f $$file; then \
-+                   ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
-+                 fi; \
-+               done); \
-+              rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-+            else \
-+              if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
-+                :; \
-+              else \
-+                rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
-+                mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-+              fi; \
-+            fi; \
-+            rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-+            ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
-+            ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
-+            cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-+            echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
-+          fi; \
-+        done; \
-       done
--# Define this as empty until I found a useful application.
--installcheck:
-+install-strip: install
--uninstall:
--      catalogs='$(CATALOGS)'; \
-+installdirs: installdirs-exec installdirs-data
-+installdirs-exec:
-+installdirs-data: installdirs-data-@USE_NLS@
-+      if test "$(PACKAGE)" = "gettext-tools"; then \
-+        $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
-+      else \
-+        : ; \
-+      fi
-+installdirs-data-no:
-+installdirs-data-yes:
-+      $(mkinstalldirs) $(DESTDIR)$(datadir)
-+      @catalogs='$(CATALOGS)'; \
-       for cat in $$catalogs; do \
-         cat=`basename $$cat`; \
--        lang=`echo $$cat | sed 's/\.gmo$$//'`; \
--        rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
-+        lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-+        dir=$(localedir)/$$lang/LC_MESSAGES; \
-+        $(mkinstalldirs) $(DESTDIR)$$dir; \
-+        for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
-+          if test -n "$$lc"; then \
-+            if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
-+              link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
-+              mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-+              mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-+              (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
-+               for file in *; do \
-+                 if test -f $$file; then \
-+                   ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
-+                 fi; \
-+               done); \
-+              rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-+            else \
-+              if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
-+                :; \
-+              else \
-+                rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
-+                mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-+              fi; \
-+            fi; \
-+          fi; \
-+        done; \
-       done
--      if test "$(PACKAGE)" = "gettext"; then \
--        rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
-+
-+# Define this as empty until I found a useful application.
-+installcheck:
-+
-+uninstall: uninstall-exec uninstall-data
-+uninstall-exec:
-+uninstall-data: uninstall-data-@USE_NLS@
-+      if test "$(PACKAGE)" = "gettext-tools"; then \
-+        for file in $(DISTFILES.common) Makevars.template; do \
-+          rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-+        done; \
-       else \
-         : ; \
-       fi
-+uninstall-data-no:
-+uninstall-data-yes:
-+      catalogs='$(CATALOGS)'; \
-+      for cat in $$catalogs; do \
-+        cat=`basename $$cat`; \
-+        lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-+        for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
-+          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-+        done; \
-+      done
- check: all
--dvi info tags TAGS ID:
-+info dvi ps pdf html tags TAGS ctags CTAGS ID:
- mostlyclean:
--      rm -f core core.* *.pox $(PACKAGE).po *.new.po
-+      rm -f remove-potcdate.sed
-+      rm -f stamp-poT
-+      rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
-       rm -fr *.o
- clean: mostlyclean
-@@ -150,58 +282,85 @@
- maintainer-clean: distclean
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
--      rm -f $(GMOFILES)
-+      rm -f stamp-po $(GMOFILES)
--distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
-+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
- dist distdir:
-       $(MAKE) update-po
-       @$(MAKE) dist2
- # This is a separate target because 'update-po' must be executed before.
- dist2: $(DISTFILES)
-       dists="$(DISTFILES)"; \
-+      if test "$(PACKAGE)" = "gettext-tools"; then \
-+        dists="$$dists Makevars.template"; \
-+      fi; \
-+      if test -f $(srcdir)/ChangeLog; then \
-+        dists="$$dists ChangeLog"; \
-+      fi; \
-+      for i in 0 1 2 3 4 5 6 7 8 9; do \
-+        if test -f $(srcdir)/ChangeLog.$$i; then \
-+          dists="$$dists ChangeLog.$$i"; \
-+        fi; \
-+      done; \
-+      if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
-       for file in $$dists; do \
--        cp -p $(srcdir)/$$file $(distdir); \
-+        if test -f $$file; then \
-+          cp -p $$file $(distdir); \
-+        else \
-+          cp -p $(srcdir)/$$file $(distdir); \
-+        fi; \
-       done
- update-po: Makefile
--      $(MAKE) $(PACKAGE).pot
--      if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
-+      $(MAKE) $(DOMAIN).pot-update
-+      test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
-+      $(MAKE) update-gmo
-+
-+# General rule for creating PO files.
-+
-+.nop.po-create:
-+      @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
-+      echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
-+      exit 1
-+
-+# General rule for updating PO files.
-+
-+.nop.po-update:
-+      @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
-+      if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
-+      tmpdir=`pwd`; \
-+      echo "$$lang:"; \
-+      test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-+      echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
-       cd $(srcdir); \
--      catalogs='$(GMOFILES)'; \
--      for cat in $$catalogs; do \
--        cat=`basename $$cat`; \
--        lang=`echo $$cat | sed 's/\.gmo$$//'`; \
--        echo "$$lang:"; \
--        if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \
--          mv -f $$lang.new.po $$lang.po; \
-+      if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
-+        if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
-+          rm -f $$tmpdir/$$lang.new.po; \
-         else \
--          echo "msgmerge for $$cat failed!"; \
--          rm -f $$lang.new.po; \
-+          if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
-+            :; \
-+          else \
-+            echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
-+            exit 1; \
-+          fi; \
-         fi; \
--      done
--      $(MAKE) update-gmo
-+      else \
-+        echo "msgmerge for $$lang.po failed!" 1>&2; \
-+        rm -f $$tmpdir/$$lang.new.po; \
-+      fi
-+
-+$(DUMMYPOFILES):
- update-gmo: Makefile $(GMOFILES)
-       @:
--POTFILES: POTFILES.in
--      ( if test 'x$(srcdir)' != 'x.'; then \
--          posrcprefix='$(top_srcdir)/'; \
--        else \
--          posrcprefix="../"; \
--        fi; \
--        rm -f $@-t $@ \
--          && (sed -e '/^#/d' -e '/^[  ]*$$/d' \
--                  -e "s@.*@   $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
--              | sed -e '$$s/\\$$//') > $@-t \
--          && chmod a-w $@-t \
--          && mv $@-t $@ )
--
--Makefile: Makefile.in.in ../config.status POTFILES
--      cd .. \
-+Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
-+      cd $(top_builddir) \
-         && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
-              $(SHELL) ./config.status
-+force:
-+
- # Tell versions [3.59,3.63) of GNU make not to export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
- .NOEXPORT:
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/Makefile.in.in~ psmisc-20.2.works.clean/po/Makefile.in.in~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/Makevars psmisc-20.2.works.clean/po/Makevars
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/Makevars    1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/Makevars        2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,41 @@
-+# Makefile variables for PO directory in any package using GNU gettext.
-+
-+# Usually the message domain is the same as the package name.
-+DOMAIN = $(PACKAGE)
-+
-+# These two variables depend on the location of this directory.
-+subdir = po
-+top_builddir = ..
-+
-+# These options get passed to xgettext.
-+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-+
-+# This is the copyright holder that gets inserted into the header of the
-+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
-+# package.  (Note that the msgstr strings, extracted from the package's
-+# sources, belong to the copyright holder of the package.)  Translators are
-+# expected to transfer the copyright for their translations to this person
-+# or entity, or to disclaim their copyright.  The empty string stands for
-+# the public domain; in this case the translators are expected to disclaim
-+# their copyright.
-+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
-+
-+# This is the email address or URL to which the translators shall report
-+# bugs in the untranslated strings:
-+# - Strings which are not entire sentences, see the maintainer guidelines
-+#   in the GNU gettext documentation, section 'Preparing Strings'.
-+# - Strings which use unclear terms or require additional context to be
-+#   understood.
-+# - Strings which make invalid assumptions about notation of date, time or
-+#   money.
-+# - Pluralisation problems.
-+# - Incorrect English spelling.
-+# - Incorrect formatting.
-+# It can be your email address, or a mailing list address where translators
-+# can write to without being subscribed, or the URL of a web page through
-+# which the translators can contact you.
-+MSGID_BUGS_ADDRESS =
-+
-+# This is the list of locale categories, beyond LC_MESSAGES, for which the
-+# message catalogs shall be used.  It is usually empty.
-+EXTRA_LOCALE_CATEGORIES =
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/Rules-quot psmisc-20.2.works.clean/po/Rules-quot
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/Rules-quot  1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/Rules-quot      2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,47 @@
-+# Special Makefile rules for English message catalogs with quotation marks.
-+
-+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
-+
-+.SUFFIXES: .insert-header .po-update-en
-+
-+en@quot.po-create:
-+      $(MAKE) en@quot.po-update
-+en@boldquot.po-create:
-+      $(MAKE) en@boldquot.po-update
-+
-+en@quot.po-update: en@quot.po-update-en
-+en@boldquot.po-update: en@boldquot.po-update-en
-+
-+.insert-header.po-update-en:
-+      @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
-+      if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
-+      tmpdir=`pwd`; \
-+      echo "$$lang:"; \
-+      ll=`echo $$lang | sed -e 's/@.*//'`; \
-+      LC_ALL=C; export LC_ALL; \
-+      cd $(srcdir); \
-+      if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
-+        if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
-+          rm -f $$tmpdir/$$lang.new.po; \
-+        else \
-+          if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
-+            :; \
-+          else \
-+            echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
-+            exit 1; \
-+          fi; \
-+        fi; \
-+      else \
-+        echo "creation of $$lang.po failed!" 1>&2; \
-+        rm -f $$tmpdir/$$lang.new.po; \
-+      fi
-+
-+en@quot.insert-header: insert-header.sin
-+      sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
-+
-+en@boldquot.insert-header: insert-header.sin
-+      sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
-+
-+mostlyclean: mostlyclean-quot
-+mostlyclean-quot:
-+      rm -f *.insert-header
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/Rules-quot~ psmisc-20.2.works.clean/po/Rules-quot~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/boldquot.sed psmisc-20.2.works.clean/po/boldquot.sed
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/boldquot.sed        1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/boldquot.sed    2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,10 @@
-+s/"\([^"]*\)"/“\1”/g
-+s/`\([^`']*\)'/‘\1’/g
-+s/ '\([^`']*\)' / ‘\1’ /g
-+s/ '\([^`']*\)'$/ ‘\1’/g
-+s/^'\([^`']*\)' /‘\1’ /g
-+s/“”/""/g
-+s/“/“\e[1m/g
-+s/”/\e[0m”/g
-+s/‘/‘\e[1m/g
-+s/’/\e[0m’/g
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/boldquot.sed~ psmisc-20.2.works.clean/po/boldquot.sed~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/en@boldquot.header psmisc-20.2.works.clean/po/en@boldquot.header
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/en@boldquot.header  1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/en@boldquot.header      2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,25 @@
-+# All this catalog "translates" are quotation characters.
-+# The msgids must be ASCII and therefore cannot contain real quotation
-+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
-+# and double quote (0x22). These substitutes look strange; see
-+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
-+#
-+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
-+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
-+# It also translates pairs of apostrophe (0x27) to
-+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
-+# and pairs of quotation mark (0x22) to
-+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
-+#
-+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
-+# When output to an ISO-8859-1 terminal, the single quotation marks are
-+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
-+# grave/acute accent (by libiconv), and the double quotation marks are
-+# transliterated to 0x22.
-+# When output to an ASCII terminal, the single quotation marks are
-+# transliterated to apostrophes, and the double quotation marks are
-+# transliterated to 0x22.
-+#
-+# This catalog furthermore displays the text between the quotation marks in
-+# bold face, assuming the VT100/XTerm escape sequences.
-+#
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/en@boldquot.header~ psmisc-20.2.works.clean/po/en@boldquot.header~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/en@quot.header psmisc-20.2.works.clean/po/en@quot.header
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/en@quot.header      1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/en@quot.header  2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,22 @@
-+# All this catalog "translates" are quotation characters.
-+# The msgids must be ASCII and therefore cannot contain real quotation
-+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
-+# and double quote (0x22). These substitutes look strange; see
-+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
-+#
-+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
-+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
-+# It also translates pairs of apostrophe (0x27) to
-+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
-+# and pairs of quotation mark (0x22) to
-+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
-+#
-+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
-+# When output to an ISO-8859-1 terminal, the single quotation marks are
-+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
-+# grave/acute accent (by libiconv), and the double quotation marks are
-+# transliterated to 0x22.
-+# When output to an ASCII terminal, the single quotation marks are
-+# transliterated to apostrophes, and the double quotation marks are
-+# transliterated to 0x22.
-+#
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/en@quot.header~ psmisc-20.2.works.clean/po/en@quot.header~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/insert-header.sin psmisc-20.2.works.clean/po/insert-header.sin
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/insert-header.sin   1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/insert-header.sin       2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,23 @@
-+# Sed script that inserts the file called HEADER before the header entry.
-+#
-+# At each occurrence of a line starting with "msgid ", we execute the following
-+# commands. At the first occurrence, insert the file. At the following
-+# occurrences, do nothing. The distinction between the first and the following
-+# occurrences is achieved by looking at the hold space.
-+/^msgid /{
-+x
-+# Test if the hold space is empty.
-+s/m/m/
-+ta
-+# Yes it was empty. First occurrence. Read the file.
-+r HEADER
-+# Output the file's contents by reading the next line. But don't lose the
-+# current line while doing this.
-+g
-+N
-+bb
-+:a
-+# The hold space was nonempty. Following occurrences. Do nothing.
-+x
-+:b
-+}
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/insert-header.sin~ psmisc-20.2.works.clean/po/insert-header.sin~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/quot.sed psmisc-20.2.works.clean/po/quot.sed
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/quot.sed    1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/quot.sed        2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,6 @@
-+s/"\([^"]*\)"/“\1”/g
-+s/`\([^`']*\)'/‘\1’/g
-+s/ '\([^`']*\)' / ‘\1’ /g
-+s/ '\([^`']*\)'$/ ‘\1’/g
-+s/^'\([^`']*\)' /‘\1’ /g
-+s/“”/""/g
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/quot.sed~ psmisc-20.2.works.clean/po/quot.sed~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/remove-potcdate.sin psmisc-20.2.works.clean/po/remove-potcdate.sin
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/remove-potcdate.sin 1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/remove-potcdate.sin     2004-10-13 15:18:42.000000000 -0500
-@@ -0,0 +1,19 @@
-+# Sed script that remove the POT-Creation-Date line in the header entry
-+# from a POT file.
-+#
-+# The distinction between the first and the following occurrences of the
-+# pattern is achieved by looking at the hold space.
-+/^"POT-Creation-Date: .*"$/{
-+x
-+# Test if the hold space is empty.
-+s/P/P/
-+ta
-+# Yes it was empty. First occurrence. Remove the line.
-+g
-+d
-+bb
-+:a
-+# The hold space was nonempty. Following occurrences. Do nothing.
-+x
-+:b
-+}
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/remove-potcdate.sin~ psmisc-20.2.works.clean/po/remove-potcdate.sin~
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/po/stamp-po psmisc-20.2.works.clean/po/stamp-po
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/po/stamp-po    1969-12-31 18:00:00.000000000 -0600
-+++ psmisc-20.2.works.clean/po/stamp-po        2004-10-13 15:11:01.000000000 -0500
-@@ -0,0 +1 @@
-+timestamp
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/src/Makefile.am psmisc-20.2.works.clean/src/Makefile.am
---- tmp/work/psmisc-20.2-r0/psmisc-20.2/src/Makefile.am        2001-06-15 07:17:55.000000000 -0500
-+++ psmisc-20.2.works.clean/src/Makefile.am    2004-10-13 15:11:01.000000000 -0500
-@@ -1,5 +1,7 @@
- CFLAGS = -Wall -DLOCALEDIR=\"/usr/share/locale\"
-+INCLUDES = -I$(top_srcdir)/intl
-+LDADD = @LIBINTL@
- bin_PROGRAMS = fuser killall pstree
-diff -urNd -urNd tmp/work/psmisc-20.2-r0/psmisc-20.2/src/Makefile.in psmisc-20.2.works.clean/src/Makefile.in
diff --git a/meta/packages/psmisc/psmisc.inc b/meta/packages/psmisc/psmisc.inc
new file mode 100644 (file)
index 0000000..d489891
--- /dev/null
@@ -0,0 +1,55 @@
+LICENSE = "GPL"
+DESCRIPTION = "procfs tools"
+SECTION = "base"
+PRIORITY = "required"
+DEPENDS = "ncurses virtual/libintl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/psmisc/psmisc-${PV}.tar.gz \
+          file://libintl-link.patch;patch=1"
+S = "${WORKDIR}/psmisc-${PV}"
+
+inherit autotools gettext
+
+ALLOW_EMPTY = "1"
+
+PACKAGES = "${PN} \
+       fuser-dbg fuser fuser-doc \
+          killall-dbg killall killall-doc \
+          pstree-dbg pstree pstree-doc"
+
+FILES_${PN} = ""
+RDEPENDS_${PN} = "fuser killall pstree"
+
+FILES_fuser = "${bindir}/fuser.${PN}"
+FILES_fuser-doc = "${mandir}/man1/fuser*"
+FILES_fuser-dbg = "${bindir}/.debug/fuser"
+
+FILES_killall = "${bindir}/killall.${PN}"
+FILES_killall-doc = "${mandir}/man1/killall*"
+FILES_killall-dbg = "${bindir}/.debug/killall*"
+
+FILES_pstree = "${bindir}/pstree"
+FILES_pstree-doc = "${mandir}/man1/pstree*"
+FILES_pstree-dbg = "${bindir}/.debug/pstree"
+
+do_install_append() {
+       mv ${D}${bindir}/killall ${D}${bindir}/killall.${PN}
+       mv ${D}${bindir}/fuser ${D}${bindir}/fuser.${PN}
+}
+
+pkg_postinst_killall() {
+       update-alternatives --install ${bindir}/killall killall killall.${PN} 90
+}
+
+pkg_postrm_killall() {
+       update-alternatives --remove ${bindir}/killall killall.${PN}
+}
+
+pkg_postinst_fuser() {
+       update-alternatives --install ${bindir}/fuser fuser fuser.${PN} 90
+}
+
+pkg_postrm_fuser() {
+    update-alternatives --remove ${bindir}/fuser fuser.${PN}
+}
+
index 9dec43e..90826a8 100644 (file)
@@ -1,46 +1,5 @@
-LICENSE = "GPL"
-DESCRIPTION = "procfs tools"
-SECTION = "base"
-PRIORITY = "required"
-DEPENDS = "ncurses"
-PR = "r4"
+require psmisc.inc
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/psmisc/psmisc-${PV}.tar.gz \
-          file://gettext.patch;patch=1"
-S = "${WORKDIR}/psmisc-${PV}"
+PR = "r5"
 
-inherit autotools gettext
-
-ALLOW_EMPTY_${PN} = "1"
-
-PACKAGES = "${PN} \
-           fuser-dbg fuser fuser-doc \
-          killall-dbg killall killall-doc \
-          pstree-dbg pstree pstree-doc"
-
-FILES_${PN} = ""
-RDEPENDS_${PN} = "fuser killall pstree"
-
-FILES_fuser = "${bindir}/fuser"
-FILES_fuser-doc = "${mandir}/man1/fuser*"
-FILES_fuser-dbg = "${bindir}/.debug/fuser"
-
-FILES_killall = "${bindir}/killall.${PN}"
-FILES_killall-doc = "${mandir}/man1/killall*"
-FILES_killall-dbg = "${bindir}/.debug/killall*"
-
-FILES_pstree = "${bindir}/pstree"
-FILES_pstree-doc = "${mandir}/man1/pstree*"
-FILES_pstree-dbg = "${bindir}/.debug/pstree"
-
-do_install_append() {
-       mv ${D}${bindir}/killall ${D}${bindir}/killall.${PN}
-}
-
-pkg_postinst_killall() {
-       update-alternatives --install ${bindir}/killall killall killall.${PN} 90
-}
-
-pkg_postrm_killall() {
-       update-alternatives --remove ${bindir}/killall killall.${PN}
-}
+SRC_URI += "file://gettext.patch;patch=1"