diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2010-09-01 19:09:11 +0100 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-09-01 19:09:57 +0100 |
commit | d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612 (patch) | |
tree | f36fe3008f36ff75cbdd31b630f8f13f1f205ebb /meta/packages/lrzsz/lrzsz-0.12.20/gettext.patch | |
parent | caab7fc509bf27706ff3248689f6afd04225cfda (diff) | |
download | openembedded-core-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.tar.gz openembedded-core-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.tar.bz2 openembedded-core-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.tar.xz openembedded-core-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.zip |
packages: Separate out most of the remaining packages into recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/packages/lrzsz/lrzsz-0.12.20/gettext.patch')
-rw-r--r-- | meta/packages/lrzsz/lrzsz-0.12.20/gettext.patch | 21882 |
1 files changed, 0 insertions, 21882 deletions
diff --git a/meta/packages/lrzsz/lrzsz-0.12.20/gettext.patch b/meta/packages/lrzsz/lrzsz-0.12.20/gettext.patch deleted file mode 100644 index 241ffd90b..000000000 --- a/meta/packages/lrzsz/lrzsz-0.12.20/gettext.patch +++ /dev/null @@ -1,21882 +0,0 @@ ---- lrzsz-0.12.20.safe/ABOUT-NLS 1998-04-26 09:22:30.000000000 -0400 -+++ lrzsz-0.12.20/ABOUT-NLS 2004-09-12 14:40:34.323752952 -0400 -@@ -1,14 +1,14 @@ - 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. - - If you found this `ABOUT-NLS' file inside a distribution, you may - assume that the distributed package does use GNU `gettext' internally, --itself available at your nearest GNU archive site. But you do *not* -+itself available at your nearest GNU archive site. But you do _not_ - need to install GNU `gettext' prior to configuring, installing or using - this package with messages translated. - -@@ -22,10 +22,10 @@ - `gettext' which is used. The information can be found in the - `intl/VERSION' file, in internationalized packages. - --One advise in advance --===================== -+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 -@@ -34,42 +34,40 @@ - package, despite the existence of internationalizing capabilities in the - operating system where this package is being installed. So far, only - the `gettext' implementation in the GNU C library version 2 provides as --many features (such as locale alias or message inheritance) as the --implementation here. It is also not possible to offer this additional --functionality on top of a `catgets' implementation. Future versions of --GNU `gettext' will very likely convey even more functionality. So it --might be a good idea to change to GNU `gettext' as soon as possible. -+many features (such as locale alias, message inheritance, automatic -+charset conversion or plural form handling) as the implementation here. -+It is also not possible to offer this additional functionality on top -+of a `catgets' implementation. Future versions of GNU `gettext' will -+very likely convey even more functionality. So it might be a good idea -+to change to GNU `gettext' as soon as possible. - -- So you need not provide this option if you are using GNU libc 2 or -+ So you need _not_ provide this option if you are using GNU libc 2 or - you have installed a recent copy of the GNU gettext package with the - included `libintl'. - - INSTALL Matters - =============== - -- Some packages are "localizable" when properly installed; the --programs they contain can be made to speak your own native language. --Most such packages use GNU `gettext'. Other packages have their own --ways to internationalization, predating GNU `gettext'. -+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 provides --usable `catgets' (if using this is selected by the installer) or --`gettext' functions. If neither is available, the GNU `gettext' own -+messages. It will automatically detect whether the system already -+provides the GNU `gettext' functions. If not, the GNU `gettext' own - library will be used. This library is wholly contained within this - package, usually in the `intl/' subdirectory, so prior installation of --the GNU `gettext' package is *not* required. Installers may use -+the GNU `gettext' package is _not_ required. Installers may use - special options at configuration time for changing the default - behaviour. The commands: - - ./configure --with-included-gettext -- ./configure --with-catgets - ./configure --disable-nls - --will respectively bypass any pre-existing `catgets' or `gettext' to use --the internationalizing routines provided within this package, enable --the use of the `catgets' functions (if found on the locale system), or --else, *totally* disable translation of messages. -+will respectively bypass any pre-existing `gettext' to use the -+internationalizing routines provided within this package, or else, -+_totally_ disable translation of messages. - - When you already have GNU `gettext' installed on your system and run - configure without an option for your new package, `configure' will -@@ -83,18 +81,10 @@ - - to prevent auto-detection. - -- By default the configuration process will not test for the `catgets' --function and therefore they will not be used. The reasons are already --given above: the emulation on top of `catgets' cannot provide all the --extensions provided by the GNU `gettext' library. If you nevertheless --want to use the `catgets' functions use -- -- ./configure --with-catgets -- --to enable the test for `catgets' (this causes no harm if `catgets' is --not available on your system). If you really select this option we --would like to hear about the reasons because we cannot think of any --good one ourself. -+ The configuration process will not test for the `catgets' function -+and therefore it will not be used. The reason is that even an -+emulation of `gettext' on top of `catgets' could not provide all the -+extensions of the GNU `gettext' library. - - Internationalized packages have usually many `po/LL.po' files, where - LL gives an ISO 639 two-letter code identifying the language. Unless -@@ -108,57 +98,73 @@ - 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. - -- An operating system might already offer message localization for --many of its programs, while other programs have been installed locally --with the full capabilities of GNU `gettext'. Just using `gettext' --extended syntax for `LANG' would break proper localization of already --available operating system programs. In this case, users should set --both `LANGUAGE' and `LANG' variables in their environment, as programs --using GNU `gettext' give preference to `LANGUAGE'. For example, some --Swedish users would rather read translations in German than English for --when Swedish is not available. This is easily accomplished by setting --`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'. -+ You might think that the country code specification is redundant. -+But in fact, some languages have dialects in different countries. For -+example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The -+country code serves to distinguish the dialects. -+ -+ The locale naming convention of `LL_CC', with `LL' denoting the -+language and `CC' denoting the country, is the one use on systems based -+on GNU libc. On other systems, some variations of this scheme are -+used, such as `LL' or `LL_CC.ENCODING'. You can get the list of -+locales supported by your system for your country by running the command -+`locale -a | grep '^LL''. -+ -+ Not all programs have translations for all languages. By default, an -+English message is shown in place of a nonexistent translation. If you -+understand other languages, you can set up a priority list of languages. -+This is done through a different environment variable, called -+`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' -+for the purpose of message handling, but you still need to have `LANG' -+set to the primary language; this is required by other parts of the -+system libraries. For example, some Swedish users who would rather -+read translations in German than English for when Swedish is not -+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. -+ -+ 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, courtesy of Linux --International. You may reach your translation team at the address --`LL@li.org', replacing LL by the two-letter ISO 639 code for your --language. Language codes are *not* the same as the country codes given --in ISO 3166. The following translation teams exist, as of August 1997: -- -- Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en', -- Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian -- `hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja', -- Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish -- `pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es', -- Swedish `sv', and Turkish `tr'. -- --For example, you may reach the Chinese translation team by writing to --`zh@li.org'. -+Each translation team has its own mailing list. The up-to-date list of -+teams can be found at the Free Translation Project's homepage, -+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" -+area. - -- If you'd like to volunteer to *work* at translating messages, you -+ If you'd like to volunteer to _work_ at translating messages, you - should become a member of the translating team for your own language. --The subscribing address is *not* the same as the list itself, it has -+The subscribing address is _not_ the same as the list itself, it has - `-request' appended. For example, speakers of Swedish can send a - message to `sv-request@li.org', having this message body: - - subscribe - - Keep in mind that team members are expected to participate --*actively* in translations, or at solving translational difficulties, -+_actively_ in translations, or at solving translational difficulties, - rather than merely lurking around. If your team does not exist yet and - you want to start one, or if you are unsure about what to do or how to - get started, please write to `translation@iro.umontreal.ca' to reach the -@@ -171,43 +177,559 @@ - Available Packages - ================== - -- Languages are not equally supported in all packages. The following --matrix shows the current state of internationalization, as of August --1997. The matrix shows, in regard of each package, for which languages --PO files have been submitted to translation coordination. -+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 cs da de en es fi fr it ja ko nl no pl pt sl sv -- .-------------------------------------------------. -- bash | [] [] [] | 3 -- bison | [] [] [] | 3 -- clisp | [] [] [] [] | 4 -- cpio | [] [] [] [] [] | 5 -- diffutils | [] [] [] [] [] | 5 -- enscript | [] [] [] [] [] [] | 6 -- fileutils | [] [] [] [] [] [] [] [] [] [] | 10 -- findutils | [] [] [] [] [] [] [] [] | 8 -- flex | [] [] [] [] | 4 -- gcal | [] [] [] [] [] | 5 -- gettext | [] [] [] [] [] [] [] [] [] [] | 11 -- grep | [] [] [] [] [] [] [] [] [] | 9 -- hello | [] [] [] [] [] [] [] [] [] [] | 10 -- id-utils | [] [] [] | 3 -- indent | [] [] [] [] | 4 -- libc | [] [] [] [] [] [] [] | 7 -- m4 | [] [] [] [] [] | 5 -- make | [] [] [] [] [] [] | 6 -- music | [] [] | 2 -- ptx | [] [] [] [] [] [] [] [] | 8 -- recode | [] [] [] [] [] [] [] [] [] | 9 -- sh-utils | [] [] [] [] [] [] [] | 7 -- sharutils | [] [] [] [] [] | 5 -- tar | [] [] [] [] [] [] [] [] [] [] | 10 -- texinfo | [] | 1 -- textutils | [] [] [] [] [] [] [] [] [] | 9 -- wdiff | [] [] [] [] [] [] [] [] | 8 -- `-------------------------------------------------' -- 16 languages cs da de en es fi fr it ja ko nl no pl pt sl sv -- 27 packages 3 2 24 1 17 1 26 2 1 11 20 9 19 7 7 17 167 -+ Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es -+ +----------------------------------------------------+ -+ a2ps | [] [] [] [] | -+ aegis | () | -+ ant-phone | () | -+ anubis | | -+ ap-utils | | -+ aspell | [] | -+ bash | [] [] [] [] | -+ batchelor | | -+ bfd | [] [] | -+ binutils | [] [] | -+ bison | [] [] [] | -+ bluez-pin | [] [] [] | -+ clisp | | -+ clisp | [] [] [] | -+ console-tools | [] [] | -+ coreutils | [] [] [] [] | -+ cpio | [] [] [] | -+ darkstat | [] () [] | -+ diffutils | [] [] [] [] [] [] [] | -+ e2fsprogs | [] [] [] | -+ enscript | [] [] [] [] | -+ error | [] [] [] [] [] | -+ fetchmail | [] () [] [] [] [] | -+ fileutils | [] [] [] | -+ findutils | [] [] [] [] [] [] [] | -+ flex | [] [] [] [] | -+ fslint | | -+ gas | [] | -+ gawk | [] [] [] [] | -+ gbiff | [] | -+ gcal | [] | -+ gcc | [] [] | -+ gettext | [] [] [] [] [] | -+ gettext-examples | [] [] [] [] | -+ gettext-runtime | [] [] [] [] [] | -+ gettext-tools | [] [] [] | -+ gimp-print | [] [] [] [] [] | -+ gliv | | -+ glunarclock | [] [] | -+ gnubiff | [] | -+ gnucash | [] () [] [] | -+ gnucash-glossary | [] () [] | -+ gnupg | [] () [] [] [] [] | -+ gpe-aerial | [] | -+ gpe-beam | [] [] | -+ gpe-calendar | [] [] | -+ gpe-clock | [] [] | -+ gpe-conf | [] [] | -+ gpe-contacts | [] [] | -+ gpe-edit | [] | -+ gpe-go | [] | -+ gpe-login | [] [] | -+ gpe-ownerinfo | [] [] | -+ gpe-sketchbook | [] [] | -+ gpe-su | [] [] | -+ gpe-taskmanager | [] [] | -+ gpe-timesheet | [] | -+ gpe-today | [] [] | -+ gpe-todo | [] [] | -+ gphoto2 | [] [] [] [] | -+ gprof | [] [] [] | -+ gpsdrive | () () () | -+ gramadoir | [] | -+ grep | [] [] [] [] [] [] | -+ gretl | [] | -+ gtick | [] () | -+ hello | [] [] [] [] [] [] | -+ id-utils | [] [] | -+ indent | [] [] [] [] | -+ iso_3166 | [] [] [] [] [] [] [] [] [] [] | -+ iso_3166_1 | [] [] [] [] [] [] | -+ iso_3166_2 | | -+ iso_3166_3 | [] | -+ iso_4217 | [] [] [] [] | -+ iso_639 | | -+ jpilot | [] [] [] | -+ jtag | | -+ jwhois | [] | -+ kbd | [] [] [] [] [] | -+ latrine | () | -+ ld | [] [] | -+ libc | [] [] [] [] [] [] | -+ libgpewidget | [] [] | -+ libiconv | [] [] [] [] [] | -+ lifelines | [] () | -+ lilypond | [] | -+ lingoteach | | -+ lingoteach_lessons | () () | -+ lynx | [] [] [] [] | -+ m4 | [] [] [] [] | -+ mailutils | [] [] | -+ make | [] [] [] | -+ man-db | [] () [] [] () | -+ minicom | [] [] [] | -+ mysecretdiary | [] [] [] | -+ nano | [] () [] [] [] | -+ nano_1_0 | [] () [] [] [] | -+ opcodes | [] | -+ parted | [] [] [] [] [] | -+ ptx | [] [] [] [] [] | -+ python | | -+ radius | [] | -+ recode | [] [] [] [] [] [] [] | -+ rpm | [] [] | -+ screem | | -+ scrollkeeper | [] [] [] [] [] [] | -+ sed | [] [] [] [] [] [] | -+ sh-utils | [] [] [] | -+ shared-mime-info | | -+ sharutils | [] [] [] [] [] [] | -+ silky | () | -+ skencil | [] () [] | -+ sketch | [] () [] | -+ soundtracker | [] [] [] | -+ sp | [] | -+ tar | [] [] [] [] | -+ texinfo | [] [] [] | -+ textutils | [] [] [] [] | -+ tin | () () | -+ tp-robot | | -+ tuxpaint | [] [] [] [] [] [] [] | -+ unicode-han-tra... | | -+ unicode-transla... | | -+ util-linux | [] [] [] [] [] | -+ vorbis-tools | [] [] [] [] | -+ wastesedge | () | -+ wdiff | [] [] [] [] | -+ wget | [] [] [] [] [] [] | -+ xchat | [] [] [] [] | -+ xfree86_xkb_xml | [] [] | -+ xpad | [] | -+ +----------------------------------------------------+ -+ af am ar az be bg bs ca cs da de el en en_GB eo es -+ 4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68 -+ -+ et 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 -@@ -220,6 +742,27 @@ - lag between the mere existence a PO file and its wide availability in a - distribution. - -- If August 1997 seems to be old, you may fetch a more recent copy of --this `ABOUT-NLS' file on most GNU archive sites. -+ 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'. -+ -+Using `gettext' in new packages -+=============================== -+ -+If you are writing a freely available program and want to -+internationalize it you are welcome to use GNU `gettext' in your -+package. Of course you have to respect the GNU Library General Public -+License which covers the use of the GNU `gettext' library. This means -+in particular that even non-free programs can use `libintl' as a shared -+library, whereas only free software can use `libintl' as a static -+library or use modified versions of `libintl'. -+ -+ Once the sources are changed appropriately and the setup can handle -+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 -+the translation teams. - ---- lrzsz-0.12.20.safe/ChangeLog 1998-12-29 17:49:56.000000000 -0500 -+++ lrzsz-0.12.20/ChangeLog 2004-09-12 14:40:35.846521456 -0400 -@@ -1,3 +1,11 @@ -+2004-09-12 gettextize <bug-gnu-gettext@gnu.org> -+ -+ * Makefile.am (ACLOCAL_AMFLAGS): New variable. -+ (EXTRA_DIST): Add config.rpath. -+ * configure.in (AC_OUTPUT): Add m4/Makefile. -+ (AC_OUTPUT): Remove command that created po/Makefile. -+ (AC_LINK_FILES): Remove invocation. -+ - 1998-12-29 Uwe Ohse <uwe@ohse.de> - - * src/lrz.c: removed stpcpy call. ---- lrzsz-0.12.20.safe/config.rpath 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/config.rpath 2004-09-12 14:40:34.329752040 -0400 -@@ -0,0 +1,548 @@ -+#! /bin/sh -+# Output a system dependent set of variables, describing how to set the -+# run time search path of shared libraries in an executable. -+# -+# Copyright 1996-2003 Free Software Foundation, Inc. -+# Taken from GNU libtool, 2001 -+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -+# -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# -+# As a special exception to the GNU General Public License, if you -+# distribute this file as part of a program that contains a -+# configuration script generated by Autoconf, you may include it under -+# the same distribution terms that you use for the rest of that program. -+# -+# The first argument passed to this file is the canonical host specification, -+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -+# or -+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld -+# should be set by the caller. -+# -+# The set of defined variables is at the end of this script. -+ -+# Known limitations: -+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer -+# than 256 bytes, otherwise the compiler driver will dump core. The only -+# known workaround is to choose shorter directory names for the build -+# directory and/or the installation directory. -+ -+# All known linkers require a `.a' archive for static linking (except M$VC, -+# which needs '.lib'). -+libext=a -+shrext=.so -+ -+host="$1" -+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -+ -+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. -+ -+wl= -+if test "$GCC" = yes; then -+ wl='-Wl,' -+else -+ case "$host_os" in -+ aix*) -+ wl='-Wl,' -+ ;; -+ mingw* | pw32* | os2*) -+ ;; -+ hpux9* | hpux10* | hpux11*) -+ wl='-Wl,' -+ ;; -+ irix5* | irix6* | nonstopux*) -+ wl='-Wl,' -+ ;; -+ newsos6) -+ ;; -+ linux*) -+ case $CC in -+ icc|ecc) -+ wl='-Wl,' -+ ;; -+ ccc) -+ wl='-Wl,' -+ ;; -+ esac -+ ;; -+ osf3* | osf4* | osf5*) -+ wl='-Wl,' -+ ;; -+ sco3.2v5*) -+ ;; -+ solaris*) -+ wl='-Wl,' -+ ;; -+ sunos4*) -+ wl='-Qoption ld ' -+ ;; -+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) -+ wl='-Wl,' -+ ;; -+ sysv4*MP*) -+ ;; -+ uts4*) -+ ;; -+ esac -+fi -+ -+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. -+ -+hardcode_libdir_flag_spec= -+hardcode_libdir_separator= -+hardcode_direct=no -+hardcode_minus_L=no -+ -+case "$host_os" in -+ cygwin* | mingw* | pw32*) -+ # FIXME: the MSVC++ port hasn't been tested in a loooong time -+ # When not using gcc, we currently assume that we are using -+ # Microsoft Visual C++. -+ if test "$GCC" != yes; then -+ with_gnu_ld=no -+ fi -+ ;; -+ openbsd*) -+ with_gnu_ld=no -+ ;; -+esac -+ -+ld_shlibs=yes -+if test "$with_gnu_ld" = yes; then -+ case "$host_os" in -+ aix3* | aix4* | aix5*) -+ # On AIX/PPC, the GNU linker is very broken -+ if test "$host_cpu" != ia64; then -+ ld_shlibs=no -+ fi -+ ;; -+ amigaos*) -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_minus_L=yes -+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports -+ # that the semantics of dynamic libraries on AmigaOS, at least up -+ # to version 4, is to share data among multiple programs linked -+ # with the same dynamic library. Since this doesn't match the -+ # behavior of shared libraries on other platforms, we can use -+ # them. -+ ld_shlibs=no -+ ;; -+ beos*) -+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -+ : -+ else -+ ld_shlibs=no -+ fi -+ ;; -+ cygwin* | mingw* | pw32*) -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ hardcode_libdir_flag_spec='-L$libdir' -+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then -+ : -+ else -+ ld_shlibs=no -+ fi -+ ;; -+ netbsd*) -+ ;; -+ solaris* | sysv5*) -+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -+ ld_shlibs=no -+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -+ : -+ else -+ ld_shlibs=no -+ fi -+ ;; -+ sunos4*) -+ hardcode_direct=yes -+ ;; -+ *) -+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -+ : -+ else -+ ld_shlibs=no -+ fi -+ ;; -+ esac -+ if test "$ld_shlibs" = yes; then -+ # Unlike libtool, we use -rpath here, not --rpath, since the documented -+ # option of GNU ld is called -rpath, not --rpath. -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ fi -+else -+ case "$host_os" in -+ aix3*) -+ # Note: this linker hardcodes the directories in LIBPATH if there -+ # are no directories specified by -L. -+ hardcode_minus_L=yes -+ if test "$GCC" = yes; then -+ # Neither direct hardcoding nor static linking is supported with a -+ # broken collect2. -+ hardcode_direct=unsupported -+ fi -+ ;; -+ aix4* | aix5*) -+ if test "$host_cpu" = ia64; then -+ # On IA64, the linker does run time linking by default, so we don't -+ # have to do anything special. -+ aix_use_runtimelinking=no -+ else -+ aix_use_runtimelinking=no -+ # Test if we are trying to use run time linking or normal -+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we -+ # need to do runtime linking. -+ case $host_os in aix4.[23]|aix4.[23].*|aix5*) -+ for ld_flag in $LDFLAGS; do -+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then -+ aix_use_runtimelinking=yes -+ break -+ fi -+ done -+ esac -+ fi -+ hardcode_direct=yes -+ hardcode_libdir_separator=':' -+ if test "$GCC" = yes; then -+ case $host_os in aix4.[012]|aix4.[012].*) -+ collect2name=`${CC} -print-prog-name=collect2` -+ if test -f "$collect2name" && \ -+ strings "$collect2name" | grep resolve_lib_name >/dev/null -+ then -+ # We have reworked collect2 -+ hardcode_direct=yes -+ else -+ # We have old collect2 -+ hardcode_direct=unsupported -+ hardcode_minus_L=yes -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_libdir_separator= -+ fi -+ esac -+ fi -+ # Begin _LT_AC_SYS_LIBPATH_AIX. -+ echo 'int main () { return 0; }' > conftest.c -+ ${CC} ${LDFLAGS} conftest.c -o conftest -+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -+}'` -+ if test -z "$aix_libpath"; then -+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -+}'` -+ fi -+ if test -z "$aix_libpath"; then -+ aix_libpath="/usr/lib:/lib" -+ fi -+ rm -f conftest.c conftest -+ # End _LT_AC_SYS_LIBPATH_AIX. -+ if test "$aix_use_runtimelinking" = yes; then -+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -+ else -+ if test "$host_cpu" = ia64; then -+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' -+ else -+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -+ fi -+ fi -+ ;; -+ amigaos*) -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_minus_L=yes -+ # see comment about different semantics on the GNU ld section -+ ld_shlibs=no -+ ;; -+ bsdi4*) -+ ;; -+ cygwin* | mingw* | pw32*) -+ # When not using gcc, we currently assume that we are using -+ # Microsoft Visual C++. -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ hardcode_libdir_flag_spec=' ' -+ libext=lib -+ ;; -+ darwin* | rhapsody*) -+ if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then -+ hardcode_direct=no -+ fi -+ ;; -+ dgux*) -+ hardcode_libdir_flag_spec='-L$libdir' -+ ;; -+ freebsd1*) -+ ld_shlibs=no -+ ;; -+ freebsd2.2*) -+ hardcode_libdir_flag_spec='-R$libdir' -+ hardcode_direct=yes -+ ;; -+ freebsd2*) -+ hardcode_direct=yes -+ hardcode_minus_L=yes -+ ;; -+ freebsd*) -+ hardcode_libdir_flag_spec='-R$libdir' -+ hardcode_direct=yes -+ ;; -+ hpux9*) -+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -+ hardcode_libdir_separator=: -+ hardcode_direct=yes -+ # hardcode_minus_L: Not really in the search PATH, -+ # but as the default location of the library. -+ hardcode_minus_L=yes -+ ;; -+ hpux10* | hpux11*) -+ if test "$with_gnu_ld" = no; then -+ case "$host_cpu" in -+ hppa*64*) -+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -+ hardcode_libdir_separator=: -+ hardcode_direct=no -+ ;; -+ ia64*) -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_direct=no -+ # hardcode_minus_L: Not really in the search PATH, -+ # but as the default location of the library. -+ hardcode_minus_L=yes -+ ;; -+ *) -+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -+ hardcode_libdir_separator=: -+ hardcode_direct=yes -+ # hardcode_minus_L: Not really in the search PATH, -+ # but as the default location of the library. -+ hardcode_minus_L=yes -+ ;; -+ esac -+ fi -+ ;; -+ irix5* | irix6* | nonstopux*) -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ hardcode_libdir_separator=: -+ ;; -+ netbsd*) -+ hardcode_libdir_flag_spec='-R$libdir' -+ hardcode_direct=yes -+ ;; -+ newsos6) -+ hardcode_direct=yes -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ hardcode_libdir_separator=: -+ ;; -+ openbsd*) -+ hardcode_direct=yes -+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -+ else -+ case "$host_os" in -+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) -+ hardcode_libdir_flag_spec='-R$libdir' -+ ;; -+ *) -+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -+ ;; -+ esac -+ fi -+ ;; -+ os2*) -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_minus_L=yes -+ ;; -+ osf3*) -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ hardcode_libdir_separator=: -+ ;; -+ osf4* | osf5*) -+ if test "$GCC" = yes; then -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ else -+ # Both cc and cxx compiler support -rpath directly -+ hardcode_libdir_flag_spec='-rpath $libdir' -+ fi -+ hardcode_libdir_separator=: -+ ;; -+ sco3.2v5*) -+ ;; -+ solaris*) -+ hardcode_libdir_flag_spec='-R$libdir' -+ ;; -+ sunos4*) -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_direct=yes -+ hardcode_minus_L=yes -+ ;; -+ sysv4) -+ case $host_vendor in -+ sni) -+ hardcode_direct=yes # is this really true??? -+ ;; -+ siemens) -+ hardcode_direct=no -+ ;; -+ motorola) -+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie -+ ;; -+ esac -+ ;; -+ sysv4.3*) -+ ;; -+ sysv4*MP*) -+ if test -d /usr/nec; then -+ ld_shlibs=yes -+ fi -+ ;; -+ sysv4.2uw2*) -+ hardcode_direct=yes -+ hardcode_minus_L=no -+ ;; -+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) -+ ;; -+ sysv5*) -+ hardcode_libdir_flag_spec= -+ ;; -+ uts4*) -+ hardcode_libdir_flag_spec='-L$libdir' -+ ;; -+ *) -+ ld_shlibs=no -+ ;; -+ esac -+fi -+ -+# Check dynamic linker characteristics -+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. -+libname_spec='lib$name' -+case "$host_os" in -+ aix3*) -+ ;; -+ aix4* | aix5*) -+ ;; -+ amigaos*) -+ ;; -+ beos*) -+ ;; -+ bsdi4*) -+ ;; -+ cygwin* | mingw* | pw32*) -+ shrext=.dll -+ ;; -+ darwin* | rhapsody*) -+ shrext=.dylib -+ ;; -+ dgux*) -+ ;; -+ freebsd1*) -+ ;; -+ freebsd*) -+ ;; -+ gnu*) -+ ;; -+ hpux9* | hpux10* | hpux11*) -+ case "$host_cpu" in -+ ia64*) -+ shrext=.so -+ ;; -+ hppa*64*) -+ shrext=.sl -+ ;; -+ *) -+ shrext=.sl -+ ;; -+ esac -+ ;; -+ irix5* | irix6* | nonstopux*) -+ case "$host_os" in -+ irix5* | nonstopux*) -+ libsuff= shlibsuff= -+ ;; -+ *) -+ case $LD in -+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; -+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; -+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; -+ *) libsuff= shlibsuff= ;; -+ esac -+ ;; -+ esac -+ ;; -+ linux*oldld* | linux*aout* | linux*coff*) -+ ;; -+ linux*) -+ ;; -+ netbsd*) -+ ;; -+ newsos6) -+ ;; -+ nto-qnx) -+ ;; -+ openbsd*) -+ ;; -+ os2*) -+ libname_spec='$name' -+ shrext=.dll -+ ;; -+ osf3* | osf4* | osf5*) -+ ;; -+ sco3.2v5*) -+ ;; -+ solaris*) -+ ;; -+ sunos4*) -+ ;; -+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) -+ ;; -+ sysv4*MP*) -+ ;; -+ uts4*) -+ ;; -+esac -+ -+sed_quote_subst='s/\(["`$\\]\)/\\\1/g' -+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` -+shlibext=`echo "$shrext" | sed -e 's,^\.,,'` -+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -+ -+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF -+ -+# How to pass a linker flag through the compiler. -+wl="$escaped_wl" -+ -+# Static library suffix (normally "a"). -+libext="$libext" -+ -+# Shared library suffix (normally "so"). -+shlibext="$shlibext" -+ -+# Flag to hardcode \$libdir into a binary during linking. -+# This must work even if \$libdir does not exist. -+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" -+ -+# Whether we need a single -rpath flag with a separated argument. -+hardcode_libdir_separator="$hardcode_libdir_separator" -+ -+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the -+# resulting binary. -+hardcode_direct="$hardcode_direct" -+ -+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -+# resulting binary. -+hardcode_minus_L="$hardcode_minus_L" -+ -+EOF ---- lrzsz-0.12.20.safe/configure.in 2004-09-12 14:39:55.161706488 -0400 -+++ lrzsz-0.12.20/configure.in 2004-09-12 14:40:35.816526016 -0400 -@@ -260,11 +260,10 @@ - AM_GNU_GETTEXT - - AC_DEFINE_UNQUOTED(LOCALEDIR,"$prefix/$DATADIRNAME") --AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) - --AC_OUTPUT([Makefile intl/Makefile lib/Makefile testsuite/Makefile \ -+AC_OUTPUT([Makefile intl/Makefile lib/Makefile testsuite/Makefile m4/Makefile \ - man/Makefile po/Makefile.in src/Makefile debian/rules Specfile systype \ - src/lrzszbug], --[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile; -+[ - chmod +x debian/rules; - test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h]) ---- lrzsz-0.12.20.safe/intl/bindtextdom.c 1998-04-26 09:22:36.000000000 -0400 -+++ lrzsz-0.12.20/intl/bindtextdom.c 2004-09-12 14:40:34.343749912 -0400 -@@ -1,59 +1,75 @@ - /* Implementation of the bindtextdomain(3) function -- Copyright (C) 1995, 1996, 1997 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> - #endif - --#if defined STDC_HEADERS || defined _LIBC --# include <stdlib.h> --#else --# ifdef HAVE_MALLOC_H --# include <malloc.h> --# else --void free (); --# endif --#endif -+#include <stddef.h> -+#include <stdlib.h> -+#include <string.h> - --#if defined HAVE_STRING_H || defined _LIBC --# include <string.h> -+#ifdef _LIBC -+# include <libintl.h> - #else --# include <strings.h> --# ifndef memcpy --# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) --# endif -+# include "libgnuintl.h" - #endif -+#include "gettextP.h" - - #ifdef _LIBC --# include <libintl.h> -+/* We have to handle multi-threaded applications. */ -+# include <bits/libc-lock.h> - #else --# include "libgettext.h" -+/* Provide dummy implementation if this is outside glibc. */ -+# define __libc_rwlock_define(CLASS, NAME) -+# define __libc_rwlock_wrlock(NAME) -+# define __libc_rwlock_unlock(NAME) -+#endif -+ -+/* The internal variables in the standalone libintl.a must have different -+ names than the internal variables in GNU libc, otherwise programs -+ using libintl.a cannot be linked statically. */ -+#if !defined _LIBC -+# 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>. */ -+#ifndef offsetof -+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) - #endif --#include "gettext.h" --#include "gettextP.h" - - /* @@ end of prolog @@ */ - - /* 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 attribute_hidden) -+ - - /* Names for the libintl functions are a problem. They must not clash - with existing names and they should follow ANSI C. But this source -@@ -61,23 +77,41 @@ - prefix. So we have to make a difference here. */ - #ifdef _LIBC - # define BINDTEXTDOMAIN __bindtextdomain --# define strdup(str) __strdup (str) -+# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset -+# ifndef strdup -+# define strdup(str) __strdup (str) -+# endif - #else --# define BINDTEXTDOMAIN bindtextdomain__ -+# define BINDTEXTDOMAIN libintl_bindtextdomain -+# define BIND_TEXTDOMAIN_CODESET libintl_bind_textdomain_codeset - #endif - --/* Specify that the DOMAINNAME message catalog will be found -- in DIRNAME rather than in the system locale data base. */ --char * --BINDTEXTDOMAIN (domainname, dirname) -- const char *domainname; -- const char *dirname; -+/* 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 -+ modified, only the current value is returned. -+ If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither -+ modified nor returned. */ -+static void -+set_binding_values (const char *domainname, -+ const char **dirnamep, const char **codesetp) - { - struct binding *binding; -+ int modified; - - /* Some sanity checks. */ - if (domainname == NULL || domainname[0] == '\0') -- return NULL; -+ { -+ if (dirnamep) -+ *dirnamep = NULL; -+ if (codesetp) -+ *codesetp = NULL; -+ return; -+ } -+ -+ __libc_rwlock_wrlock (_nl_state_lock); -+ -+ modified = 0; - - for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) - { -@@ -93,81 +127,173 @@ - } - } - -- if (dirname == NULL) -- /* The current binding has be to returned. */ -- return binding == NULL ? (char *) _nl_default_dirname : binding->dirname; -- - if (binding != NULL) - { -- /* The domain is already bound. If the new value and the old -- one are equal we simply do nothing. Otherwise replace the -- old binding. */ -- if (strcmp (dirname, binding->dirname) != 0) -+ if (dirnamep) - { -- char *new_dirname; -+ const char *dirname = *dirnamep; - -- if (strcmp (dirname, _nl_default_dirname) == 0) -- new_dirname = (char *) _nl_default_dirname; -+ if (dirname == NULL) -+ /* The current binding has be to returned. */ -+ *dirnamep = binding->dirname; - else - { -+ /* The domain is already bound. If the new value and the old -+ one are equal we simply do nothing. Otherwise replace the -+ old binding. */ -+ char *result = binding->dirname; -+ if (strcmp (dirname, result) != 0) -+ { -+ if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0) -+ result = (char *) INTUSE(_nl_default_dirname); -+ else -+ { - #if defined _LIBC || defined HAVE_STRDUP -- new_dirname = strdup (dirname); -- if (new_dirname == NULL) -- return NULL; -+ result = strdup (dirname); - #else -- size_t len = strlen (dirname) + 1; -- new_dirname = (char *) malloc (len); -- if (new_dirname == NULL) -- return NULL; -- -- memcpy (new_dirname, dirname, len); -+ size_t len = strlen (dirname) + 1; -+ result = (char *) malloc (len); -+ if (__builtin_expect (result != NULL, 1)) -+ memcpy (result, dirname, len); - #endif -+ } -+ -+ if (__builtin_expect (result != NULL, 1)) -+ { -+ if (binding->dirname != INTUSE(_nl_default_dirname)) -+ free (binding->dirname); -+ -+ binding->dirname = result; -+ modified = 1; -+ } -+ } -+ *dirnamep = result; - } -+ } - -- if (binding->dirname != _nl_default_dirname) -- free (binding->dirname); -+ if (codesetp) -+ { -+ const char *codeset = *codesetp; - -- binding->dirname = new_dirname; -+ if (codeset == NULL) -+ /* The current binding has be to returned. */ -+ *codesetp = binding->codeset; -+ else -+ { -+ /* The domain is already bound. If the new value and the old -+ one are equal we simply do nothing. Otherwise replace the -+ old binding. */ -+ char *result = binding->codeset; -+ if (result == NULL || strcmp (codeset, result) != 0) -+ { -+#if defined _LIBC || defined HAVE_STRDUP -+ result = strdup (codeset); -+#else -+ size_t len = strlen (codeset) + 1; -+ result = (char *) malloc (len); -+ if (__builtin_expect (result != NULL, 1)) -+ memcpy (result, codeset, len); -+#endif -+ -+ if (__builtin_expect (result != NULL, 1)) -+ { -+ if (binding->codeset != NULL) -+ free (binding->codeset); -+ -+ binding->codeset = result; -+ binding->codeset_cntr++; -+ modified = 1; -+ } -+ } -+ *codesetp = result; -+ } - } - } -+ else if ((dirnamep == NULL || *dirnamep == NULL) -+ && (codesetp == NULL || *codesetp == NULL)) -+ { -+ /* Simply return the default values. */ -+ if (dirnamep) -+ *dirnamep = INTUSE(_nl_default_dirname); -+ if (codesetp) -+ *codesetp = NULL; -+ } - else - { - /* We have to create a new binding. */ -- size_t len; -+ size_t len = strlen (domainname) + 1; - struct binding *new_binding = -- (struct binding *) malloc (sizeof (*new_binding)); -+ (struct binding *) malloc (offsetof (struct binding, domainname) + len); - -- if (new_binding == NULL) -- return NULL; -+ if (__builtin_expect (new_binding == NULL, 0)) -+ goto failed; - -+ memcpy (new_binding->domainname, domainname, len); -+ -+ if (dirnamep) -+ { -+ const char *dirname = *dirnamep; -+ -+ if (dirname == NULL) -+ /* The default value. */ -+ dirname = INTUSE(_nl_default_dirname); -+ else -+ { -+ if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0) -+ dirname = INTUSE(_nl_default_dirname); -+ else -+ { -+ char *result; - #if defined _LIBC || defined HAVE_STRDUP -- new_binding->domainname = strdup (domainname); -- if (new_binding->domainname == NULL) -- return NULL; -+ result = strdup (dirname); -+ if (__builtin_expect (result == NULL, 0)) -+ goto failed_dirname; - #else -- len = strlen (domainname) + 1; -- new_binding->domainname = (char *) malloc (len); -- if (new_binding->domainname == NULL) -- return NULL; -- memcpy (new_binding->domainname, domainname, len); -+ size_t len = strlen (dirname) + 1; -+ result = (char *) malloc (len); -+ if (__builtin_expect (result == NULL, 0)) -+ goto failed_dirname; -+ memcpy (result, dirname, len); - #endif -- -- if (strcmp (dirname, _nl_default_dirname) == 0) -- new_binding->dirname = (char *) _nl_default_dirname; -+ dirname = result; -+ } -+ } -+ *dirnamep = dirname; -+ new_binding->dirname = (char *) dirname; -+ } - else -+ /* The default value. */ -+ new_binding->dirname = (char *) INTUSE(_nl_default_dirname); -+ -+ new_binding->codeset_cntr = 0; -+ -+ if (codesetp) - { -+ const char *codeset = *codesetp; -+ -+ if (codeset != NULL) -+ { -+ char *result; -+ - #if defined _LIBC || defined HAVE_STRDUP -- new_binding->dirname = strdup (dirname); -- if (new_binding->dirname == NULL) -- return NULL; -+ result = strdup (codeset); -+ if (__builtin_expect (result == NULL, 0)) -+ goto failed_codeset; - #else -- len = strlen (dirname) + 1; -- new_binding->dirname = (char *) malloc (len); -- if (new_binding->dirname == NULL) -- return NULL; -- memcpy (new_binding->dirname, dirname, len); -+ size_t len = strlen (codeset) + 1; -+ result = (char *) malloc (len); -+ if (__builtin_expect (result == NULL, 0)) -+ goto failed_codeset; -+ memcpy (result, codeset, len); - #endif -+ codeset = result; -+ new_binding->codeset_cntr++; -+ } -+ *codesetp = codeset; -+ new_binding->codeset = (char *) codeset; - } -+ else -+ new_binding->codeset = NULL; - - /* Now enqueue it. */ - if (_nl_domain_bindings == NULL -@@ -187,13 +313,51 @@ - binding->next = new_binding; - } - -- binding = new_binding; -+ modified = 1; -+ -+ /* Here we deal with memory allocation failures. */ -+ if (0) -+ { -+ failed_codeset: -+ if (new_binding->dirname != INTUSE(_nl_default_dirname)) -+ free (new_binding->dirname); -+ failed_dirname: -+ free (new_binding); -+ failed: -+ if (dirnamep) -+ *dirnamep = NULL; -+ if (codesetp) -+ *codesetp = NULL; -+ } - } - -- return binding->dirname; -+ /* If we modified any binding, we flush the caches. */ -+ if (modified) -+ ++_nl_msg_cat_cntr; -+ -+ __libc_rwlock_unlock (_nl_state_lock); -+} -+ -+/* Specify that the DOMAINNAME message catalog will be found -+ in DIRNAME rather than in the system locale data base. */ -+char * -+BINDTEXTDOMAIN (const char *domainname, const char *dirname) -+{ -+ set_binding_values (domainname, &dirname, NULL); -+ return (char *) dirname; -+} -+ -+/* Specify the character encoding in which the messages from the -+ DOMAINNAME message catalog will be returned. */ -+char * -+BIND_TEXTDOMAIN_CODESET (const char *domainname, const char *codeset) -+{ -+ set_binding_values (domainname, NULL, &codeset); -+ return (char *) codeset; - } - - #ifdef _LIBC --/* Alias for function name in GNU C Library. */ -+/* Aliases for function names in GNU C Library. */ - weak_alias (__bindtextdomain, bindtextdomain); -+weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset); - #endif ---- lrzsz-0.12.20.safe/intl/cat-compat.c 1998-04-26 09:22:37.000000000 -0400 -+++ lrzsz-0.12.20/intl/cat-compat.c 1969-12-31 19:00:00.000000000 -0500 -@@ -1,262 +0,0 @@ --/* Compatibility code for gettext-using-catgets interface. -- Copyright (C) 1995, 1997 Free Software Foundation, Inc. -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2, or (at your option) -- any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software Foundation, -- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -- --#ifdef HAVE_CONFIG_H --# include <config.h> --#endif -- --#include <stdio.h> -- --#ifdef STDC_HEADERS --# include <stdlib.h> --# include <string.h> --#else --char *getenv (); --# ifdef HAVE_MALLOC_H --# include <malloc.h> --# endif --#endif -- --#ifdef HAVE_NL_TYPES_H --# include <nl_types.h> --#endif -- --#include "libgettext.h" -- --/* @@ end of prolog @@ */ -- --/* XPG3 defines the result of `setlocale (category, NULL)' as: -- ``Directs `setlocale()' to query `category' and return the current -- setting of `local'.'' -- However it does not specify the exact format. And even worse: POSIX -- defines this not at all. So we can use this feature only on selected -- system (e.g. those using GNU C Library). */ --#ifdef _LIBC --# define HAVE_LOCALE_NULL --#endif -- --/* The catalog descriptor. */ --static nl_catd catalog = (nl_catd) -1; -- --/* Name of the default catalog. */ --static const char default_catalog_name[] = "messages"; -- --/* Name of currently used catalog. */ --static const char *catalog_name = default_catalog_name; -- --/* Get ID for given string. If not found return -1. */ --static int msg_to_cat_id PARAMS ((const char *msg)); -- --/* Substitution for systems lacking this function in their C library. */ --#if !_LIBC && !HAVE_STPCPY --static char *stpcpy PARAMS ((char *dest, const char *src)); --#endif -- -- --/* Set currently used domain/catalog. */ --char * --textdomain (domainname) -- const char *domainname; --{ -- nl_catd new_catalog; -- char *new_name; -- size_t new_name_len; -- char *lang; -- --#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \ -- && defined HAVE_LOCALE_NULL -- lang = setlocale (LC_MESSAGES, NULL); --#else -- lang = getenv ("LC_ALL"); -- if (lang == NULL || lang[0] == '\0') -- { -- lang = getenv ("LC_MESSAGES"); -- if (lang == NULL || lang[0] == '\0') -- lang = getenv ("LANG"); -- } --#endif -- if (lang == NULL || lang[0] == '\0') -- lang = "C"; -- -- /* See whether name of currently used domain is asked. */ -- if (domainname == NULL) -- return (char *) catalog_name; -- -- if (domainname[0] == '\0') -- domainname = default_catalog_name; -- -- /* Compute length of added path element. */ -- new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang) -- + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1 -- + sizeof (".cat"); -- -- new_name = (char *) malloc (new_name_len); -- if (new_name == NULL) -- return NULL; -- -- strcpy (new_name, PACKAGE); -- new_catalog = catopen (new_name, 0); -- -- if (new_catalog == (nl_catd) -1) -- { -- /* NLSPATH search didn't work, try absolute path */ -- sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang, -- PACKAGE); -- new_catalog = catopen (new_name, 0); -- -- if (new_catalog == (nl_catd) -1) -- { -- free (new_name); -- return (char *) catalog_name; -- } -- } -- -- /* Close old catalog. */ -- if (catalog != (nl_catd) -1) -- catclose (catalog); -- if (catalog_name != default_catalog_name) -- free ((char *) catalog_name); -- -- catalog = new_catalog; -- catalog_name = new_name; -- -- return (char *) catalog_name; --} -- --char * --bindtextdomain (domainname, dirname) -- const char *domainname; -- const char *dirname; --{ --#if HAVE_SETENV || HAVE_PUTENV -- char *old_val, *new_val, *cp; -- size_t new_val_len; -- -- /* This does not make much sense here but to be compatible do it. */ -- if (domainname == NULL) -- return NULL; -- -- /* Compute length of added path element. If we use setenv we don't need -- the first byts for NLSPATH=, but why complicate the code for this -- peanuts. */ -- new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname) -- + sizeof ("/%L/LC_MESSAGES/%N.cat"); -- -- old_val = getenv ("NLSPATH"); -- if (old_val == NULL || old_val[0] == '\0') -- { -- old_val = NULL; -- new_val_len += 1 + sizeof (LOCALEDIR) - 1 -- + sizeof ("/%L/LC_MESSAGES/%N.cat"); -- } -- else -- new_val_len += strlen (old_val); -- -- new_val = (char *) malloc (new_val_len); -- if (new_val == NULL) -- return NULL; -- --# if HAVE_SETENV -- cp = new_val; --# else -- cp = stpcpy (new_val, "NLSPATH="); --# endif -- -- cp = stpcpy (cp, dirname); -- cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:"); -- -- if (old_val == NULL) -- { --# if __STDC__ -- stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat"); --# else -- -- cp = stpcpy (cp, LOCALEDIR); -- stpcpy (cp, "/%L/LC_MESSAGES/%N.cat"); --# endif -- } -- else -- stpcpy (cp, old_val); -- --# if HAVE_SETENV -- setenv ("NLSPATH", new_val, 1); -- free (new_val); --# else -- putenv (new_val); -- /* Do *not* free the environment entry we just entered. It is used -- from now on. */ --# endif -- --#endif -- -- return (char *) domainname; --} -- --#undef gettext --char * --gettext (msg) -- const char *msg; --{ -- int msgid; -- -- if (msg == NULL || catalog == (nl_catd) -1) -- return (char *) msg; -- -- /* Get the message from the catalog. We always use set number 1. -- The message ID is computed by the function `msg_to_cat_id' -- which works on the table generated by `po-to-tbl'. */ -- msgid = msg_to_cat_id (msg); -- if (msgid == -1) -- return (char *) msg; -- -- return catgets (catalog, 1, msgid, (char *) msg); --} -- --/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries -- for the one equal to msg. If it is found return the ID. In case when -- the string is not found return -1. */ --static int --msg_to_cat_id (msg) -- const char *msg; --{ -- int cnt; -- -- for (cnt = 0; cnt < _msg_tbl_length; ++cnt) -- if (strcmp (msg, _msg_tbl[cnt]._msg) == 0) -- return _msg_tbl[cnt]._msg_number; -- -- return -1; --} -- -- --/* @@ begin of epilog @@ */ -- --/* We don't want libintl.a to depend on any other library. So we -- avoid the non-standard function stpcpy. In GNU C Library this -- function is available, though. Also allow the symbol HAVE_STPCPY -- to be defined. */ --#if !_LIBC && !HAVE_STPCPY --static char * --stpcpy (dest, src) -- char *dest; -- const char *src; --{ -- while ((*dest++ = *src++) != '\0') -- /* Do nothing. */ ; -- return dest - 1; --} --#endif ---- lrzsz-0.12.20.safe/intl/ChangeLog 1998-04-26 09:22:35.000000000 -0400 -+++ lrzsz-0.12.20/intl/ChangeLog 2004-09-12 14:40:34.349749000 -0400 -@@ -1,1022 +1,4 @@ --1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com> -- -- * intlh.inst.in: Reformat copyright. -- --1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com> -- -- * dcgettext.c (DCGETTEXT): Remove wrong comment. -- --1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com> -- -- * Makefile.in (install-data): Don't change directory to install. -- --1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com> -- -- * cat-compat.c: Fix copyright. -- -- * localealias.c: Don't define strchr unless !HAVE_STRCHR. -- -- * loadmsgcat.c: Update copyright. Fix typos. -- -- * l10nflist.c: Don't define strchr unless !HAVE_STRCHR. -- (_nl_make_l10nflist): Handle sponsor and revision correctly. -- -- * gettext.c: Update copyright. -- * gettext.h: Likewise. -- * hash-string.h: Likewise. -- -- * finddomain.c: Remoave dead code. Define strchr only if -- !HAVE_STRCHR. -- -- * explodename.c: Include <sys/types.h>. -- -- * explodename.c: Reformat copyright text. -- (_nl_explode_name): Fix typo. -- -- * dcgettext.c: Define and use __set_errno. -- (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is -- not defined. -- -- * bindtextdom.c: Pretty printing. -- --1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com> -- -- * dcgettext.c (guess_category_value): Don't depend on -- HAVE_LC_MESSAGES. We don't need the macro here. -- Patch by Bruno Haible <haible@ilog.fr>. -- -- * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL -- macro. Instead use HAVE_LOCALE_NULL and define it when using -- glibc, as in dcgettext.c. -- Patch by Bruno Haible <haible@ilog.fr>. -- -- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois -- Pinard. -- --Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com> -- -- * Makefile.in: Implement handling of libtool. -- -- * gettextP.h: Change data structures for use of generic lowlevel -- i18n file handling. -- --Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * textdomain.c: Put parentheses around arguments of memcpy macro -- definition. -- * localealias.c: Likewise. -- * l10nflist.c: Likewise. -- * finddomain.c: Likewise. -- * bindtextdom.c: Likewise. -- Reported by Thomas Esken. -- --Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * textdomain.c: Move definition of `memcpy` macro to right -- position. -- --Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using -- bcopy if not already defined. Reported by Thomas Esken. -- * bindtextdom.c: Likewise. -- * l10nflist.c: Likewise. -- * localealias.c: Likewise. -- * textdomain.c: Likewise. -- --Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * Makefile.in (libdir): Change to use exec_prefix instead of -- prefix. Reported by Knut-HvardAksnes <etokna@eto.ericsson.se>. -- --Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * l10nflist.c (_nl_normalize_codeset): We convert to lower case, -- so don't prepend uppercase `ISO' for only numeric arg. -- --Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after -- definition of _GNU_SOURCE. Patch by Roland McGrath. -- -- * Makefile.in (uninstall): Fix another bug with `for' loop and -- empty arguments. Patch by Jim Meyering. Correct name os -- uninstalled files: no intl- prefix anymore. -- -- * Makefile.in (install-data): Again work around shells which -- cannot handle mpty for list. Reported by Jim Meyering. -- --Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * Makefile.in (install): Split goal. Now depend on install-exec -- and install-data. -- (install-exec, install-data): New goals. Created from former -- install goal. -- Reported by Karl Berry. -- --Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * Makefile.in (MKINSTALLDIRS): New variable. Path to -- mkinstalldirs script. -- (install): use MKINSTALLDIRS variable or if the script is not present -- try to find it in the $top_scrdir). -- --Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * l10nflist.c: Linux libc *partly* includes the argz_* functions. -- Grr. Work around by renaming the static version and use macros -- for renaming. -- --Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * l10nflist.c: Correct presence test macros of __argz_* functions. -- -- * l10nflist.c: Include <argz.h> based on test of it instead when -- __argz_* functions are available. -- Reported by Andreas Schwab. -- --Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * explodename.c, l10nflist.c: Define NULL for dumb systems. -- --Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * intlh.inst.in, libgettext.h (dcgettext): Rename local variable -- result to __result to prevent name clash. -- -- * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to -- get prototype for stpcpy and strcasecmp. -- -- * intlh.inst.in, libgettext.h: Move declaration of -- `_nl_msg_cat_cntr' outside __extension__ block to prevent warning -- from gcc's -Wnested-extern option. -- --Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * Makefile.in (install): Remove comment. -- --Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * Makefile.in (install): Work around for another Buglix stupidity. -- Always use an `else' close for `if's. Reported by Nelson Beebe. -- -- * Makefile.in (intlh.inst): Correct typo in phony rule. -- Reported by Nelson Beebe. -- --Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * dcgettext.c (read_alias_file): Rename variable alloca_list to -- block_list as the macro calls assume. -- Patch by Eric Backus. -- -- * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using -- malloc. -- (read_alias_file): Rename varriabe alloca_list to block_list as the -- macro calls assume. -- Patch by Eric Backus. -- -- * l10nflist.c: Correct conditional for <argz.h> inclusion. -- Reported by Roland McGrath. -- -- * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not -- all-@USE_NLS@. -- -- * Makefile.in (install): intlh.inst comes from local dir, not -- $(srcdir). -- -- * Makefile.in (intlh.inst): Special handling of this goal. If -- used in gettext, this is really a rul to construct this file. If -- used in any other package it is defined as a .PHONY rule with -- empty body. -- -- * finddomain.c: Extract locale file information handling into -- l10nfile.c. Rename local stpcpy__ function to stpcpy. -- -- * dcgettext.c (stpcpy): Add local definition. -- -- * l10nflist.c: Solve some portability problems. Patches partly by -- Thomas Esken. Add local definition of stpcpy. -- --Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * intlh.inst.in: Don't depend including <locale.h> on -- HAVE_LOCALE_H. Instead configure must rewrite this fiile -- depending on the result of the configure run. -- -- * Makefile.in (install): libintl.inst is now called intlh.inst. -- Add rules for updating intlh.inst from intlh.inst.in. -- -- * libintl.inst: Renamed to intlh.inst.in. -- -- * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1 -- because gcc has __buitlin_alloca. -- Reported by Roland McGrath. -- --Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * Makefile.in (installcheck): New goal to fulfill needs of -- automake's distcheck. -- -- * Makefile.in (install): Reorder commands so that VERSION is -- found. -- -- * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in -- @datadir@/gettext. -- (COMSRCS): Add l10nfile.c. -- (OBJECTS): Add l10nfile.o. -- (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common). -- (DISTFILE.gettext): Remove $(DISTFILES.common). -- (all-gettext): Remove goal. -- (install): If $(PACKAGE) = gettext install, otherwose do nothing. No -- package but gettext itself should install libintl.h + headers. -- (dist): Extend goal to work for gettext, too. -- (dist-gettext): Remove goal. -- -- * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc. -- --Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from -- find_l10nfile. -- --Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com> -- -- * l10nflist.c (__argz_next): Add definition. -- -- * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca -- code. Use new l10nfile handling. -- -- * localealias.c [!HAVE_ALLOCA]: Add code for handling missing -- alloca code. -- -- * l10nflist.c: Initial revision. -- --Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (all-gettext): New goal. Same as all-yes. -- --Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de> -- -- * Makefile.in (gettextsrcdir): Define using @datadir@. -- --Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware> -- -- * finddomain.c: Include <ctype.h>. Reported by Roland McGrath. -- --Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware> -- -- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing -- with external declaration. -- --Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (all-no): Rename from all_no. -- --Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware> -- -- * gettextP.h [loaded_domain]: Array `successor' must now contain up -- to 63 elements (because of codeset name normalization). -- -- * finddomain.c: Implement codeset name normalization. -- --Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (all): Define to `all-@USE_NLS@'. -- (all-yes, all_no): New goals. `all-no' is noop, `all-yes' -- is former all. -- --Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com> -- -- * localealias.c (alias_compare): Increment string pointers in loop -- of strcasecmp replacement. -- --Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (install-src): Who commented this goal out ? :-) -- --Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware> -- -- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls -- should not effect it because a missing catalog is no error. -- Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>. -- --Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (Makefile): Explicitly use $(SHELL) for running -- shell scripts. -- --Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> -- -- * Makefile.in (install-src): Only install library and header when -- we use the own implementation. Don't do it when using the -- system's gettext or catgets functions. -- -- * dcgettext.c (find_msg): Must not swap domain->hash_size here. -- --Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware> -- -- * localealias.c, libintl.inst, libgettext.h, hash-string.h, -- gettextP.h, finddomain.c, dcgettext.c, cat-compat.c: -- Use PARAMS instead of __P. Suggested by Roland McGrath. -- --Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu> -- -- * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if -- !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty. -- --Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (install-src): -- Install libintl.inst instead of libintl.h.install. -- --Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu> -- -- * cat-compat.c (textdomain): -- Reverse order in which files are tried you load. First -- try local file, when this failed absolute path. -- --Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu> -- -- * cat-compat.c (bindtextdomain): Add missing { }. -- --Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware> -- -- * libintl.inst: Add missing __P definition. Reported by Nelson Beebe. -- -- * Makefile.in: -- Add dummy `all' and `dvi' goals. Reported by Tom Tromey. -- --Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca> -- -- * hash-string.h: Capitalize arguments of macros. -- --Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (DISTFILES): Prevent files names longer than 13 -- characters. libintl.h.glibc->libintl.glibc, -- libintl.h.install->libintl.inst. Reported by Joshua R. Poulson. -- --Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com> -- -- * dcgettext.c: Fix bug in preprocessor conditionals. -- --Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu> -- -- * libgettext.h: Solaris cc does not understand -- #if !SYMBOL1 && !SYMBOL2. Sad but true. -- --Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware> -- -- * hash-string.h (hash_string): -- Fix for machine with >32 bit `unsigned long's. -- -- * dcgettext.c (DCGETTEXT): -- Fix horrible bug in loop for alternative translation. -- --Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware> -- -- * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed: -- Some further simplifications in message number generation. -- --Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware> -- -- * libintl.h.glibc: Use __const instead of const in prototypes. -- -- * Makefile.in (install-src): -- Install libintl.h.install instead of libintl.h. This -- is a stripped-down version. Suggested by Peter Miller. -- -- * libintl.h.install, libintl.h.glibc: Initial revision. -- -- * localealias.c (_nl_expand_alias, read_alias_file): -- Protect prototypes in type casts by __P. -- --Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware> -- -- * hash-string.h: Correct prototype for hash_string. -- --Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware> -- -- * hash-string.h (hash_string): Add prototype. -- -- * gettextP.h: Fix copyright. -- (SWAP): Add prototype. -- --Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware> -- -- * localealias.c (read_alias_file): Forgot sizeof. -- Avoid calling *printf function. This introduces a big overhead. -- Patch by Roland McGrath. -- --Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy. -- -- * finddomain.c (stpcpy): -- Define substitution function local. The macro was to flaky. -- -- * cat-compat.c: Fix typo. -- -- * xopen-msg.sed, linux-msg.sed: -- While bringing message number to right place only accept digits. -- -- * linux-msg.sed, xopen-msg.sed: Now that the counter does not have -- leading 0s we don't need to remove them. Reported by Marcus -- Daniels. -- -- * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in -- dependency. Reported by Marcus Daniels. -- -- * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement. -- Generally cleanup using #if instead of #ifndef. -- -- * Makefile.in: Correct typos in comment. By Franc,ois Pinard. -- --Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (install-src): Don't install libintl.h and libintl.a -- if we use an available gettext implementation. -- --Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware> -- -- * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported -- by Franc,ois Pinard. -- -- * libgettext.h: Use #if instead of #ifdef/#ifndef. -- -- * finddomain.c: -- Comments describing what has to be done should start with FIXME. -- --Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning. -- DISTFILES.common names the files common to both dist goals. -- DISTFILES.gettext are the files only distributed in GNU gettext. -- --Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware> -- -- * dcgettext.c (DCGETTEXT): Correct searching in derived locales. -- This was necessary since a change in _nl_find_msg several weeks -- ago. I really don't know this is still not fixed. -- --Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware> -- -- * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This -- might mark a special condition. -- -- * finddomain.c (make_entry_rec): Don't make illegal entry as decided. -- -- * Makefile.in (dist): Suppress error message when ln failed. -- Get files from $(srcdir) explicitly. -- -- * libgettext.h (gettext_const): Rename to gettext_noop. -- --Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c (make_entry_rec): -- Protect against wrong locale names by testing mask. -- -- * libgettext.h (gettext_const): Add macro definition. -- Capitalize macro arguments. -- --Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c (_nl_find_domain): -- Test for pointer != NULL before accessing value. -- Reported by Tom Tromey. -- -- * gettext.c (NULL): -- Define as (void*)0 instad of 0. Reported by Franc,ois Pinard. -- --Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware> -- -- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering. -- --Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware> -- -- * libgettext.h: Disable dcgettext optimization for Solaris 2.3. -- -- * localealias.c (alias_compare): -- Peter Miller reported that tolower in some systems is -- even dumber than I thought. Protect call by `isupper'. -- --Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (libdir, includedir): New variables. -- (install-src): Install libintl.a and libintl.h in correct dirs. -- --Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c. -- -- * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques. -- -- * localealias.c: -- Fix typo and superflous test. Reported by Christian von Roques. -- --Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c (_nl_find_domain): -- Correct some remainder from the pre-CEN syntax. Now -- we don't have a constant number of successors anymore. -- --Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (DISTFILES): Add libintl.h.glibc. -- -- * Makefile.in (dist-libc): Add goal for packing sources for glibc. -- (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc. -- -- * loadmsgcat.c: Forget to continue #if line. -- -- * localealias.c: -- [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name -- space clean. -- -- * dcgettext.c, finddomain.c: Better comment to last change. -- -- * loadmsgcat.c: -- [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to -- __fstat, __open, __close, __read, __mmap, and __munmap resp -- to keep ANSI C name space clean. -- -- * finddomain.c: -- [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean. -- -- * dcgettext.c: -- [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to -- keep ANSI C name space clean. -- -- * libgettext.h: -- Include sys/types.h for those old SysV systems out there. -- Reported by Francesco Potorti`. -- -- * loadmsgcat.c (use_mmap): Define if compiled for glibc. -- -- * bindtextdom.c: Include all those standard headers -- unconditionally if _LIBC is defined. -- -- * finddomain.c: Fix 2 times defiend -> defined. -- -- * textdomain.c: Include libintl.h instead of libgettext.h when -- compiling for glibc. Include all those standard headers -- unconditionally if _LIBC is defined. -- -- * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc. -- -- * gettext.c: -- Include libintl.h instead of libgettext.h when compiling for glibc. -- Get NULL from stddef.h if we compile for glibc. -- -- * finddomain.c: Include libintl.h instead of libgettext.h when -- compiling for glibc. Include all those standard headers -- unconditionally if _LIBC is defined. -- -- * dcgettext.c: Include all those standard headers unconditionally -- if _LIBC is defined. -- -- * dgettext.c: If compiled in glibc include libintl.h instead of -- libgettext.h. -- (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc. -- -- * dcgettext.c: If compiled in glibc include libintl.h instead of -- libgettext.h. -- (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc. -- -- * bindtextdom.c: -- If compiled in glibc include libintl.h instead of libgettext.h. -- --Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware> -- -- * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0. -- Reported by Marcus Daniels. -- -- * cat-compat.c (bindtextdomain): -- String used in putenv must not be recycled. -- Reported by Marcus Daniels. -- -- * libgettext.h (__USE_GNU_GETTEXT): -- Additional symbol to signal that we use GNU gettext -- library. -- -- * cat-compat.c (bindtextdomain): -- Fix bug with the strange stpcpy replacement. -- Reported by Nelson Beebe. -- --Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware> -- -- * cat-compat.c: Include <string.h> for stpcpy prototype. -- -- * localealias.c (read_alias_file): -- While expand strdup code temporary variable `cp' hided -- higher level variable with same name. Rename to `tp'. -- -- * textdomain.c (textdomain): -- Avoid warning by using temporary variable in strdup code. -- -- * finddomain.c (_nl_find_domain): Remove unused variable `application'. -- --Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware> -- -- * localealias.c (alias_compare): -- Use strcasecmp() only if available. Else use -- implementation in place. -- -- * intl-compat.c: -- Wrapper functions now call *__ functions instead of __*. -- -- * libgettext.h: Declare prototypes for *__ functions instead for __*. -- -- * cat-compat.c, loadmsgcat.c: -- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part -- of the standard libc and so prevent libintl.a from being used -- standalone. -- -- * bindtextdom.c: -- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part -- of the standard libc and so prevent libintl.a from being used -- standalone. -- Rename to bindtextdomain__ if not used in GNU C Library. -- -- * dgettext.c: -- Rename function to dgettext__ if not used in GNU C Library. -- -- * gettext.c: -- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part -- of the standard libc and so prevent libintl.a from being used -- standalone. -- Functions now called gettext__ if not used in GNU C Library. -- -- * dcgettext.c, localealias.c, textdomain.c, finddomain.c: -- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part -- of the standard libc and so prevent libintl.a from being used -- standalone. -- --Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c: Correct some bugs in handling of CEN standard -- locale definitions. -- --Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c: Implement CEN syntax. -- -- * gettextP.h (loaded_domain): Extend number of successors to 31. -- --Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (aliaspath): Remove path to X11 locale dir. -- -- * Makefile.in: Make install-src depend on install. This helps -- gettext to install the sources and other packages can use the -- install goal. -- --Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (uninstall): Remove stuff installed by install-src. -- --Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware> -- -- * VERSION.in: Initial revision. -- -- * Makefile.in (DISTFILES): -- Add VERSION file. This is not necessary for gettext, but -- for other packages using this library. -- --Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware> -- -- * gettextP.h (_nl_find_domain): -- New prototype after changing search strategy. -- -- * finddomain.c (_nl_find_domain): -- We now try only to find a specified catalog. Fall back to other -- catalogs listed in the locale list is now done in __dcgettext. -- -- * dcgettext.c (__dcgettext): -- Now we provide message fall back even to different languages. -- I.e. if a message is not available in one language all the other -- in the locale list a tried. Formerly fall back was only possible -- within one language. Implemented by moving one loop from -- _nl_find_domain to here. -- --Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (gettextsrcdir): -- Directory where source of GNU gettext library are made -- available. -- (INSTALL, INSTALL_DATA): Programs used for installing sources. -- (gettext-src): New. Rule to install GNU gettext sources for use in -- gettextize shell script. -- --Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware> -- -- * loadmsgcat.c (_nl_load_domain): -- Use mmap for loading only when munmap function is -- also available. -- -- * Makefile.in (install): Depend on `all' goal. -- --Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware> -- -- * localealias.c (read_alias_file): -- Do not overwrite '\n' when terminating alias value string. -- -- * localealias.c (read_alias_file): -- Handle long lines. Ignore the rest not fitting in -- the buffer after the initial `fgets' call. -- --Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware> -- -- * gettextP.h (_nl_load_domain): -- Add prototype, replacing prototype for _nl_load_msg_cat. -- -- * finddomain.c (_nl_find_domain): -- Remove unneeded variable filename and filename_len. -- (expand_alias): Remove prototype because functions does not -- exist anymore. -- -- * localealias.c (read_alias_file): -- Change type of fname_len parameter to int. -- (xmalloc): Add prototype. -- -- * loadmsgcat.c: Better prototypes for xmalloc. -- --Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c (_nl_find_domain): -- Allow alias name to be constructed from the four components. -- -- * Makefile.in (aliaspath): New variable. Set to preliminary value. -- (SOURCES): Add localealias.c. -- (OBJECTS): Add localealias.o. -- -- * gettextP.h: Add prototype for _nl_expand_alias. -- -- * finddomain.c: Aliasing handled in intl/localealias.c. -- -- * localealias.c: Aliasing for locale names. -- -- * bindtextdom.c: Better prototypes for xmalloc and xstrdup. -- --Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (DISTFILES): gettext.perl is now found in misc/. -- -- * cat-compat.c (bindtextdomain): -- Correct implementation. dirname parameter was not used. -- Reported by Marcus Daniels. -- -- * gettextP.h (loaded_domain): -- New fields `successor' and `decided' for oo, lazy -- message handling implementation. -- -- * dcgettext.c: -- Adopt for oo, lazy message handliing. -- Now we can inherit translations from less specific locales. -- (find_msg): New function. -- -- * loadmsgcat.c, finddomain.c: -- Complete rewrite. Implement oo, lazy message handling :-). -- We now have an additional environment variable `LANGUAGE' with -- a higher priority than LC_ALL for the LC_MESSAGE locale. -- Here we can set a colon separated list of specifications each -- of the form `language[_territory[.codeset]][@modifier]'. -- --Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c (unistd.h): -- Include to get _PC_PATH_MAX defined on system having it. -- --Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware> -- -- * finddomain.c (stpcpy): Include prototype. -- -- * Makefile.in (dist): Remove `copying instead' message. -- --Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (ID, TAGS): Do not use $^. -- --Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (TAGS, ID): Use $^ as command argument. -- (TAGS): Give etags -o option t write to current directory, -- not $(srcdir). -- (ID): Use $(srcdir) instead os $(top_srcdir)/src. -- (distclean): Remove ID. -- --Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (gnulocaledir): -- New variable, always using share/ for data directory. -- (DEFS): Add GNULOCALEDIR, used in finddomain.c. -- -- * finddomain.c (_nl_default_dirname): -- Set to GNULOCALEDIR, because it always has to point -- to the directory where GNU gettext Library writes it to. -- -- * intl-compat.c (textdomain, bindtextdomain): -- Undefine macros before function definition. -- --Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware> -- -- * libgettext.h (_LIBINTL_H): -- Protect definition in case where this file is included as -- libgettext.h on Solaris machines. Add comment about this. -- --Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware> -- -- * intl-compat.c (textdomain): Correct typo. -- --Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware> -- -- * dcgettext.c (dcgettext): Function now called __dcgettext. -- -- * dgettext.c (dgettext): Now called __dgettext and calls -- __dcgettext. -- -- * gettext.c (gettext): -- Function now called __gettext and calls __dgettext. -- -- * textdomain.c (textdomain): Function now called __textdomain. -- -- * bindtextdom.c (bindtextdomain): Function now called -- __bindtextdomain. -- -- * intl-compat.c: Initial revision. -- -- * Makefile.in (SOURCES): Add intl-compat.c. -- (OBJECTS): We always compile the GNU gettext library functions. -- OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o, -- and intl-compat.o. -- (GETTOBJS): Contains now only intl-compat.o. -- -- * libgettext.h: -- Re-include protection matches dualistic character of libgettext.h. -- For all functions in GNU gettext library define __ counter part. -- -- * finddomain.c (strchr): Define as index if not found in C library. -- (_nl_find_domain): For relative paths paste / in between. -- --Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware> -- -- * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h. -- -- * xopen-msg.sed: Fix bug with `msgstr ""' lines. -- A little bit better comments. -- --Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in: -- po-mode.el, makelinks, combine-sh are now found in ../misc. -- -- * po-mode.el, makelinks, combine-sh, elisp-comp: -- Moved to ../misc/. -- -- * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__. -- --Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (INSTALL, INSTALL_DATA): New variables. -- (install-data, uninstall): Install/uninstall .elc file. -- -- * po-mode.el (Installation comment): -- Add .pox as possible extension of .po files. -- --Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware> -- -- * elisp-comp: Complete new version by Franc,ois: This does not -- fail when not compiling in the source directory. -- --Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (../po/cat-id-tbl.o): -- Use $(MAKE) instead of make for recursive make. -- -- * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh. -- (install-exec): Add missing dummy goal. -- (install-data, uninstall): @ in multi-line shell command at -- beginning, not in front of echo. Reported by Eric Backus. -- --Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (DISTFILES): -- Rename libgettext.perl to gettext.perl to fit in 14 chars -- file systems. -- -- * gettext.perl: -- Rename to gettext.perl to fit in 14 chars file systems. -- --Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware> -- -- * cat-compat.c: If !STDC_HEADERS try to include malloc.h. -- --Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware> -- -- * po2tbl.sed.in: Pretty printing. -- -- * linux-msg.sed, xopen-msg.sed: -- Correct bugs with handling substitute flags in branches. -- -- * hash-string.h (hash_string): -- Old K&R compilers don't under stand `unsigned char'. -- -- * gettext.h (nls_uint32): -- Some old K&R compilers (eg HP) don't understand `unsigned int'. -- -- * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes. -- --Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (ELCFILES): New variable. -- (DISTFILES): Add elisp-comp. -- Add implicit rule for .el -> .elc compilation. -- (install-data): install $ELCFILES -- (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp. -- -- * elisp-comp: Initial revision -- --Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in: -- cat-id-tbl.c is now found in po/. This enables us to use an identical -- intl/ directory in all packages. -- -- * dcgettext.c (dcgettext): hashing does not work for table size <= 2. -- -- * textdomain.c: fix typo (#if def -> #if defined) -- --Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in (stamp-cat-id): use top_srcdir to address source files -- (DISTFILES,distclean): move tupdate.perl to src/ -- -- * po-to-tbl.sed.in: -- add additional jump to clear change flag to recognize multiline strings -- --Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware> -- -- * textdomain.c: Protect inclusion of stdlib.h and string.h. -- -- * loadmsgcat.c: Protect inclusion of stdlib.h. -- -- * libgettext.h: Protect inclusion of locale.h. -- Allow use in C++ programs. -- Define NULL is not happened already. -- -- * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of -- po-to-tbl.sed. -- (distclean): remove po-to-tbl.sed and tupdate.perl. -- -- * tupdate.perl.in: Substitute Perl path even in exec line. -- Don't include entries without translation from old .po file. -- --Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware> -- -- * tupdate.perl.in: use "Updated: " in msgid "". -- -- * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR). -- Define getenv if !__STDC__. -- -- * bindtextdom.c: Protect stdlib.h and string.h inclusion. -- Define free if !__STDC__. -- -- * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. -- Define free if !__STDC__. -- -- * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. -- --Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware> -- -- * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR. -- Remove unneeded $(srcdir) from Makefile.in dependency. -- -- * makelinks: Add copyright and short description. -- -- * po-mode.el: Last version for 0.7. -- -- * tupdate.perl.in: Fix die message. -- -- * dcgettext.c: Protect include of string.h. -- -- * gettext.c: Protect include of stdlib.h and further tries to get NULL. -- -- * finddomain.c: Some corrections in includes. -- -- * Makefile.in (INCLUDES): Prune list correct path to Makefile.in. -- -- * po-to-tbl.sed: Adopt for new .po file format. -- -- * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format. -- --Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware> -- -- * tupdate.perl.in: Complete rewrite for new .po file format. -+2004-01-29 GNU <bug-gnu-gettext@gnu.org> - --Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware> -+ * Version 0.14.1 released. - -- * First official release. This directory contains all the code -- needed to internationalize own packages. It provides functions -- which allow to use the X/Open catgets function with an interface -- like the Uniforum gettext function. For system which does not -- have neither of those a complete implementation is provided. ---- lrzsz-0.12.20.safe/intl/config.charset 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/config.charset 2004-09-12 14:40:34.354748240 -0400 -@@ -0,0 +1,608 @@ -+#! /bin/sh -+# Output a system dependent table of character encoding aliases. -+# -+# Copyright (C) 2000-2004 Free Software Foundation, Inc. -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Library General Public License as published -+# 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. -+# -+# The table consists of lines of the form -+# ALIAS CANONICAL -+# -+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". -+# ALIAS is compared in a case sensitive way. -+# -+# CANONICAL is the GNU canonical name for this character encoding. -+# It must be an encoding supported by libiconv. Support by GNU libc is -+# also desirable. CANONICAL is case insensitive. Usually an upper case -+# MIME charset name is preferred. -+# The current list of GNU canonical charset names is as follows. -+# -+# name MIME? used by which systems -+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd darwin -+# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd darwin -+# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd darwin -+# ISO-8859-3 Y glibc solaris -+# ISO-8859-4 Y osf solaris freebsd darwin -+# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd darwin -+# ISO-8859-6 Y glibc aix hpux solaris -+# ISO-8859-7 Y glibc aix hpux irix osf solaris -+# ISO-8859-8 Y glibc aix hpux osf solaris -+# ISO-8859-9 Y glibc aix hpux irix osf solaris -+# ISO-8859-13 glibc -+# ISO-8859-14 glibc -+# ISO-8859-15 glibc aix osf solaris freebsd -+# KOI8-R Y glibc solaris freebsd darwin -+# KOI8-U Y glibc freebsd darwin -+# KOI8-T glibc -+# CP437 dos -+# CP775 dos -+# CP850 aix osf dos -+# CP852 dos -+# CP855 dos -+# CP856 aix -+# CP857 dos -+# CP861 dos -+# CP862 dos -+# CP864 dos -+# CP865 dos -+# CP866 freebsd darwin dos -+# CP869 dos -+# CP874 woe32 dos -+# CP922 aix -+# CP932 aix woe32 dos -+# CP943 aix -+# CP949 osf woe32 dos -+# CP950 woe32 dos -+# CP1046 aix -+# CP1124 aix -+# CP1125 dos -+# CP1129 aix -+# CP1250 woe32 -+# CP1251 glibc solaris darwin woe32 -+# CP1252 aix woe32 -+# CP1253 woe32 -+# CP1254 woe32 -+# CP1255 glibc woe32 -+# CP1256 woe32 -+# CP1257 woe32 -+# GB2312 Y glibc aix hpux irix solaris freebsd darwin -+# EUC-JP Y glibc aix hpux irix osf solaris freebsd darwin -+# EUC-KR Y glibc aix hpux irix osf solaris freebsd darwin -+# EUC-TW glibc aix hpux irix osf solaris -+# BIG5 Y glibc aix hpux osf solaris freebsd darwin -+# BIG5-HKSCS glibc solaris -+# GBK glibc aix osf solaris woe32 dos -+# GB18030 glibc solaris -+# SHIFT_JIS Y hpux osf solaris freebsd darwin -+# JOHAB glibc solaris woe32 -+# TIS-620 glibc aix hpux osf solaris -+# VISCII Y glibc -+# TCVN5712-1 glibc -+# GEORGIAN-PS glibc -+# HP-ROMAN8 hpux -+# HP-ARABIC8 hpux -+# HP-GREEK8 hpux -+# HP-HEBREW8 hpux -+# HP-TURKISH8 hpux -+# HP-KANA8 hpux -+# DEC-KANJI osf -+# DEC-HANYU osf -+# UTF-8 Y glibc aix hpux osf solaris -+# -+# Note: Names which are not marked as being a MIME name should not be used in -+# Internet protocols for information interchange (mail, news, etc.). -+# -+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications -+# must understand both names and treat them as equivalent. -+# -+# The first argument passed to this file is the canonical host specification, -+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -+# or -+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -+ -+host="$1" -+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` -+echo "# This file contains a table of character encoding aliases," -+echo "# suitable for operating system '${os}'." -+echo "# It was automatically generated from config.charset." -+# List of references, updated during installation: -+echo "# Packages using this file: " -+case "$os" in -+ linux-gnulibc1*) -+ # Linux libc5 doesn't have nl_langinfo(CODESET); therefore -+ # localcharset.c falls back to using the full locale name -+ # from the environment variables. -+ echo "C ASCII" -+ echo "POSIX ASCII" -+ for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ -+ en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ -+ en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ -+ es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ -+ et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ -+ fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ -+ it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ -+ sv_FI sv_SE; do -+ echo "$l ISO-8859-1" -+ echo "$l.iso-8859-1 ISO-8859-1" -+ echo "$l.iso-8859-15 ISO-8859-15" -+ echo "$l.iso-8859-15@euro ISO-8859-15" -+ echo "$l@euro ISO-8859-15" -+ echo "$l.cp-437 CP437" -+ echo "$l.cp-850 CP850" -+ echo "$l.cp-1252 CP1252" -+ echo "$l.cp-1252@euro CP1252" -+ #echo "$l.atari-st ATARI-ST" # not a commonly used encoding -+ echo "$l.utf-8 UTF-8" -+ echo "$l.utf-8@euro UTF-8" -+ done -+ for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ -+ sl_SI sr sr_CS sr_YU; do -+ echo "$l ISO-8859-2" -+ echo "$l.iso-8859-2 ISO-8859-2" -+ echo "$l.cp-852 CP852" -+ echo "$l.cp-1250 CP1250" -+ echo "$l.utf-8 UTF-8" -+ done -+ for l in mk mk_MK ru ru_RU; do -+ echo "$l ISO-8859-5" -+ echo "$l.iso-8859-5 ISO-8859-5" -+ echo "$l.koi8-r KOI8-R" -+ echo "$l.cp-866 CP866" -+ echo "$l.cp-1251 CP1251" -+ echo "$l.utf-8 UTF-8" -+ done -+ for l in ar ar_SA; do -+ echo "$l ISO-8859-6" -+ echo "$l.iso-8859-6 ISO-8859-6" -+ echo "$l.cp-864 CP864" -+ #echo "$l.cp-868 CP868" # not a commonly used encoding -+ echo "$l.cp-1256 CP1256" -+ echo "$l.utf-8 UTF-8" -+ done -+ for l in el el_GR gr gr_GR; do -+ echo "$l ISO-8859-7" -+ echo "$l.iso-8859-7 ISO-8859-7" -+ echo "$l.cp-869 CP869" -+ echo "$l.cp-1253 CP1253" -+ echo "$l.cp-1253@euro CP1253" -+ echo "$l.utf-8 UTF-8" -+ echo "$l.utf-8@euro UTF-8" -+ done -+ for l in he he_IL iw iw_IL; do -+ echo "$l ISO-8859-8" -+ echo "$l.iso-8859-8 ISO-8859-8" -+ echo "$l.cp-862 CP862" -+ echo "$l.cp-1255 CP1255" -+ echo "$l.utf-8 UTF-8" -+ done -+ for l in tr tr_TR; do -+ echo "$l ISO-8859-9" -+ echo "$l.iso-8859-9 ISO-8859-9" -+ echo "$l.cp-857 CP857" -+ echo "$l.cp-1254 CP1254" -+ echo "$l.utf-8 UTF-8" -+ done -+ for l in lt lt_LT lv lv_LV; do -+ #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name -+ echo "$l ISO-8859-13" -+ done -+ for l in ru_UA uk uk_UA; do -+ echo "$l KOI8-U" -+ done -+ for l in zh zh_CN; do -+ #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name -+ echo "$l GB2312" -+ done -+ for l in ja ja_JP ja_JP.EUC; do -+ echo "$l EUC-JP" -+ done -+ for l in ko ko_KR; do -+ echo "$l EUC-KR" -+ done -+ for l in th th_TH; do -+ echo "$l TIS-620" -+ done -+ for l in fa fa_IR; do -+ #echo "$l ISIRI-3342" # a broken encoding -+ echo "$l.utf-8 UTF-8" -+ done -+ ;; -+ linux* | *-gnu*) -+ # With glibc-2.1 or newer, we don't need any canonicalization, -+ # because glibc has iconv and both glibc and libiconv support all -+ # GNU canonical names directly. Therefore, the Makefile does not -+ # need to install the alias file at all. -+ # The following applies only to glibc-2.0.x and older libcs. -+ echo "ISO_646.IRV:1983 ASCII" -+ ;; -+ aix*) -+ echo "ISO8859-1 ISO-8859-1" -+ echo "ISO8859-2 ISO-8859-2" -+ echo "ISO8859-5 ISO-8859-5" -+ echo "ISO8859-6 ISO-8859-6" -+ echo "ISO8859-7 ISO-8859-7" -+ echo "ISO8859-8 ISO-8859-8" -+ echo "ISO8859-9 ISO-8859-9" -+ echo "ISO8859-15 ISO-8859-15" -+ echo "IBM-850 CP850" -+ echo "IBM-856 CP856" -+ echo "IBM-921 ISO-8859-13" -+ echo "IBM-922 CP922" -+ echo "IBM-932 CP932" -+ echo "IBM-943 CP943" -+ echo "IBM-1046 CP1046" -+ echo "IBM-1124 CP1124" -+ echo "IBM-1129 CP1129" -+ echo "IBM-1252 CP1252" -+ echo "IBM-eucCN GB2312" -+ echo "IBM-eucJP EUC-JP" -+ echo "IBM-eucKR EUC-KR" -+ echo "IBM-eucTW EUC-TW" -+ echo "big5 BIG5" -+ echo "GBK GBK" -+ echo "TIS-620 TIS-620" -+ echo "UTF-8 UTF-8" -+ ;; -+ hpux*) -+ echo "iso88591 ISO-8859-1" -+ echo "iso88592 ISO-8859-2" -+ echo "iso88595 ISO-8859-5" -+ echo "iso88596 ISO-8859-6" -+ echo "iso88597 ISO-8859-7" -+ echo "iso88598 ISO-8859-8" -+ echo "iso88599 ISO-8859-9" -+ echo "iso885915 ISO-8859-15" -+ echo "roman8 HP-ROMAN8" -+ echo "arabic8 HP-ARABIC8" -+ echo "greek8 HP-GREEK8" -+ echo "hebrew8 HP-HEBREW8" -+ echo "turkish8 HP-TURKISH8" -+ echo "kana8 HP-KANA8" -+ echo "tis620 TIS-620" -+ echo "big5 BIG5" -+ echo "eucJP EUC-JP" -+ echo "eucKR EUC-KR" -+ echo "eucTW EUC-TW" -+ echo "hp15CN GB2312" -+ #echo "ccdc ?" # what is this? -+ echo "SJIS SHIFT_JIS" -+ echo "utf8 UTF-8" -+ ;; -+ irix*) -+ echo "ISO8859-1 ISO-8859-1" -+ echo "ISO8859-2 ISO-8859-2" -+ echo "ISO8859-5 ISO-8859-5" -+ echo "ISO8859-7 ISO-8859-7" -+ echo "ISO8859-9 ISO-8859-9" -+ echo "eucCN GB2312" -+ echo "eucJP EUC-JP" -+ echo "eucKR EUC-KR" -+ echo "eucTW EUC-TW" -+ ;; -+ osf*) -+ echo "ISO8859-1 ISO-8859-1" -+ echo "ISO8859-2 ISO-8859-2" -+ echo "ISO8859-4 ISO-8859-4" -+ echo "ISO8859-5 ISO-8859-5" -+ echo "ISO8859-7 ISO-8859-7" -+ echo "ISO8859-8 ISO-8859-8" -+ echo "ISO8859-9 ISO-8859-9" -+ echo "ISO8859-15 ISO-8859-15" -+ echo "cp850 CP850" -+ echo "big5 BIG5" -+ echo "dechanyu DEC-HANYU" -+ echo "dechanzi GB2312" -+ echo "deckanji DEC-KANJI" -+ echo "deckorean EUC-KR" -+ echo "eucJP EUC-JP" -+ echo "eucKR EUC-KR" -+ echo "eucTW EUC-TW" -+ echo "GBK GBK" -+ echo "KSC5601 CP949" -+ echo "sdeckanji EUC-JP" -+ echo "SJIS SHIFT_JIS" -+ echo "TACTIS TIS-620" -+ echo "UTF-8 UTF-8" -+ ;; -+ solaris*) -+ echo "646 ASCII" -+ echo "ISO8859-1 ISO-8859-1" -+ echo "ISO8859-2 ISO-8859-2" -+ echo "ISO8859-3 ISO-8859-3" -+ echo "ISO8859-4 ISO-8859-4" -+ echo "ISO8859-5 ISO-8859-5" -+ echo "ISO8859-6 ISO-8859-6" -+ echo "ISO8859-7 ISO-8859-7" -+ echo "ISO8859-8 ISO-8859-8" -+ echo "ISO8859-9 ISO-8859-9" -+ echo "ISO8859-15 ISO-8859-15" -+ echo "koi8-r KOI8-R" -+ echo "ansi-1251 CP1251" -+ echo "BIG5 BIG5" -+ echo "Big5-HKSCS BIG5-HKSCS" -+ echo "gb2312 GB2312" -+ echo "GBK GBK" -+ echo "GB18030 GB18030" -+ echo "cns11643 EUC-TW" -+ echo "5601 EUC-KR" -+ echo "ko_KR.johap92 JOHAB" -+ echo "eucJP EUC-JP" -+ echo "PCK SHIFT_JIS" -+ echo "TIS620.2533 TIS-620" -+ #echo "sun_eu_greek ?" # what is this? -+ echo "UTF-8 UTF-8" -+ ;; -+ freebsd* | os2*) -+ # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore -+ # localcharset.c falls back to using the full locale name -+ # from the environment variables. -+ # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just -+ # reuse FreeBSD's locale data for OS/2. -+ echo "C ASCII" -+ echo "US-ASCII ASCII" -+ for l in la_LN lt_LN; do -+ echo "$l.ASCII ASCII" -+ done -+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ -+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ -+ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do -+ echo "$l.ISO_8859-1 ISO-8859-1" -+ echo "$l.DIS_8859-15 ISO-8859-15" -+ done -+ for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do -+ echo "$l.ISO_8859-2 ISO-8859-2" -+ done -+ for l in la_LN lt_LT; do -+ echo "$l.ISO_8859-4 ISO-8859-4" -+ done -+ for l in ru_RU ru_SU; do -+ echo "$l.KOI8-R KOI8-R" -+ echo "$l.ISO_8859-5 ISO-8859-5" -+ echo "$l.CP866 CP866" -+ done -+ echo "uk_UA.KOI8-U KOI8-U" -+ echo "zh_TW.BIG5 BIG5" -+ echo "zh_TW.Big5 BIG5" -+ echo "zh_CN.EUC GB2312" -+ echo "ja_JP.EUC EUC-JP" -+ echo "ja_JP.SJIS SHIFT_JIS" -+ echo "ja_JP.Shift_JIS SHIFT_JIS" -+ echo "ko_KR.EUC EUC-KR" -+ ;; -+ netbsd*) -+ echo "646 ASCII" -+ echo "ISO8859-1 ISO-8859-1" -+ echo "ISO8859-2 ISO-8859-2" -+ echo "ISO8859-4 ISO-8859-4" -+ echo "ISO8859-5 ISO-8859-5" -+ echo "ISO8859-15 ISO-8859-15" -+ echo "eucCN GB2312" -+ echo "eucJP EUC-JP" -+ echo "eucKR EUC-KR" -+ echo "eucTW EUC-TW" -+ echo "BIG5 BIG5" -+ echo "SJIS SHIFT_JIS" -+ ;; -+ darwin*) -+ # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore -+ # localcharset.c falls back to using the full locale name -+ # from the environment variables. -+ echo "C ASCII" -+ for l in en_AU en_CA en_GB en_US la_LN; do -+ echo "$l.US-ASCII ASCII" -+ done -+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ -+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ -+ nl_NL no_NO pt_PT sv_SE; do -+ echo "$l ISO-8859-1" -+ echo "$l.ISO8859-1 ISO-8859-1" -+ echo "$l.ISO8859-15 ISO-8859-15" -+ done -+ for l in la_LN; do -+ echo "$l.ISO8859-1 ISO-8859-1" -+ echo "$l.ISO8859-15 ISO-8859-15" -+ done -+ for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do -+ echo "$l.ISO8859-2 ISO-8859-2" -+ done -+ for l in la_LN lt_LT; do -+ echo "$l.ISO8859-4 ISO-8859-4" -+ done -+ for l in ru_RU; do -+ echo "$l.KOI8-R KOI8-R" -+ echo "$l.ISO8859-5 ISO-8859-5" -+ echo "$l.CP866 CP866" -+ done -+ for l in bg_BG; do -+ echo "$l.CP1251 CP1251" -+ done -+ echo "uk_UA.KOI8-U KOI8-U" -+ echo "zh_TW.BIG5 BIG5" -+ echo "zh_TW.Big5 BIG5" -+ echo "zh_CN.EUC GB2312" -+ echo "ja_JP.EUC EUC-JP" -+ echo "ja_JP.SJIS SHIFT_JIS" -+ echo "ko_KR.EUC EUC-KR" -+ ;; -+ beos*) -+ # BeOS has a single locale, and it has UTF-8 encoding. -+ echo "* UTF-8" -+ ;; -+ msdosdjgpp*) -+ # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore -+ # localcharset.c falls back to using the full locale name -+ # from the environment variables. -+ echo "#" -+ echo "# The encodings given here may not all be correct." -+ echo "# If you find that the encoding given for your language and" -+ echo "# country is not the one your DOS machine actually uses, just" -+ echo "# correct it in this file, and send a mail to" -+ echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>" -+ echo "# and Bruno Haible <bruno@clisp.org>." -+ echo "#" -+ echo "C ASCII" -+ # ISO-8859-1 languages -+ echo "ca CP850" -+ echo "ca_ES CP850" -+ echo "da CP865" # not CP850 ?? -+ echo "da_DK CP865" # not CP850 ?? -+ echo "de CP850" -+ echo "de_AT CP850" -+ echo "de_CH CP850" -+ echo "de_DE CP850" -+ echo "en CP850" -+ echo "en_AU CP850" # not CP437 ?? -+ echo "en_CA CP850" -+ echo "en_GB CP850" -+ echo "en_NZ CP437" -+ echo "en_US CP437" -+ echo "en_ZA CP850" # not CP437 ?? -+ echo "es CP850" -+ echo "es_AR CP850" -+ echo "es_BO CP850" -+ echo "es_CL CP850" -+ echo "es_CO CP850" -+ echo "es_CR CP850" -+ echo "es_CU CP850" -+ echo "es_DO CP850" -+ echo "es_EC CP850" -+ echo "es_ES CP850" -+ echo "es_GT CP850" -+ echo "es_HN CP850" -+ echo "es_MX CP850" -+ echo "es_NI CP850" -+ echo "es_PA CP850" -+ echo "es_PY CP850" -+ echo "es_PE CP850" -+ echo "es_SV CP850" -+ echo "es_UY CP850" -+ echo "es_VE CP850" -+ echo "et CP850" -+ echo "et_EE CP850" -+ echo "eu CP850" -+ echo "eu_ES CP850" -+ echo "fi CP850" -+ echo "fi_FI CP850" -+ echo "fr CP850" -+ echo "fr_BE CP850" -+ echo "fr_CA CP850" -+ echo "fr_CH CP850" -+ echo "fr_FR CP850" -+ echo "ga CP850" -+ echo "ga_IE CP850" -+ echo "gd CP850" -+ echo "gd_GB CP850" -+ echo "gl CP850" -+ echo "gl_ES CP850" -+ echo "id CP850" # not CP437 ?? -+ echo "id_ID CP850" # not CP437 ?? -+ echo "is CP861" # not CP850 ?? -+ echo "is_IS CP861" # not CP850 ?? -+ echo "it CP850" -+ echo "it_CH CP850" -+ echo "it_IT CP850" -+ echo "lt CP775" -+ echo "lt_LT CP775" -+ echo "lv CP775" -+ echo "lv_LV CP775" -+ echo "nb CP865" # not CP850 ?? -+ echo "nb_NO CP865" # not CP850 ?? -+ echo "nl CP850" -+ echo "nl_BE CP850" -+ echo "nl_NL CP850" -+ echo "nn CP865" # not CP850 ?? -+ echo "nn_NO CP865" # not CP850 ?? -+ echo "no CP865" # not CP850 ?? -+ echo "no_NO CP865" # not CP850 ?? -+ echo "pt CP850" -+ echo "pt_BR CP850" -+ echo "pt_PT CP850" -+ echo "sv CP850" -+ echo "sv_SE CP850" -+ # ISO-8859-2 languages -+ echo "cs CP852" -+ echo "cs_CZ CP852" -+ echo "hr CP852" -+ echo "hr_HR CP852" -+ echo "hu CP852" -+ echo "hu_HU CP852" -+ echo "pl CP852" -+ echo "pl_PL CP852" -+ echo "ro CP852" -+ echo "ro_RO CP852" -+ echo "sk CP852" -+ echo "sk_SK CP852" -+ echo "sl CP852" -+ echo "sl_SI CP852" -+ echo "sq CP852" -+ echo "sq_AL CP852" -+ echo "sr CP852" # CP852 or CP866 or CP855 ?? -+ echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? -+ echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? -+ # ISO-8859-3 languages -+ echo "mt CP850" -+ echo "mt_MT CP850" -+ # ISO-8859-5 languages -+ echo "be CP866" -+ echo "be_BE CP866" -+ echo "bg CP866" # not CP855 ?? -+ echo "bg_BG CP866" # not CP855 ?? -+ echo "mk CP866" # not CP855 ?? -+ echo "mk_MK CP866" # not CP855 ?? -+ echo "ru CP866" -+ echo "ru_RU CP866" -+ echo "uk CP1125" -+ echo "uk_UA CP1125" -+ # ISO-8859-6 languages -+ echo "ar CP864" -+ echo "ar_AE CP864" -+ echo "ar_DZ CP864" -+ echo "ar_EG CP864" -+ echo "ar_IQ CP864" -+ echo "ar_IR CP864" -+ echo "ar_JO CP864" -+ echo "ar_KW CP864" -+ echo "ar_MA CP864" -+ echo "ar_OM CP864" -+ echo "ar_QA CP864" -+ echo "ar_SA CP864" -+ echo "ar_SY CP864" -+ # ISO-8859-7 languages -+ echo "el CP869" -+ echo "el_GR CP869" -+ # ISO-8859-8 languages -+ echo "he CP862" -+ echo "he_IL CP862" -+ # ISO-8859-9 languages -+ echo "tr CP857" -+ echo "tr_TR CP857" -+ # Japanese -+ echo "ja CP932" -+ echo "ja_JP CP932" -+ # Chinese -+ echo "zh_CN GBK" -+ echo "zh_TW CP950" # not CP938 ?? -+ # Korean -+ echo "kr CP949" # not CP934 ?? -+ echo "kr_KR CP949" # not CP934 ?? -+ # Thai -+ echo "th CP874" -+ echo "th_TH CP874" -+ # Other -+ echo "eo CP850" -+ echo "eo_EO CP850" -+ ;; -+esac ---- lrzsz-0.12.20.safe/intl/dcgettext.c 1998-04-26 09:22:36.000000000 -0400 -+++ lrzsz-0.12.20/intl/dcgettext.c 2004-09-12 14:40:34.359747480 -0400 -@@ -1,593 +1,56 @@ --/* Implementation of the dcgettext(3) function -- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -+/* Implementation of the dcgettext(3) function. -+ 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> - #endif - --#include <sys/types.h> -- --#ifdef __GNUC__ --# define alloca __builtin_alloca --# define HAVE_ALLOCA 1 --#else --# if defined HAVE_ALLOCA_H || defined _LIBC --# include <alloca.h> --# else --# ifdef _AIX -- #pragma alloca --# else --# ifndef alloca --char *alloca (); --# endif --# endif --# endif --#endif -- --#include <errno.h> --#ifndef errno --extern int errno; --#endif --#ifndef __set_errno --# define __set_errno(val) errno = (val) --#endif -- --#if defined STDC_HEADERS || defined _LIBC --# include <stdlib.h> --#else --char *getenv (); --# ifdef HAVE_MALLOC_H --# include <malloc.h> --# else --void free (); --# endif --#endif -- --#if defined HAVE_STRING_H || defined _LIBC --# ifndef _GNU_SOURCE --# define _GNU_SOURCE 1 --# endif --# include <string.h> --#else --# include <strings.h> --#endif --#if !HAVE_STRCHR && !defined _LIBC --# ifndef strchr --# define strchr index --# endif --#endif -- --#if defined HAVE_UNISTD_H || defined _LIBC --# include <unistd.h> --#endif -- --#include "gettext.h" - #include "gettextP.h" - #ifdef _LIBC - # include <libintl.h> - #else --# include "libgettext.h" -+# include "libgnuintl.h" - #endif --#include "hash-string.h" - - /* @@ end of prolog @@ */ - --#ifdef _LIBC --/* Rename the non ANSI C functions. This is required by the standard -- because some ANSI C functions will require linking with this object -- file and the name space must not be polluted. */ --# define getcwd __getcwd --# define stpcpy __stpcpy --#else --# if !defined HAVE_GETCWD --char *getwd (); --# define getcwd(buf, max) getwd (buf) --# else --char *getcwd (); --# endif --# ifndef HAVE_STPCPY --static char *stpcpy PARAMS ((char *dest, const char *src)); --# endif --#endif -- --/* Amount to increase buffer size by in each try. */ --#define PATH_INCR 32 -- --/* The following is from pathmax.h. */ --/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define -- PATH_MAX but might cause redefinition warnings when sys/param.h is -- later included (as on MORE/BSD 4.3). */ --#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__)) --# include <limits.h> --#endif -- --#ifndef _POSIX_PATH_MAX --# define _POSIX_PATH_MAX 255 --#endif -- --#if !defined(PATH_MAX) && defined(_PC_PATH_MAX) --# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX)) --#endif -- --/* Don't include sys/param.h if it already has been. */ --#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN) --# include <sys/param.h> --#endif -- --#if !defined(PATH_MAX) && defined(MAXPATHLEN) --# define PATH_MAX MAXPATHLEN --#endif -- --#ifndef PATH_MAX --# define PATH_MAX _POSIX_PATH_MAX --#endif -- --/* XPG3 defines the result of `setlocale (category, NULL)' as: -- ``Directs `setlocale()' to query `category' and return the current -- setting of `local'.'' -- However it does not specify the exact format. And even worse: POSIX -- defines this not at all. So we can use this feature only on selected -- system (e.g. those using GNU C Library). */ --#ifdef _LIBC --# define HAVE_LOCALE_NULL --#endif -- --/* Name of the default domain used for gettext(3) prior any call to -- textdomain(3). The default value for this is "messages". */ --const char _nl_default_default_domain[] = "messages"; -- --/* Value used as the default domain for gettext(3). */ --const char *_nl_current_default_domain = _nl_default_default_domain; -- --/* Contains the default location of the message catalogs. */ --const char _nl_default_dirname[] = GNULOCALEDIR; -- --/* List with bindings of specific domains created by bindtextdomain() -- calls. */ --struct binding *_nl_domain_bindings; -- --/* Prototypes for local functions. */ --static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file, -- const char *msgid)); --static const char *category_to_name PARAMS ((int category)); --static const char *guess_category_value PARAMS ((int category, -- const char *categoryname)); -- -- --/* For those loosing systems which don't have `alloca' we have to add -- some additional code emulating it. */ --#ifdef HAVE_ALLOCA --/* Nothing has to be done. */ --# define ADD_BLOCK(list, address) /* nothing */ --# define FREE_BLOCKS(list) /* nothing */ --#else --struct block_list --{ -- void *address; -- struct block_list *next; --}; --# define ADD_BLOCK(list, addr) \ -- do { \ -- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ -- /* If we cannot get a free block we cannot add the new element to \ -- the list. */ \ -- if (newp != NULL) { \ -- newp->address = (addr); \ -- newp->next = (list); \ -- (list) = newp; \ -- } \ -- } while (0) --# define FREE_BLOCKS(list) \ -- do { \ -- while (list != NULL) { \ -- struct block_list *old = list; \ -- list = list->next; \ -- free (old); \ -- } \ -- } while (0) --# undef alloca --# define alloca(size) (malloc (size)) --#endif /* have alloca */ -- -- - /* Names for the libintl functions are a problem. They must not clash - with existing names and they should follow ANSI C. But this source - code is also used in GNU C Library where the names have a __ - prefix. So we have to make a difference here. */ - #ifdef _LIBC - # define DCGETTEXT __dcgettext -+# define DCIGETTEXT __dcigettext - #else --# define DCGETTEXT dcgettext__ -+# 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) - { --#ifndef HAVE_ALLOCA -- struct block_list *block_list = NULL; --#endif -- struct loaded_l10nfile *domain; -- struct binding *binding; -- const char *categoryname; -- const char *categoryvalue; -- char *dirname, *xdomainname; -- char *single_locale; -- char *retval; -- int saved_errno = errno; -- -- /* If no real MSGID is given return NULL. */ -- if (msgid == NULL) -- return NULL; -- -- /* If DOMAINNAME is NULL, we are interested in the default domain. If -- CATEGORY is not LC_MESSAGES this might not make much sense but the -- defintion left this undefined. */ -- if (domainname == NULL) -- domainname = _nl_current_default_domain; -- -- /* First find matching binding. */ -- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) -- { -- int compare = strcmp (domainname, binding->domainname); -- if (compare == 0) -- /* We found it! */ -- break; -- if (compare < 0) -- { -- /* It is not in the list. */ -- binding = NULL; -- break; -- } -- } -- -- if (binding == NULL) -- dirname = (char *) _nl_default_dirname; -- else if (binding->dirname[0] == '/') -- dirname = binding->dirname; -- else -- { -- /* We have a relative path. Make it absolute now. */ -- size_t dirname_len = strlen (binding->dirname) + 1; -- size_t path_max; -- char *ret; -- -- path_max = (unsigned) PATH_MAX; -- path_max += 2; /* The getcwd docs say to do this. */ -- -- dirname = (char *) alloca (path_max + dirname_len); -- ADD_BLOCK (block_list, dirname); -- -- __set_errno (0); -- while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE) -- { -- path_max += PATH_INCR; -- dirname = (char *) alloca (path_max + dirname_len); -- ADD_BLOCK (block_list, dirname); -- __set_errno (0); -- } -- -- if (ret == NULL) -- { -- /* We cannot get the current working directory. Don't signal an -- error but simply return the default string. */ -- FREE_BLOCKS (block_list); -- __set_errno (saved_errno); -- return (char *) msgid; -- } -- -- stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname); -- } -- -- /* Now determine the symbolic name of CATEGORY and its value. */ -- categoryname = category_to_name (category); -- categoryvalue = guess_category_value (category, categoryname); -- -- xdomainname = (char *) alloca (strlen (categoryname) -- + strlen (domainname) + 5); -- ADD_BLOCK (block_list, xdomainname); -- -- stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), -- domainname), -- ".mo"); -- -- /* Creating working area. */ -- single_locale = (char *) alloca (strlen (categoryvalue) + 1); -- ADD_BLOCK (block_list, single_locale); -- -- -- /* Search for the given string. This is a loop because we perhaps -- got an ordered list of languages to consider for th translation. */ -- while (1) -- { -- /* Make CATEGORYVALUE point to the next element of the list. */ -- while (categoryvalue[0] != '\0' && categoryvalue[0] == ':') -- ++categoryvalue; -- if (categoryvalue[0] == '\0') -- { -- /* The whole contents of CATEGORYVALUE has been searched but -- no valid entry has been found. We solve this situation -- by implicitly appending a "C" entry, i.e. no translation -- will take place. */ -- single_locale[0] = 'C'; -- single_locale[1] = '\0'; -- } -- else -- { -- char *cp = single_locale; -- while (categoryvalue[0] != '\0' && categoryvalue[0] != ':') -- *cp++ = *categoryvalue++; -- *cp = '\0'; -- } -- -- /* If the current locale value is C (or POSIX) we don't load a -- domain. Return the MSGID. */ -- if (strcmp (single_locale, "C") == 0 -- || strcmp (single_locale, "POSIX") == 0) -- { -- FREE_BLOCKS (block_list); -- __set_errno (saved_errno); -- return (char *) msgid; -- } -- -- -- /* Find structure describing the message catalog matching the -- DOMAINNAME and CATEGORY. */ -- domain = _nl_find_domain (dirname, single_locale, xdomainname); -- -- if (domain != NULL) -- { -- retval = find_msg (domain, msgid); -- -- if (retval == NULL) -- { -- int cnt; -- -- for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) -- { -- retval = find_msg (domain->successor[cnt], msgid); -- -- if (retval != NULL) -- break; -- } -- } -- -- if (retval != NULL) -- { -- FREE_BLOCKS (block_list); -- __set_errno (saved_errno); -- return retval; -- } -- } -- } -- /* NOTREACHED */ -+ 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 -- -- --static char * --find_msg (domain_file, msgid) -- struct loaded_l10nfile *domain_file; -- const char *msgid; --{ -- size_t top, act, bottom; -- struct loaded_domain *domain; -- -- if (domain_file->decided == 0) -- _nl_load_domain (domain_file); -- -- if (domain_file->data == NULL) -- return NULL; -- -- domain = (struct loaded_domain *) domain_file->data; -- -- /* Locate the MSGID and its translation. */ -- if (domain->hash_size > 2 && domain->hash_tab != NULL) -- { -- /* Use the hashing table. */ -- nls_uint32 len = strlen (msgid); -- nls_uint32 hash_val = hash_string (msgid); -- nls_uint32 idx = hash_val % domain->hash_size; -- nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); -- nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]); -- -- if (nstr == 0) -- /* Hash table entry is empty. */ -- return NULL; -- -- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len -- && strcmp (msgid, -- domain->data + W (domain->must_swap, -- domain->orig_tab[nstr - 1].offset)) == 0) -- return (char *) domain->data + W (domain->must_swap, -- domain->trans_tab[nstr - 1].offset); -- -- while (1) -- { -- if (idx >= domain->hash_size - incr) -- idx -= domain->hash_size - incr; -- else -- idx += incr; -- -- nstr = W (domain->must_swap, domain->hash_tab[idx]); -- if (nstr == 0) -- /* Hash table entry is empty. */ -- return NULL; -- -- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len -- && strcmp (msgid, -- domain->data + W (domain->must_swap, -- domain->orig_tab[nstr - 1].offset)) -- == 0) -- return (char *) domain->data -- + W (domain->must_swap, domain->trans_tab[nstr - 1].offset); -- } -- /* NOTREACHED */ -- } -- -- /* Now we try the default method: binary search in the sorted -- array of messages. */ -- bottom = 0; -- top = domain->nstrings; -- while (bottom < top) -- { -- int cmp_val; -- -- act = (bottom + top) / 2; -- cmp_val = strcmp (msgid, domain->data -- + W (domain->must_swap, -- domain->orig_tab[act].offset)); -- if (cmp_val < 0) -- top = act; -- else if (cmp_val > 0) -- bottom = act + 1; -- else -- break; -- } -- -- /* If an translation is found return this. */ -- return bottom >= top ? NULL : (char *) domain->data -- + W (domain->must_swap, -- domain->trans_tab[act].offset); --} -- -- --/* Return string representation of locale CATEGORY. */ --static const char * --category_to_name (category) -- int category; --{ -- const char *retval; -- -- switch (category) -- { --#ifdef LC_COLLATE -- case LC_COLLATE: -- retval = "LC_COLLATE"; -- break; --#endif --#ifdef LC_CTYPE -- case LC_CTYPE: -- retval = "LC_CTYPE"; -- break; --#endif --#ifdef LC_MONETARY -- case LC_MONETARY: -- retval = "LC_MONETARY"; -- break; --#endif --#ifdef LC_NUMERIC -- case LC_NUMERIC: -- retval = "LC_NUMERIC"; -- break; --#endif --#ifdef LC_TIME -- case LC_TIME: -- retval = "LC_TIME"; -- break; --#endif --#ifdef LC_MESSAGES -- case LC_MESSAGES: -- retval = "LC_MESSAGES"; -- break; --#endif --#ifdef LC_RESPONSE -- case LC_RESPONSE: -- retval = "LC_RESPONSE"; -- break; --#endif --#ifdef LC_ALL -- case LC_ALL: -- /* This might not make sense but is perhaps better than any other -- value. */ -- retval = "LC_ALL"; -- break; --#endif -- default: -- /* If you have a better idea for a default value let me know. */ -- retval = "LC_XXX"; -- } -- -- return retval; --} -- --/* Guess value of current locale from value of the environment variables. */ --static const char * --guess_category_value (category, categoryname) -- int category; -- const char *categoryname; --{ -- const char *retval; -- -- /* The highest priority value is the `LANGUAGE' environment -- variable. This is a GNU extension. */ -- retval = getenv ("LANGUAGE"); -- if (retval != NULL && retval[0] != '\0') -- return retval; -- -- /* `LANGUAGE' is not set. So we have to proceed with the POSIX -- methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some -- systems this can be done by the `setlocale' function itself. */ --#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL -- return setlocale (category, NULL); --#else -- /* Setting of LC_ALL overwrites all other. */ -- retval = getenv ("LC_ALL"); -- if (retval != NULL && retval[0] != '\0') -- return retval; -- -- /* Next comes the name of the desired category. */ -- retval = getenv (categoryname); -- if (retval != NULL && retval[0] != '\0') -- return retval; -- -- /* Last possibility is the LANG environment variable. */ -- retval = getenv ("LANG"); -- if (retval != NULL && retval[0] != '\0') -- return retval; -- -- /* We use C as the default domain. POSIX says this is implementation -- defined. */ -- return "C"; --#endif --} -- --/* @@ begin of epilog @@ */ -- --/* We don't want libintl.a to depend on any other library. So we -- avoid the non-standard function stpcpy. In GNU C Library this -- function is available, though. Also allow the symbol HAVE_STPCPY -- to be defined. */ --#if !_LIBC && !HAVE_STPCPY --static char * --stpcpy (dest, src) -- char *dest; -- const char *src; --{ -- while ((*dest++ = *src++) != '\0') -- /* Do nothing. */ ; -- return dest - 1; --} --#endif ---- lrzsz-0.12.20.safe/intl/dcigettext.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/dcigettext.c 2004-09-12 14:40:34.369745960 -0400 -@@ -0,0 +1,1219 @@ -+/* Implementation of the internal dcigettext function. -+ Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Library General Public License as published -+ 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 <string.h> to provide a prototype for mempcpy(). -+ 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 -+ -+#include <sys/types.h> -+ -+#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 <errno.h> -+#ifndef errno -+extern int errno; -+#endif -+#ifndef __set_errno -+# define __set_errno(val) errno = (val) -+#endif -+ -+#include <stddef.h> -+#include <stdlib.h> -+#include <string.h> -+ -+#if defined HAVE_UNISTD_H || defined _LIBC -+# include <unistd.h> -+#endif -+ -+#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 -+# include "libgnuintl.h" -+#endif -+#include "hash-string.h" -+ -+/* Thread safetyness. */ -+#ifdef _LIBC -+# include <bits/libc-lock.h> -+#else -+/* Provide dummy implementation if this is outside glibc. */ -+# define __libc_lock_define_initialized(CLASS, NAME) -+# define __libc_lock_lock(NAME) -+# define __libc_lock_unlock(NAME) -+# define __libc_rwlock_define_initialized(CLASS, NAME) -+# define __libc_rwlock_rdlock(NAME) -+# define __libc_rwlock_unlock(NAME) -+#endif -+ -+/* Alignment of types. */ -+#if defined __GNUC__ && __GNUC__ >= 2 -+# define alignof(TYPE) __alignof__ (TYPE) -+#else -+# define alignof(TYPE) \ -+ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2) -+#endif -+ -+/* The internal variables in the standalone libintl.a must have different -+ 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 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>. */ -+#ifndef offsetof -+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) -+#endif -+ -+/* @@ end of prolog @@ */ -+ -+#ifdef _LIBC -+/* Rename the non ANSI C functions. This is required by the standard -+ because some ANSI C functions will require linking with this object -+ file and the name space must not be polluted. */ -+# define getcwd __getcwd -+# ifndef stpcpy -+# define stpcpy __stpcpy -+# endif -+# define tfind __tfind -+#else -+# if !defined HAVE_GETCWD -+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 (char *dest, const char *src); -+# endif -+# ifndef HAVE_MEMPCPY -+static void *mempcpy (void *dest, const void *src, size_t n); -+# endif -+#endif -+ -+/* Amount to increase buffer size by in each try. */ -+#define PATH_INCR 32 -+ -+/* The following is from pathmax.h. */ -+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define -+ PATH_MAX but might cause redefinition warnings when sys/param.h is -+ later included (as on MORE/BSD 4.3). */ -+#if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__) -+# include <limits.h> -+#endif -+ -+#ifndef _POSIX_PATH_MAX -+# define _POSIX_PATH_MAX 255 -+#endif -+ -+#if !defined PATH_MAX && defined _PC_PATH_MAX -+# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX)) -+#endif -+ -+/* Don't include sys/param.h if it already has been. */ -+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN -+# include <sys/param.h> -+#endif -+ -+#if !defined PATH_MAX && defined MAXPATHLEN -+# define PATH_MAX MAXPATHLEN -+#endif -+ -+#ifndef PATH_MAX -+# define PATH_MAX _POSIX_PATH_MAX -+#endif -+ -+/* 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. -+ 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_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P)) -+# define IS_PATH_WITH_DIR(P) \ -+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) -+#else -+ /* Unix */ -+# define ISSLASH(C) ((C) == '/') -+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0]) -+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) -+#endif -+ -+/* This is the type used for the search tree where known translations -+ are stored. */ -+struct known_translation_t -+{ -+ /* Domain in which to search. */ -+ char *domainname; -+ -+ /* The category. */ -+ int category; -+ -+ /* State of the catalog counter at the point the string was found. */ -+ int counter; -+ -+ /* Catalog where the string was found. */ -+ struct loaded_l10nfile *domain; -+ -+ /* And finally the translation. */ -+ const char *translation; -+ size_t translation_length; -+ -+ /* Pointer to the string in question. */ -+ char msgid[ZERO]; -+}; -+ -+/* Root of the search tree with known translations. We can use this -+ only if the system provides the `tsearch' function family. */ -+#if defined HAVE_TSEARCH || defined _LIBC -+# include <search.h> -+ -+static void *root; -+ -+# ifdef _LIBC -+# define tsearch __tsearch -+# endif -+ -+/* Function to compare two entries in the table of known translations. */ -+static int -+transcmp (const void *p1, const void *p2) -+{ -+ const struct known_translation_t *s1; -+ const struct known_translation_t *s2; -+ int result; -+ -+ s1 = (const struct known_translation_t *) p1; -+ s2 = (const struct known_translation_t *) p2; -+ -+ result = strcmp (s1->msgid, s2->msgid); -+ if (result == 0) -+ { -+ result = strcmp (s1->domainname, s2->domainname); -+ if (result == 0) -+ /* We compare the category last (though this is the cheapest -+ operation) since it is hopefully always the same (namely -+ LC_MESSAGES). */ -+ result = s1->category - s2->category; -+ } -+ -+ return result; -+} -+#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[] attribute_hidden = "messages"; -+ -+/* Value used as the default domain for gettext(3). */ -+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 (struct loaded_l10nfile *domain, -+ unsigned long int n, -+ const char *translation, size_t translation_len) -+ internal_function; -+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 -+struct block_list -+{ -+ void *address; -+ struct block_list *next; -+}; -+# define ADD_BLOCK(list, addr) \ -+ do { \ -+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ -+ /* If we cannot get a free block we cannot add the new element to \ -+ the list. */ \ -+ if (newp != NULL) { \ -+ newp->address = (addr); \ -+ newp->next = (list); \ -+ (list) = newp; \ -+ } \ -+ } while (0) -+# define FREE_BLOCKS(list) \ -+ do { \ -+ while (list != NULL) { \ -+ struct block_list *old = list; \ -+ list = list->next; \ -+ free (old->address); \ -+ free (old); \ -+ } \ -+ } while (0) -+# undef alloca -+# define alloca(size) (malloc (size)) -+# define freea(p) free (p) -+#endif /* have alloca */ -+ -+ -+#ifdef _LIBC -+/* List of blocks allocated for translations. */ -+typedef struct transmem_list -+{ -+ struct transmem_list *next; -+ char data[ZERO]; -+} transmem_block_t; -+static struct transmem_list *transmem_list; -+#else -+typedef unsigned char transmem_block_t; -+#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 DCIGETTEXT __dcigettext -+#else -+# 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 attribute_hidden) -+#endif -+ -+/* Checking whether the binaries runs SUID must be done and glibc provides -+ easier methods therefore we make a difference here. */ -+#ifdef _LIBC -+# 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 \ -+ if (enable_secure == 0) \ -+ { \ -+ if (getuid () != geteuid () || getgid () != getegid ()) \ -+ enable_secure = 1; \ -+ else \ -+ enable_secure = -1; \ -+ } -+#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 (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; -+#endif -+ struct loaded_l10nfile *domain; -+ struct binding *binding; -+ const char *categoryname; -+ const char *categoryvalue; -+ char *dirname, *xdomainname; -+ char *single_locale; -+ char *retval; -+ size_t retlen; -+ int saved_errno; -+#if defined HAVE_TSEARCH || defined _LIBC -+ struct known_translation_t *search; -+ struct known_translation_t **foundp = NULL; -+ size_t msgid_len; -+#endif -+ size_t domainname_len; -+ -+ /* If no real MSGID is given return NULL. */ -+ 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 -+ CATEGORY is not LC_MESSAGES this might not make much sense but the -+ definition left this undefined. */ -+ 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; -+ -+ /* Try to find the translation among those which we found at -+ some time. */ -+ search = (struct known_translation_t *) -+ alloca (offsetof (struct known_translation_t, msgid) + msgid_len); -+ memcpy (search->msgid, msgid1, msgid_len); -+ search->domainname = (char *) domainname; -+ 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. */ -+ if (plural) -+ retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation, -+ (*foundp)->translation_length); -+ else -+ retval = (char *) (*foundp)->translation; -+ -+ __libc_rwlock_unlock (_nl_state_lock); -+ return retval; -+ } -+#endif -+ -+ /* Preserve the `errno' value. */ -+ saved_errno = errno; -+ -+ /* See whether this is a SUID binary or not. */ -+ DETERMINE_SECURE; -+ -+ /* First find matching binding. */ -+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) -+ { -+ int compare = strcmp (domainname, binding->domainname); -+ if (compare == 0) -+ /* We found it! */ -+ break; -+ if (compare < 0) -+ { -+ /* It is not in the list. */ -+ binding = NULL; -+ break; -+ } -+ } -+ -+ if (binding == NULL) -+ dirname = (char *) INTUSE(_nl_default_dirname); -+ else if (IS_ABSOLUTE_PATH (binding->dirname)) -+ dirname = binding->dirname; -+ else -+ { -+ /* We have a relative path. Make it absolute now. */ -+ size_t dirname_len = strlen (binding->dirname) + 1; -+ size_t path_max; -+ char *ret; -+ -+ path_max = (unsigned int) PATH_MAX; -+ path_max += 2; /* The getcwd docs say to do this. */ -+ -+ for (;;) -+ { -+ dirname = (char *) alloca (path_max + dirname_len); -+ ADD_BLOCK (block_list, dirname); -+ -+ __set_errno (0); -+ ret = getcwd (dirname, path_max); -+ if (ret != NULL || errno != ERANGE) -+ break; -+ -+ path_max += path_max / 2; -+ path_max += PATH_INCR; -+ } -+ -+ if (ret == NULL) -+ /* 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); -+ } -+ -+ /* Now determine the symbolic name of CATEGORY and its value. */ -+ categoryname = category_to_name (category); -+ categoryvalue = guess_category_value (category, categoryname); -+ -+ domainname_len = strlen (domainname); -+ xdomainname = (char *) alloca (strlen (categoryname) -+ + domainname_len + 5); -+ ADD_BLOCK (block_list, xdomainname); -+ -+ stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), -+ domainname, domainname_len), -+ ".mo"); -+ -+ /* Creating working area. */ -+ single_locale = (char *) alloca (strlen (categoryvalue) + 1); -+ ADD_BLOCK (block_list, single_locale); -+ -+ -+ /* Search for the given string. This is a loop because we perhaps -+ got an ordered list of languages to consider for the translation. */ -+ while (1) -+ { -+ /* Make CATEGORYVALUE point to the next element of the list. */ -+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':') -+ ++categoryvalue; -+ if (categoryvalue[0] == '\0') -+ { -+ /* The whole contents of CATEGORYVALUE has been searched but -+ no valid entry has been found. We solve this situation -+ by implicitly appending a "C" entry, i.e. no translation -+ will take place. */ -+ single_locale[0] = 'C'; -+ single_locale[1] = '\0'; -+ } -+ else -+ { -+ char *cp = single_locale; -+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':') -+ *cp++ = *categoryvalue++; -+ *cp = '\0'; -+ -+ /* When this is a SUID binary we must not allow accessing files -+ outside the dedicated directories. */ -+ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale)) -+ /* Ingore this entry. */ -+ continue; -+ } -+ -+ /* If the current locale value is C (or POSIX) we don't load a -+ domain. Return the MSGID. */ -+ if (strcmp (single_locale, "C") == 0 -+ || strcmp (single_locale, "POSIX") == 0) -+ break; -+ -+ /* Find structure describing the message catalog matching the -+ DOMAINNAME and CATEGORY. */ -+ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding); -+ -+ if (domain != NULL) -+ { -+ retval = _nl_find_msg (domain, binding, msgid1, &retlen); -+ -+ if (retval == NULL) -+ { -+ int cnt; -+ -+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) -+ { -+ retval = _nl_find_msg (domain->successor[cnt], binding, -+ msgid1, &retlen); -+ -+ if (retval != NULL) -+ { -+ domain = domain->successor[cnt]; -+ break; -+ } -+ } -+ } -+ -+ if (retval != NULL) -+ { -+ /* Found the translation of MSGID1 in domain DOMAIN: -+ starting at RETVAL, RETLEN bytes. */ -+ FREE_BLOCKS (block_list); -+#if defined HAVE_TSEARCH || defined _LIBC -+ if (foundp == NULL) -+ { -+ /* Create a new entry and add it to the search tree. */ -+ struct known_translation_t *newp; -+ -+ newp = (struct known_translation_t *) -+ malloc (offsetof (struct known_translation_t, msgid) -+ + msgid_len + domainname_len + 1); -+ if (newp != NULL) -+ { -+ newp->domainname = -+ mempcpy (newp->msgid, msgid1, msgid_len); -+ memcpy (newp->domainname, domainname, domainname_len + 1); -+ newp->category = category; -+ newp->counter = _nl_msg_cat_cntr; -+ newp->domain = domain; -+ newp->translation = retval; -+ newp->translation_length = retlen; -+ -+ /* Insert the entry in the search tree. */ -+ foundp = (struct known_translation_t **) -+ tsearch (newp, &root, transcmp); -+ if (foundp == NULL -+ || __builtin_expect (*foundp != newp, 0)) -+ /* The insert failed. */ -+ free (newp); -+ } -+ } -+ else -+ { -+ /* We can update the existing entry. */ -+ (*foundp)->counter = _nl_msg_cat_cntr; -+ (*foundp)->domain = domain; -+ (*foundp)->translation = retval; -+ (*foundp)->translation_length = retlen; -+ } -+#endif -+ __set_errno (saved_errno); -+ -+ /* Now deal with plural. */ -+ if (plural) -+ retval = plural_lookup (domain, n, retval, retlen); -+ -+ __libc_rwlock_unlock (_nl_state_lock); -+ return retval; -+ } -+ } -+ } -+ -+ 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 (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, 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_tab != NULL) -+ { -+ /* Use the hashing table. */ -+ nls_uint32 len = strlen (msgid); -+ nls_uint32 hash_val = hash_string (msgid); -+ nls_uint32 idx = hash_val % domain->hash_size; -+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); -+ -+ while (1) -+ { -+ nls_uint32 nstr = -+ W (domain->must_swap_hash_tab, domain->hash_tab[idx]); -+ -+ if (nstr == 0) -+ /* Hash table entry is empty. */ -+ return NULL; -+ -+ 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 (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; -+ goto found; -+ } -+ -+ if (idx >= domain->hash_size - incr) -+ idx -= domain->hash_size - incr; -+ else -+ idx += incr; -+ } -+ /* NOTREACHED */ -+ } -+ else -+ { -+ /* Try the default method: binary search in the sorted array of -+ messages. */ -+ size_t top, bottom; -+ -+ bottom = 0; -+ top = nstrings; -+ while (bottom < top) -+ { -+ int cmp_val; -+ -+ act = (bottom + top) / 2; -+ cmp_val = strcmp (msgid, (domain->data -+ + W (domain->must_swap, -+ domain->orig_tab[act].offset))); -+ if (cmp_val < 0) -+ top = act; -+ else if (cmp_val > 0) -+ bottom = act + 1; -+ else -+ goto found; -+ } -+ /* No translation was found. */ -+ return NULL; -+ } -+ -+ 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. */ -+ 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 -+# else -+# if HAVE_ICONV -+ domain->conv != (iconv_t) -1 -+# endif -+# endif -+ ) -+ { -+ /* We are supposed to do a conversion. First allocate an -+ appropriate table with the same structure as the table -+ of translations in the file, where we can put the pointers -+ to the converted strings in. -+ There is a slight complication with plural entries. They -+ are represented by consecutive NUL terminated strings. We -+ handle this case by converting RESULTLEN bytes, including -+ NULs. */ -+ -+ if (domain->conv_tab == NULL -+ && ((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; -+ -+ if (__builtin_expect (domain->conv_tab == (char **) -1, 0)) -+ /* Nothing we can do, no more memory. */ -+ goto converted; -+ -+ if (domain->conv_tab[act] == NULL) -+ { -+ /* We haven't used this string so far, so it is not -+ translated yet. Do this now. */ -+ /* We use a bit more efficient memory handling. -+ We allocate always larger blocks which get used over -+ time. This is faster than many small allocations. */ -+ __libc_lock_define_initialized (static, lock) -+# define INITIAL_BLOCK_SIZE 4080 -+ static unsigned char *freemem; -+ static size_t freemem_size; -+ -+ const unsigned char *inbuf; -+ unsigned char *outbuf; -+ int malloc_count; -+# ifndef _LIBC -+ transmem_block_t *transmem_list = NULL; -+# endif -+ -+ __libc_lock_lock (lock); -+ -+ inbuf = (const unsigned char *) result; -+ outbuf = freemem + sizeof (size_t); -+ -+ malloc_count = 0; -+ while (1) -+ { -+ transmem_block_t *newmem; -+# ifdef _LIBC -+ size_t non_reversible; -+ int res; -+ -+ if (freemem_size < sizeof (size_t)) -+ goto resize_freemem; -+ -+ res = __gconv (domain->conv, -+ &inbuf, inbuf + resultlen, -+ &outbuf, -+ outbuf + freemem_size - sizeof (size_t), -+ &non_reversible); -+ -+ if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT) -+ break; -+ -+ if (res != __GCONV_FULL_OUTPUT) -+ { -+ __libc_lock_unlock (lock); -+ goto converted; -+ } -+ -+ inbuf = result; -+# else -+# if HAVE_ICONV -+ const char *inptr = (const char *) inbuf; -+ size_t inleft = resultlen; -+ char *outptr = (char *) outbuf; -+ size_t outleft; -+ -+ if (freemem_size < sizeof (size_t)) -+ goto resize_freemem; -+ -+ outleft = freemem_size - sizeof (size_t); -+ if (iconv (domain->conv, -+ (ICONV_CONST char **) &inptr, &inleft, -+ &outptr, &outleft) -+ != (size_t) (-1)) -+ { -+ outbuf = (unsigned char *) outptr; -+ break; -+ } -+ if (errno != E2BIG) -+ { -+ __libc_lock_unlock (lock); -+ goto converted; -+ } -+# endif -+# endif -+ -+ resize_freemem: -+ /* We must allocate a new buffer or resize the old one. */ -+ if (malloc_count > 0) -+ { -+ ++malloc_count; -+ freemem_size = malloc_count * INITIAL_BLOCK_SIZE; -+ newmem = (transmem_block_t *) realloc (transmem_list, -+ freemem_size); -+# ifdef _LIBC -+ if (newmem != NULL) -+ transmem_list = transmem_list->next; -+ else -+ { -+ struct transmem_list *old = transmem_list; -+ -+ transmem_list = transmem_list->next; -+ free (old); -+ } -+# endif -+ } -+ else -+ { -+ malloc_count = 1; -+ freemem_size = INITIAL_BLOCK_SIZE; -+ newmem = (transmem_block_t *) malloc (freemem_size); -+ } -+ if (__builtin_expect (newmem == NULL, 0)) -+ { -+ freemem = NULL; -+ freemem_size = 0; -+ __libc_lock_unlock (lock); -+ goto converted; -+ } -+ -+# ifdef _LIBC -+ /* Add the block to the list of blocks we have to free -+ at some point. */ -+ newmem->next = transmem_list; -+ transmem_list = newmem; -+ -+ freemem = newmem->data; -+ freemem_size -= offsetof (struct transmem_list, data); -+# else -+ transmem_list = newmem; -+ freemem = newmem; -+# endif -+ -+ outbuf = freemem + sizeof (size_t); -+ } -+ -+ /* We have now in our buffer a converted string. Put this -+ into the table of conversions. */ -+ *(size_t *) freemem = outbuf - freemem - sizeof (size_t); -+ domain->conv_tab[act] = (char *) freemem; -+ /* Shrink freemem, but keep it aligned. */ -+ freemem_size -= outbuf - freemem; -+ freemem = outbuf; -+ freemem += freemem_size & (alignof (size_t) - 1); -+ freemem_size = freemem_size & ~ (alignof (size_t) - 1); -+ -+ __libc_lock_unlock (lock); -+ } -+ -+ /* Now domain->conv_tab[act] contains the translation of all -+ the plural variants. */ -+ result = domain->conv_tab[act] + sizeof (size_t); -+ resultlen = *(size_t *) domain->conv_tab[act]; -+ } -+ -+ converted: -+ /* The result string is converted. */ -+ -+#endif /* _LIBC || HAVE_ICONV */ -+ -+ *lengthp = resultlen; -+ return result; -+} -+ -+ -+/* Look up a plural variant. */ -+static char * -+internal_function -+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; -+ const char *p; -+ -+ index = plural_eval (domaindata->plural, n); -+ if (index >= domaindata->nplurals) -+ /* This should never happen. It means the plural expression and the -+ given maximum value do not match. */ -+ index = 0; -+ -+ /* Skip INDEX strings at TRANSLATION. */ -+ p = translation; -+ while (index-- > 0) -+ { -+#ifdef _LIBC -+ p = __rawmemchr (p, '\0'); -+#else -+ p = strchr (p, '\0'); -+#endif -+ /* And skip over the NUL byte. */ -+ p++; -+ -+ if (p >= translation + translation_len) -+ /* This should never happen. It means the plural expression -+ evaluated to a value larger than the number of variants -+ available for MSGID1. */ -+ return (char *) translation; -+ } -+ return (char *) p; -+} -+ -+#ifndef _LIBC -+/* Return string representation of locale CATEGORY. */ -+static const char * -+internal_function -+category_to_name (int category) -+{ -+ const char *retval; -+ -+ switch (category) -+ { -+#ifdef LC_COLLATE -+ case LC_COLLATE: -+ retval = "LC_COLLATE"; -+ break; -+#endif -+#ifdef LC_CTYPE -+ case LC_CTYPE: -+ retval = "LC_CTYPE"; -+ break; -+#endif -+#ifdef LC_MONETARY -+ case LC_MONETARY: -+ retval = "LC_MONETARY"; -+ break; -+#endif -+#ifdef LC_NUMERIC -+ case LC_NUMERIC: -+ retval = "LC_NUMERIC"; -+ break; -+#endif -+#ifdef LC_TIME -+ case LC_TIME: -+ retval = "LC_TIME"; -+ break; -+#endif -+#ifdef LC_MESSAGES -+ case LC_MESSAGES: -+ retval = "LC_MESSAGES"; -+ break; -+#endif -+#ifdef LC_RESPONSE -+ case LC_RESPONSE: -+ retval = "LC_RESPONSE"; -+ break; -+#endif -+#ifdef LC_ALL -+ case LC_ALL: -+ /* This might not make sense but is perhaps better than any other -+ value. */ -+ retval = "LC_ALL"; -+ break; -+#endif -+ default: -+ /* If you have a better idea for a default value let me know. */ -+ retval = "LC_XXX"; -+ } -+ -+ return retval; -+} -+#endif -+ -+/* Guess value of current locale from value of the environment variables. */ -+static const char * -+internal_function -+guess_category_value (int category, const char *categoryname) -+{ -+ const char *language; -+ const char *retval; -+ -+ /* The highest priority value is the `LANGUAGE' environment -+ variable. But we don't use the value if the currently selected -+ locale is the C locale. This is a GNU extension. */ -+ language = getenv ("LANGUAGE"); -+ if (language != NULL && language[0] == '\0') -+ language = NULL; -+ -+ /* 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. */ -+#ifdef _LIBC -+ retval = __current_locale_name (category); -+#else -+ 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; -+} -+ -+/* @@ begin of epilog @@ */ -+ -+/* We don't want libintl.a to depend on any other library. So we -+ avoid the non-standard function stpcpy. In GNU C Library this -+ function is available, though. Also allow the symbol HAVE_STPCPY -+ to be defined. */ -+#if !_LIBC && !HAVE_STPCPY -+static char * -+stpcpy (char *dest, const char *src) -+{ -+ while ((*dest++ = *src++) != '\0') -+ /* Do nothing. */ ; -+ return dest - 1; -+} -+#endif -+ -+#if !_LIBC && !HAVE_MEMPCPY -+static void * -+mempcpy (void *dest, const void *src, size_t n) -+{ -+ return (void *) ((char *) memcpy (dest, src, n) + n); -+} -+#endif -+ -+ -+#ifdef _LIBC -+/* If we want to free all resources we have to do some work at -+ program's end. */ -+libc_freeres_fn (free_mem) -+{ -+ void *old; -+ -+ while (_nl_domain_bindings != NULL) -+ { -+ struct binding *oldp = _nl_domain_bindings; -+ _nl_domain_bindings = _nl_domain_bindings->next; -+ if (oldp->dirname != INTUSE(_nl_default_dirname)) -+ /* Yes, this is a pointer comparison. */ -+ free (oldp->dirname); -+ free (oldp->codeset); -+ free (oldp); -+ } -+ -+ if (_nl_current_default_domain != _nl_default_default_domain) -+ /* Yes, again a pointer comparison. */ -+ free ((char *) _nl_current_default_domain); -+ -+ /* Remove the search tree with the known translations. */ -+ __tdestroy (root, free); -+ root = NULL; -+ -+ while (transmem_list != NULL) -+ { -+ old = transmem_list; -+ transmem_list = transmem_list->next; -+ free (old); -+ } -+} -+#endif ---- lrzsz-0.12.20.safe/intl/dcngettext.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/dcngettext.c 2004-09-12 14:40:34.375745048 -0400 -@@ -0,0 +1,57 @@ -+/* Implementation of the dcngettext(3) function. -+ Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Library General Public License as published -+ 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 "gettextP.h" -+#ifdef _LIBC -+# include <libintl.h> -+#else -+# include "libgnuintl.h" -+#endif -+ -+/* @@ end of prolog @@ */ -+ -+/* Names for the libintl functions are a problem. They must not clash -+ with existing names and they should follow ANSI C. But this source -+ code is also used in GNU C Library where the names have a __ -+ prefix. So we have to make a difference here. */ -+#ifdef _LIBC -+# define DCNGETTEXT __dcngettext -+# define DCIGETTEXT __dcigettext -+#else -+# define DCNGETTEXT libintl_dcngettext -+# define DCIGETTEXT libintl_dcigettext -+#endif -+ -+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY -+ locale. */ -+char * -+DCNGETTEXT (const char *domainname, -+ const char *msgid1, const char *msgid2, unsigned long int n, -+ int category) -+{ -+ return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category); -+} -+ -+#ifdef _LIBC -+/* Alias for function name in GNU C Library. */ -+weak_alias (__dcngettext, dcngettext); -+#endif ---- lrzsz-0.12.20.safe/intl/dgettext.c 1998-04-26 09:20:52.000000000 -0400 -+++ lrzsz-0.12.20/intl/dgettext.c 2004-09-12 14:40:34.380744288 -0400 -@@ -1,32 +1,33 @@ --/* dgettext.c -- implementation of the dgettext(3) function -- Copyright (C) 1995 Software Foundation, Inc. -+/* Implementation of the dgettext(3) function. -+ 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) --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 - --#if defined HAVE_LOCALE_H || defined _LIBC --# include <locale.h> --#endif -+#include "gettextP.h" -+ -+#include <locale.h> - - #ifdef _LIBC - # include <libintl.h> - #else --# include "libgettext.h" -+# include "libgnuintl.h" - #endif - - /* @@ end of prolog @@ */ -@@ -37,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); - } ---- lrzsz-0.12.20.safe/intl/dngettext.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/dngettext.c 2004-09-12 14:40:34.385743528 -0400 -@@ -0,0 +1,59 @@ -+/* Implementation of the dngettext(3) function. -+ 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. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include "gettextP.h" -+ -+#include <locale.h> -+ -+#ifdef _LIBC -+# include <libintl.h> -+#else -+# include "libgnuintl.h" -+#endif -+ -+/* @@ end of prolog @@ */ -+ -+/* Names for the libintl functions are a problem. They must not clash -+ with existing names and they should follow ANSI C. But this source -+ code is also used in GNU C Library where the names have a __ -+ prefix. So we have to make a difference here. */ -+#ifdef _LIBC -+# define DNGETTEXT __dngettext -+# define DCNGETTEXT __dcngettext -+#else -+# 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 (const char *domainname, -+ const char *msgid1, const char *msgid2, unsigned long int n) -+{ -+ return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES); -+} -+ -+#ifdef _LIBC -+/* Alias for function name in GNU C Library. */ -+weak_alias (__dngettext, dngettext); -+#endif ---- lrzsz-0.12.20.safe/intl/eval-plural.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/eval-plural.h 2004-09-12 14:40:34.390742768 -0400 -@@ -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; -+} ---- lrzsz-0.12.20.safe/intl/explodename.c 1998-04-26 09:22:37.000000000 -0400 -+++ lrzsz-0.12.20/intl/explodename.c 2004-09-12 14:40:34.395742008 -0400 -@@ -1,19 +1,20 @@ --/* Copyright (C) 1995, 1996, 1997 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> -@@ -36,18 +37,23 @@ - - /* @@ end of prolog @@ */ - -+char * -+_nl_find_language (const char *name) -+{ -+ while (name[0] != '\0' && name[0] != '_' && name[0] != '@' -+ && name[0] != '+' && name[0] != ',') -+ ++name; -+ -+ return (char *) name; -+} -+ -+ - int --_nl_explode_name (name, language, modifier, territory, codeset, -- normalized_codeset, special, sponsor, revision) -- char *name; -- const char **language; -- const char **modifier; -- const char **territory; -- const char **codeset; -- const char **normalized_codeset; -- const char **special; -- const char **sponsor; -- const char **revision; -+_nl_explode_name (char *name, -+ const char **language, const char **modifier, -+ const char **territory, const char **codeset, -+ const char **normalized_codeset, const char **special, -+ const char **sponsor, const char **revision) - { - enum { undecided, xpg, cen } syntax; - char *cp; -@@ -67,9 +73,7 @@ - mask = 0; - syntax = undecided; - *language = cp = name; -- while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@' -- && cp[0] != '+' && cp[0] != ',') -- ++cp; -+ cp = _nl_find_language (*language); - - if (*language == cp) - /* This does not make sense: language has to be specified. Use ---- lrzsz-0.12.20.safe/intl/finddomain.c 1998-04-26 09:22:36.000000000 -0400 -+++ lrzsz-0.12.20/intl/finddomain.c 2004-09-12 14:40:34.415738968 -0400 -@@ -1,64 +1,40 @@ - /* Handle list of needed message catalogs -- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. -+ 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> - #endif - --#include <ctype.h> --#include <errno.h> - #include <stdio.h> - #include <sys/types.h> -- --#if defined STDC_HEADERS || defined _LIBC --# include <stdlib.h> --#else --# ifdef HAVE_MALLOC_H --# include <malloc.h> --# else --void free (); --# endif --#endif -- --#if defined HAVE_STRING_H || defined _LIBC --# include <string.h> --#else --# include <strings.h> --# ifndef memcpy --# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) --# endif --#endif --#if !HAVE_STRCHR && !defined _LIBC --# ifndef strchr --# define strchr index --# endif --#endif -+#include <stdlib.h> -+#include <string.h> - - #if defined HAVE_UNISTD_H || defined _LIBC - # include <unistd.h> - #endif - --#include "gettext.h" - #include "gettextP.h" - #ifdef _LIBC - # include <libintl.h> - #else --# include "libgettext.h" -+# include "libgnuintl.h" - #endif - - /* @@ end of prolog @@ */ -@@ -70,10 +46,9 @@ - the DOMAINNAME and CATEGORY parameters with respect to the currently - established bindings. */ - struct loaded_l10nfile * --_nl_find_domain (dirname, locale, domainname) -- const char *dirname; -- char *locale; -- const char *domainname; -+internal_function -+_nl_find_domain (const char *dirname, char *locale, -+ const char *domainname, struct binding *domainbinding) - { - struct loaded_l10nfile *retval; - const char *language; -@@ -95,9 +70,9 @@ - - language[_territory][+audience][+special][,[sponsor][_revision]] - -- Beside the first all of them are allowed to be missing. If the -- full specified locale is not found, the less specific one are -- looked for. The various part will be stripped of according to -+ Beside the first part all of them are allowed to be missing. If -+ the full specified locale is not found, the less specific one are -+ looked for. The various parts will be stripped off according to - the following order: - (1) revision - (2) sponsor -@@ -119,7 +94,7 @@ - int cnt; - - if (retval->decided == 0) -- _nl_load_domain (retval); -+ _nl_load_domain (retval, domainbinding); - - if (retval->data != NULL) - return retval; -@@ -127,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; -@@ -142,12 +117,18 @@ - alias_value = _nl_expand_alias (locale); - if (alias_value != NULL) - { -+#if defined _LIBC || defined HAVE_STRDUP -+ locale = strdup (alias_value); -+ if (locale == NULL) -+ return NULL; -+#else - size_t len = strlen (alias_value) + 1; - locale = (char *) malloc (len); - if (locale == NULL) - return NULL; - - memcpy (locale, alias_value, len); -+#endif - } - - /* Now we determine the single parts of the locale name. First -@@ -168,14 +149,14 @@ - 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; - } -@@ -185,5 +166,27 @@ - if (alias_value != NULL) - free (locale); - -+ /* The space for normalized_codeset is dynamically allocated. Free it. */ -+ if (mask & XPG_NORM_CODESET) -+ free ((void *) normalized_codeset); -+ - return retval; - } -+ -+ -+#ifdef _LIBC -+libc_freeres_fn (free_mem) -+{ -+ struct loaded_l10nfile *runp = _nl_loaded_domains; -+ -+ while (runp != NULL) -+ { -+ struct loaded_l10nfile *here = runp; -+ if (runp->data != NULL) -+ _nl_unload_domain ((struct loaded_domain *) runp->data); -+ runp = runp->next; -+ free ((char *) here->filename); -+ free (here); -+ } -+} -+#endif ---- lrzsz-0.12.20.safe/intl/gettext.c 1998-04-26 09:22:36.000000000 -0400 -+++ lrzsz-0.12.20/intl/gettext.c 2004-09-12 14:40:34.420738208 -0400 -@@ -1,19 +1,20 @@ --/* Implementation of gettext(3) function -- Copyright (C) 1995, 1997 Free Software Foundation, Inc. -+/* Implementation of gettext(3) function. -+ 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> -@@ -23,21 +24,14 @@ - # define __need_NULL - # include <stddef.h> - #else --# ifdef STDC_HEADERS --# include <stdlib.h> /* Just for NULL. */ --# else --# ifdef HAVE_STRING_H --# include <string.h> --# else --# define NULL ((void *) 0) --# endif --# endif -+# include <stdlib.h> /* Just for NULL. */ - #endif - -+#include "gettextP.h" - #ifdef _LIBC - # include <libintl.h> - #else --# include "libgettext.h" -+# include "libgnuintl.h" - #endif - - /* @@ end of prolog @@ */ -@@ -48,20 +42,19 @@ - prefix. So we have to make a difference here. */ - #ifdef _LIBC - # define GETTEXT __gettext --# define DGETTEXT __dgettext -+# define DCGETTEXT INTUSE(__dcgettext) - #else --# define GETTEXT gettext__ --# define DGETTEXT dgettext__ -+# 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 DGETTEXT (NULL, msgid); -+ return DCGETTEXT (NULL, msgid, LC_MESSAGES); - } - - #ifdef _LIBC ---- lrzsz-0.12.20.safe/intl/gettext.h 1998-04-26 09:22:35.000000000 -0400 -+++ lrzsz-0.12.20/intl/gettext.h 1969-12-31 19:00:00.000000000 -0500 -@@ -1,105 +0,0 @@ --/* Internal header for GNU gettext internationalization functions -- Copyright (C) 1995, 1997 Free Software Foundation, Inc. -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2, or (at your option) -- any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU Library General Public -- License along with the GNU C Library; see the file COPYING.LIB. If not, -- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -- Boston, MA 02111-1307, USA. */ -- --#ifndef _GETTEXT_H --#define _GETTEXT_H 1 -- --#include <stdio.h> -- --#if HAVE_LIMITS_H || _LIBC --# include <limits.h> --#endif -- --/* @@ end of prolog @@ */ -- --/* The magic number of the GNU message catalog format. */ --#define _MAGIC 0x950412de --#define _MAGIC_SWAPPED 0xde120495 -- --/* Revision number of the currently used .mo (binary) file format. */ --#define MO_REVISION_NUMBER 0 -- --/* The following contortions are an attempt to use the C preprocessor -- to determine an unsigned integral type that is 32 bits wide. An -- alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but -- doing that would require that the configure script compile and *run* -- the resulting executable. Locally running cross-compiled executables -- is usually not possible. */ -- --#if __STDC__ --# define UINT_MAX_32_BITS 4294967295U --#else --# define UINT_MAX_32_BITS 0xFFFFFFFF --#endif -- --/* If UINT_MAX isn't defined, assume it's a 32-bit type. -- This should be valid for all systems GNU cares about because -- that doesn't include 16-bit systems, and only modern systems -- (that certainly have <limits.h>) have 64+-bit integral types. */ -- --#ifndef UINT_MAX --# define UINT_MAX UINT_MAX_32_BITS --#endif -- --#if UINT_MAX == UINT_MAX_32_BITS --typedef unsigned nls_uint32; --#else --# if USHRT_MAX == UINT_MAX_32_BITS --typedef unsigned short nls_uint32; --# else --# if ULONG_MAX == UINT_MAX_32_BITS --typedef unsigned long nls_uint32; --# else -- /* The following line is intended to throw an error. Using #error is -- not portable enough. */ -- "Cannot determine unsigned 32-bit data type." --# endif --# endif --#endif -- -- --/* Header for binary .mo file format. */ --struct mo_file_header --{ -- /* The magic number. */ -- nls_uint32 magic; -- /* The revision number of the file format. */ -- nls_uint32 revision; -- /* The number of strings pairs. */ -- nls_uint32 nstrings; -- /* Offset of table with start offsets of original strings. */ -- nls_uint32 orig_tab_offset; -- /* Offset of table with start offsets of translation strings. */ -- nls_uint32 trans_tab_offset; -- /* Size of hashing table. */ -- nls_uint32 hash_tab_size; -- /* Offset of first hashing entry. */ -- nls_uint32 hash_tab_offset; --}; -- --struct string_desc --{ -- /* Length of addressed string. */ -- nls_uint32 length; -- /* Offset of string in file. */ -- nls_uint32 offset; --}; -- --/* @@ begin of epilog @@ */ -- --#endif /* gettext.h */ ---- lrzsz-0.12.20.safe/intl/gettextP.h 1998-04-26 09:22:35.000000000 -0400 -+++ lrzsz-0.12.20/intl/gettextP.h 2004-09-12 14:40:34.426737296 -0400 -@@ -1,33 +1,53 @@ --/* Header describing internals of gettext library -- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -+/* Header describing internals of libintl library. -+ 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 - -+#include <stddef.h> /* Get size_t. */ -+ -+#ifdef _LIBC -+# include "../iconv/gconv_int.h" -+#else -+# if HAVE_ICONV -+# include <iconv.h> -+# endif -+#endif -+ - #include "loadinfo.h" - -+#include "gmo.h" /* Get nls_uint32. */ -+ - /* @@ end of prolog @@ */ - --#ifndef PARAMS --# if __STDC__ --# define PARAMS(args) args --# else --# define PARAMS(args) () --# 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 -+# define __builtin_expect(expr, val) (expr) - #endif - - #ifndef W -@@ -35,38 +55,160 @@ - #endif - - --static nls_uint32 SWAP PARAMS ((nls_uint32 i)); -- -+#ifdef _LIBC -+# include <byteswap.h> -+# define SWAP(i) bswap_32 (i) -+#else - static inline nls_uint32 - SWAP (i) - nls_uint32 i; - { - return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); - } -+#endif -+ - -+/* In-memory representation of system dependent string. */ -+struct sysdep_string_desc -+{ -+ /* 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 -+# if HAVE_ICONV -+ iconv_t conv; -+# endif -+#endif -+ char **conv_tab; -+ -+ struct expression *plural; -+ unsigned long int nplurals; - }; - -+/* We want to allocate a string at the end of the struct. But ISO C -+ doesn't allow zero sized arrays. */ -+#ifdef __GNUC__ -+# define ZERO 0 -+#else -+# define ZERO 1 -+#endif -+ -+/* A set of settings bound to a message domain. Used to store settings -+ from bindtextdomain() and bind_textdomain_codeset(). */ - struct binding - { - struct binding *next; -- char *domainname; - char *dirname; -+ int codeset_cntr; /* Incremented each time codeset changes. */ -+ char *codeset; -+ char domainname[ZERO]; - }; - --struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, -- char *__locale, -- const char *__domainname)); --void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain)); -+/* A counter which is incremented each time some previous translations -+ become invalid. -+ This variable is part of the external ABI of the GNU libintl. */ -+extern int _nl_msg_cat_cntr; -+ -+#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 (struct loaded_l10nfile *__domain, -+ struct binding *__domainbinding) -+ internal_function; -+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; -+ -+char *_nl_find_msg (struct loaded_l10nfile *domain_file, -+ struct binding *domainbinding, const char *msgid, -+ size_t *lengthp) -+ internal_function; -+ -+#ifdef _LIBC -+extern char *__gettext (const char *__msgid); -+extern char *__dgettext (const char *__domainname, const char *__msgid); -+extern char *__dcgettext (const char *__domainname, const char *__msgid, -+ int __category); -+extern char *__ngettext (const char *__msgid1, const char *__msgid2, -+ unsigned long int __n); -+extern char *__dngettext (const char *__domainname, -+ const char *__msgid1, const char *__msgid2, -+ unsigned long int n); -+extern char *__dcngettext (const char *__domainname, -+ const char *__msgid1, const char *__msgid2, -+ unsigned long int __n, int __category); -+extern char *__dcigettext (const char *__domainname, -+ const char *__msgid1, const char *__msgid2, -+ int __plural, unsigned long int __n, -+ int __category); -+extern char *__textdomain (const char *__domainname); -+extern char *__bindtextdomain (const char *__domainname, -+ const char *__dirname); -+extern char *__bind_textdomain_codeset (const char *__domainname, -+ const char *__codeset); -+#else -+/* Declare the exported libintl_* functions, in a way that allows us to -+ call them under their real name. */ -+# undef _INTL_REDIRECT_INLINE -+# undef _INTL_REDIRECT_MACROS -+# define _INTL_REDIRECT_MACROS -+# include "libgnuintl.h" -+extern char *libintl_dcigettext (const char *__domainname, -+ const char *__msgid1, const char *__msgid2, -+ int __plural, unsigned long int __n, -+ int __category); -+#endif - - /* @@ begin of epilog @@ */ - ---- lrzsz-0.12.20.safe/intl/gmo.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/gmo.h 2004-09-12 14:40:34.431736536 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/hash-string.h 1998-04-26 09:22:36.000000000 -0400 -+++ lrzsz-0.12.20/intl/hash-string.h 2004-09-12 14:40:34.436735776 -0400 -@@ -1,35 +1,23 @@ --/* Implements a string hashing function. -- Copyright (C) 1995, 1997 Free Software Foundation, Inc. -+/* Description of GNU message catalog format: string hashing function. -+ 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 Library General Public -- License along with the GNU C Library; see the file COPYING.LIB. If not, -- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -- Boston, MA 02111-1307, USA. */ -- --#ifdef HAVE_VALUES_H --# include <values.h> --#endif -+ 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 - -@@ -37,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 hash_string PARAMS ((const char *__str_param)); -- --static inline unsigned long --hash_string (str_param) -- const char *str_param; -+static inline unsigned long int -+hash_string (const char *str_param) - { - unsigned long int hval, g; - const char *str = str_param; -@@ -51,8 +36,8 @@ - while (*str != '\0') - { - hval <<= 4; -- hval += (unsigned long) *str++; -- g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4)); -+ hval += (unsigned char) *str++; -+ g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); - if (g != 0) - { - hval ^= g >> (HASHWORDBITS - 8); ---- lrzsz-0.12.20.safe/intl/intl-compat.c 1998-04-26 09:20:52.000000000 -0400 -+++ lrzsz-0.12.20/intl/intl-compat.c 2004-09-12 14:40:34.441735016 -0400 -@@ -1,76 +1,131 @@ - /* intl-compat.c - Stub functions to call gettext functions from GNU gettext - Library. -- Copyright (C) 1995 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 "libgettext.h" -+#include "gettextP.h" - - /* @@ end of prolog @@ */ - -+/* 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 - #undef dgettext - #undef dcgettext -+#undef ngettext -+#undef dngettext -+#undef dcngettext - #undef textdomain - #undef bindtextdomain -+#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 * --bindtextdomain (domainname, dirname) -- const char *domainname; -- const char *dirname; -+gettext (const char *msgid) - { -- return bindtextdomain__ (domainname, dirname); -+ return libintl_gettext (msgid); - } - - -+DLL_EXPORTED - char * --dcgettext (domainname, msgid, category) -- const char *domainname; -- const char *msgid; -- int category; -+dgettext (const char *domainname, const char *msgid) - { -- return dcgettext__ (domainname, msgid, category); -+ return libintl_dgettext (domainname, msgid); - } - - -+DLL_EXPORTED - char * --dgettext (domainname, msgid) -- const char *domainname; -- const char *msgid; -+dcgettext (const char *domainname, const char *msgid, int category) - { -- return dgettext__ (domainname, msgid); -+ return libintl_dcgettext (domainname, msgid, category); - } - - -+DLL_EXPORTED - char * --gettext (msgid) -- const char *msgid; -+ngettext (const char *msgid1, const char *msgid2, unsigned long int n) - { -- return gettext__ (msgid); -+ return libintl_ngettext (msgid1, msgid2, n); - } - - -+DLL_EXPORTED - char * --textdomain (domainname) -- const char *domainname; -+dngettext (const char *domainname, -+ const char *msgid1, const char *msgid2, unsigned long int n) - { -- return textdomain__ (domainname); -+ return libintl_dngettext (domainname, msgid1, msgid2, n); -+} -+ -+ -+DLL_EXPORTED -+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); -+} -+ -+ -+DLL_EXPORTED -+char * -+textdomain (const char *domainname) -+{ -+ return libintl_textdomain (domainname); -+} -+ -+ -+DLL_EXPORTED -+char * -+bindtextdomain (const char *domainname, const char *dirname) -+{ -+ return libintl_bindtextdomain (domainname, dirname); -+} -+ -+ -+DLL_EXPORTED -+char * -+bind_textdomain_codeset (const char *domainname, const char *codeset) -+{ -+ return libintl_bind_textdomain_codeset (domainname, codeset); - } ---- lrzsz-0.12.20.safe/intl/l10nflist.c 1998-04-26 09:22:37.000000000 -0400 -+++ lrzsz-0.12.20/intl/l10nflist.c 2004-09-12 14:40:34.457732584 -0400 -@@ -1,52 +1,40 @@ --/* Handle list of needed message catalogs -- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. -+/* 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 -+ <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 - -- --#if defined HAVE_STRING_H || defined _LIBC --# ifndef _GNU_SOURCE --# define _GNU_SOURCE 1 --# endif --# include <string.h> --#else --# include <strings.h> --# ifndef memcpy --# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) --# endif --#endif --#if !HAVE_STRCHR && !defined _LIBC --# ifndef strchr --# define strchr index --# endif --#endif -+#include <string.h> - - #if defined _LIBC || defined HAVE_ARGZ_H - # include <argz.h> - #endif - #include <ctype.h> - #include <sys/types.h> -- --#if defined STDC_HEADERS || defined _LIBC --# include <stdlib.h> --#endif -+#include <stdlib.h> - - #include "loadinfo.h" - -@@ -65,23 +53,39 @@ - /* Rename the non ANSI C functions. This is required by the standard - because some ANSI C functions will require linking with this object - file and the name space must not be polluted. */ --# define stpcpy(dest, src) __stpcpy(dest, src) -+# ifndef stpcpy -+# define stpcpy(dest, src) __stpcpy(dest, src) -+# 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) -@@ -95,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) - { -@@ -119,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) - { -@@ -150,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); -@@ -167,31 +166,27 @@ - - - struct loaded_l10nfile * --_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language, -- territory, codeset, normalized_codeset, modifier, special, -- sponsor, revision, filename, do_allocate) -- struct loaded_l10nfile **l10nfile_list; -- const char *dirlist; -- size_t dirlist_len; -- int mask; -- const char *language; -- const char *territory; -- const char *codeset; -- const char *normalized_codeset; -- const char *modifier; -- const char *special; -- const char *sponsor; -- const char *revision; -- const char *filename; -- int do_allocate; -+_nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list, -+ const char *dirlist, size_t dirlist_len, -+ int mask, const char *language, const char *territory, -+ const char *codeset, const char *normalized_codeset, -+ const char *modifier, const char *special, -+ const char *sponsor, const char *revision, -+ const char *filename, int do_allocate) - { - char *abs_filename; -- struct loaded_l10nfile *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) -@@ -209,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); -@@ -217,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, ':'); -- 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) -@@ -271,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) - { -@@ -286,7 +283,7 @@ - break; - } - -- last = retval; -+ lastp = &retval->next; - } - - if (retval != NULL || do_allocate == 0) -@@ -295,48 +292,66 @@ - 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->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, 1); - } -@@ -347,11 +362,10 @@ - - /* Normalize codeset name. There is no standard for the codeset - names. Normalization allows the user to use any of the common -- names. */ -+ 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; -@@ -360,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; - } - -@@ -378,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'; -@@ -398,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. */ ; ---- lrzsz-0.12.20.safe/intl/libgettext.h 1998-04-26 09:22:36.000000000 -0400 -+++ lrzsz-0.12.20/intl/libgettext.h 1969-12-31 19:00:00.000000000 -0500 -@@ -1,182 +0,0 @@ --/* Message catalogs for internationalization. -- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2, or (at your option) -- any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software Foundation, -- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -- --/* Because on some systems (e.g. Solaris) we sometimes have to include -- the systems libintl.h as well as this file we have more complex -- include protection above. But the systems header might perhaps also -- define _LIBINTL_H and therefore we have to protect the definition here. */ -- --#if !defined (_LIBINTL_H) || !defined (_LIBGETTEXT_H) --#if !defined (_LIBINTL_H) --# define _LIBINTL_H 1 --#endif --#define _LIBGETTEXT_H 1 -- --/* We define an additional symbol to signal that we use the GNU -- implementation of gettext. */ --#define __USE_GNU_GETTEXT 1 -- --#include <sys/types.h> -- --#if HAVE_LOCALE_H --# include <locale.h> --#endif -- -- --#ifdef __cplusplus --extern "C" { --#endif -- --/* @@ end of prolog @@ */ -- --#ifndef PARAMS --# if __STDC__ --# define PARAMS(args) args --# else --# define PARAMS(args) () --# endif --#endif -- --#ifndef NULL --# if !defined __cplusplus || defined __GNUC__ --# define NULL ((void *) 0) --# else --# define NULL (0) --# endif --#endif -- --#if !HAVE_LC_MESSAGES --/* This value determines the behaviour of the gettext() and dgettext() -- function. But some system does not have this defined. Define it -- to a default value. */ --# define LC_MESSAGES (-1) --#endif -- -- --/* Declarations for gettext-using-catgets interface. Derived from -- Jim Meyering's libintl.h. */ --struct _msg_ent --{ -- const char *_msg; -- int _msg_number; --}; -- -- --#if HAVE_CATGETS --/* These two variables are defined in the automatically by po-to-tbl.sed -- generated file `cat-id-tbl.c'. */ --extern const struct _msg_ent _msg_tbl[]; --extern int _msg_tbl_length; --#endif -- -- --/* For automatical extraction of messages sometimes no real -- translation is needed. Instead the string itself is the result. */ --#define gettext_noop(Str) (Str) -- --/* Look up MSGID in the current default message catalog for the current -- LC_MESSAGES locale. If not found, returns MSGID itself (the default -- text). */ --extern char *gettext PARAMS ((const char *__msgid)); --extern char *gettext__ PARAMS ((const char *__msgid)); -- --/* Look up MSGID in the DOMAINNAME message catalog for the current -- LC_MESSAGES locale. */ --extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid)); --extern char *dgettext__ PARAMS ((const char *__domainname, -- const char *__msgid)); -- --/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY -- locale. */ --extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid, -- int __category)); --extern char *dcgettext__ PARAMS ((const char *__domainname, -- const char *__msgid, int __category)); -- -- --/* Set the current default message catalog to DOMAINNAME. -- If DOMAINNAME is null, return the current default. -- If DOMAINNAME is "", reset to the default of "messages". */ --extern char *textdomain PARAMS ((const char *__domainname)); --extern char *textdomain__ PARAMS ((const char *__domainname)); -- --/* Specify that the DOMAINNAME message catalog will be found -- in DIRNAME rather than in the system locale data base. */ --extern char *bindtextdomain PARAMS ((const char *__domainname, -- const char *__dirname)); --extern char *bindtextdomain__ PARAMS ((const char *__domainname, -- const char *__dirname)); -- --#if ENABLE_NLS -- --/* Solaris 2.3 has the gettext function but dcgettext is missing. -- So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4 -- has dcgettext. */ --# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT) -- --# define gettext(Msgid) \ -- dgettext (NULL, Msgid) -- --# define dgettext(Domainname, Msgid) \ -- dcgettext (Domainname, Msgid, LC_MESSAGES) -- --# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7 --/* This global variable is defined in loadmsgcat.c. We need a sign, -- whether a new catalog was loaded, which can be associated with all -- translations. */ --extern int _nl_msg_cat_cntr; -- --# define dcgettext(Domainname, Msgid, Category) \ -- (__extension__ \ -- ({ \ -- char *__result; \ -- if (__builtin_constant_p (Msgid)) \ -- { \ -- static char *__translation__; \ -- static int __catalog_counter__; \ -- if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \ -- { \ -- __translation__ = \ -- dcgettext__ (Domainname, Msgid, Category); \ -- __catalog_counter__ = _nl_msg_cat_cntr; \ -- } \ -- __result = __translation__; \ -- } \ -- else \ -- __result = dcgettext__ (Domainname, Msgid, Category); \ -- __result; \ -- })) --# endif --# endif -- --#else -- --# define gettext(Msgid) (Msgid) --# define dgettext(Domainname, Msgid) (Msgid) --# define dcgettext(Domainname, Msgid, Category) (Msgid) --# define textdomain(Domainname) while (0) /* nothing */ --# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */ -- --#endif -- --/* @@ begin of epilog @@ */ -- --#ifdef __cplusplus --} --#endif -- --#endif ---- lrzsz-0.12.20.safe/intl/libgnuintl.h.in 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/libgnuintl.h.in 2004-09-12 14:40:34.462731824 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/linux-msg.sed 1998-04-26 09:20:52.000000000 -0400 -+++ lrzsz-0.12.20/intl/linux-msg.sed 1969-12-31 19:00:00.000000000 -0500 -@@ -1,100 +0,0 @@ --# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file --# Copyright (C) 1995 Free Software Foundation, Inc. --# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. --# --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, or (at your option) --# any later version. --# --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. --# --# You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --# --# --# The first directive in the .msg should be the definition of the --# message set number. We use always set number 1. --# --1 { -- i\ --$set 1 # Automatically created by po2msg.sed -- h -- s/.*/0/ -- x --} --# --# Mitch's old catalog format does not allow comments. --# --# We copy the original message as a comment into the .msg file. --# --/^msgid/ { -- s/msgid[ ]*"// --# --# This does not work now with the new format. --# /"$/! { --# s/\\$// --# s/$/ ... (more lines following)"/ --# } -- x --# The following nice solution is by --# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de> -- td --# Increment a decimal number in pattern space. --# First hide trailing `9' digits. -- :d -- s/9\(_*\)$/_\1/ -- td --# Assure at least one digit is available. -- s/^\(_*\)$/0\1/ --# Increment the last digit. -- s/8\(_*\)$/9\1/ -- s/7\(_*\)$/8\1/ -- s/6\(_*\)$/7\1/ -- s/5\(_*\)$/6\1/ -- s/4\(_*\)$/5\1/ -- s/3\(_*\)$/4\1/ -- s/2\(_*\)$/3\1/ -- s/1\(_*\)$/2\1/ -- s/0\(_*\)$/1\1/ --# Convert the hidden `9' digits to `0's. -- s/_/0/g -- x -- G -- s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p --} --# --# The .msg file contains, other then the .po file, only the translations --# but each given a unique ID. Starting from 1 and incrementing by 1 for --# each message we assign them to the messages. --# It is important that the .po file used to generate the cat-id-tbl.c file --# (with po-to-tbl) is the same as the one used here. (At least the order --# of declarations must not be changed.) --# --/^msgstr/ { -- s/msgstr[ ]*"\(.*\)"/# \1/ --# Clear substitution flag. -- tb --# Append the next line. -- :b -- N --# Look whether second part is continuation line. -- s/\(.*\n\)"\(.*\)"/\1\2/ --# Yes, then branch. -- ta -- P -- D --# Note that D includes a jump to the start!! --# We found a continuation line. But before printing insert '\'. -- :a -- s/\(.*\)\(\n.*\)/\1\\\2/ -- P --# We cannot use D here. -- s/.*\n\(.*\)/\1/ -- tb --} --d ---- lrzsz-0.12.20.safe/intl/loadinfo.h 1998-04-26 09:20:52.000000000 -0400 -+++ lrzsz-0.12.20/intl/loadinfo.h 2004-09-12 14:40:34.468730912 -0400 -@@ -1,9 +1,54 @@ --#ifndef PARAMS --# if __STDC__ --# define PARAMS(args) args --# else --# define PARAMS(args) () --# endif -+/* 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 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 _LOADINFO_H -+#define _LOADINFO_H 1 -+ -+/* 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 -+#endif -+ -+/* Tell the compiler when a conditional or integer expression is -+ almost always true or almost always false. */ -+#ifndef HAVE_BUILTIN_EXPECT -+# define __builtin_expect(expr, val) (expr) -+#endif -+ -+/* Separator in PATH like lists of pathnames. */ -+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ -+ /* Win32, OS/2, DOS */ -+# define PATH_SEPARATOR ';' -+#else -+ /* Unix */ -+# define PATH_SEPARATOR ':' - #endif - - /* Encoding of locale name parts. */ -@@ -32,27 +77,69 @@ - }; - - --extern const char *_nl_normalize_codeset PARAMS ((const char *codeset, -- size_t name_len)); -+/* Normalize codeset name. There is no standard for the codeset -+ 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 (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, int do_allocate)); -+_nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list, -+ const char *dirlist, size_t dirlist_len, int mask, -+ const char *language, const char *territory, -+ const char *codeset, const char *normalized_codeset, -+ const char *modifier, const char *special, -+ const char *sponsor, const char *revision, -+ const char *filename, int do_allocate); - -+/* Lookup the real locale name for a locale alias NAME, or NULL if -+ NAME is not a locale alias (but possibly a real locale name). -+ The return value is statically allocated and must not be freed. */ -+extern const char *_nl_expand_alias (const char *name); - --extern const char *_nl_expand_alias PARAMS ((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 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)); -+/* 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 */ ---- lrzsz-0.12.20.safe/intl/loadmsgcat.c 1998-04-26 09:22:37.000000000 -0400 -+++ lrzsz-0.12.20/intl/loadmsgcat.c 2004-09-12 14:40:34.473730152 -0400 -@@ -1,42 +1,455 @@ --/* Load needed message catalogs -- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -+/* Load needed message catalogs. -+ 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 -+ <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 - -+#include <ctype.h> -+#include <errno.h> - #include <fcntl.h> - #include <sys/types.h> - #include <sys/stat.h> - --#if defined STDC_HEADERS || defined _LIBC --# include <stdlib.h> -+#ifdef __GNUC__ -+# undef alloca -+# 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 <stdlib.h> -+#include <string.h> -+ - #if defined HAVE_UNISTD_H || defined _LIBC - # include <unistd.h> - #endif - --#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC -+#ifdef _LIBC -+# include <langinfo.h> -+# include <locale.h> -+#endif -+ -+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ -+ || (defined _LIBC && defined _POSIX_MAPPED_FILES) - # include <sys/mman.h> -+# undef HAVE_MMAP -+# define HAVE_MMAP 1 -+#else -+# 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 @@ */ - -@@ -44,7 +457,6 @@ - /* Rename the non ISO C functions. This is required by the standard - because some ISO C functions will require linking with this object - file and the name space must not be polluted. */ --# define fstat __fstat - # define open __open - # define close __close - # define read __read -@@ -52,30 +464,471 @@ - # define munmap __munmap - #endif - -+/* For those losing systems which don't have `alloca' we have to add -+ some additional code emulating it. */ -+#ifdef HAVE_ALLOCA -+# define freea(p) /* nothing */ -+#else -+# define alloca(n) malloc (n) -+# define freea(p) free (p) -+#endif -+ -+/* For systems that distinguish between text and binary I/O. -+ O_BINARY is usually declared in <fcntl.h>. */ -+#if !defined O_BINARY && defined _O_BINARY -+ /* For MSC-compatible compilers. */ -+# define O_BINARY _O_BINARY -+# define O_TEXT _O_TEXT -+#endif -+#ifdef __BEOS__ -+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ -+# undef O_BINARY -+# undef O_TEXT -+#endif -+/* On reasonable systems, binary I/O is the default. */ -+#ifndef O_BINARY -+# 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 = 0; -+int _nl_msg_cat_cntr; - - -+/* Expand a system dependent string segment. Return NULL if unsupported. */ -+static const char * -+get_sysdep_segment_value (const char *name) -+{ -+ /* 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') -+ { -+ 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; -+} -+ -+/* 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; -+ -+ /* Get the header entry. */ -+ nullentry = _nl_find_msg (domain_file, domainbinding, "", &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 (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; -+} -+ -+/* 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 --_nl_load_domain (domain_file) -- struct loaded_l10nfile *domain_file; -+internal_function -+_nl_load_domain (struct loaded_l10nfile *domain_file, -+ struct binding *domainbinding) - { - int fd; -+ size_t size; -+#ifdef _LIBC -+ struct stat64 st; -+#else - struct stat st; -+#endif - struct mo_file_header *data = (struct mo_file_header *) -1; --#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ -- || defined _LIBC - int use_mmap = 0; --#endif - struct loaded_domain *domain; -+ 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 -@@ -84,27 +937,32 @@ - return; - - /* Try to open the addressed file. */ -- fd = open (domain_file->filename, O_RDONLY); -+ fd = open (domain_file->filename, O_RDONLY | O_BINARY); - if (fd == -1) - return; - - /* We must know about the size of the file. */ -- if (fstat (fd, &st) != 0 -- && st.st_size < (off_t) sizeof (struct mo_file_header)) -+ if ( -+#ifdef _LIBC -+ __builtin_expect (fstat64 (fd, &st) != 0, 0) -+#else -+ __builtin_expect (fstat (fd, &st) != 0, 0) -+#endif -+ || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0) -+ || __builtin_expect (size < sizeof (struct mo_file_header), 0)) - { - /* Something went wrong. */ - close (fd); - return; - } - --#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ -- || defined _LIBC -+#ifdef HAVE_MMAP - /* Now we are ready to load the file. If mmap() is available we try - this first. If not available or it failed we try to load it. */ -- data = (struct mo_file_header *) mmap (NULL, st.st_size, PROT_READ, -+ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ, - MAP_PRIVATE, fd, 0); - -- if (data != (struct mo_file_header *) -1) -+ if (__builtin_expect (data != (struct mo_file_header *) -1, 1)) - { - /* mmap() call was successful. */ - close (fd); -@@ -116,24 +974,27 @@ - it manually. */ - if (data == (struct mo_file_header *) -1) - { -- off_t to_read; -+ size_t to_read; - char *read_ptr; - -- data = (struct mo_file_header *) malloc (st.st_size); -+ data = (struct mo_file_header *) malloc (size); - if (data == NULL) - return; - -- to_read = st.st_size; -+ to_read = size; - read_ptr = (char *) data; - do - { - long int nb = (long int) read (fd, read_ptr, to_read); -- if (nb == -1) -+ if (nb <= 0) - { -+#ifdef EINTR -+ if (nb == -1 && errno == EINTR) -+ continue; -+#endif - close (fd); - return; - } -- - read_ptr += nb; - to_read -= nb; - } -@@ -144,47 +1005,378 @@ - - /* Using the magic number we can test whether it really is a message - catalog file. */ -- if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED) -+ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED, -+ 0)) - { - /* The magic number is wrong: not a message catalog file. */ --#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ -- || defined _LIBC -+#ifdef HAVE_MMAP - if (use_mmap) -- munmap ((caddr_t) data, st.st_size); -+ munmap ((caddr_t) data, size); - else - #endif - free (data); - return; - } - -- domain_file->data -- = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); -- if (domain_file->data == NULL) -+ domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); -+ if (domain == NULL) - return; -+ domain_file->data = domain; - -- domain = (struct loaded_domain *) domain_file->data; - domain->data = (char *) data; -+ 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 illegal revision. */ --#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ -- || defined _LIBC -+ /* 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, st.st_size); -+ munmap ((caddr_t) data, size); - else - #endif - free (data); -@@ -193,7 +1385,36 @@ - return; - } - -- /* Show that one domain is changed. This might make some cached -- translations invalid. */ -- ++_nl_msg_cat_cntr; -+ /* 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. */ -+ EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals); - } -+ -+ -+#ifdef _LIBC -+void -+internal_function -+_nl_unload_domain (struct loaded_domain *domain) -+{ -+ if (domain->plural != &__gettext_germanic_plural) -+ __gettext_free_exp (domain->plural); -+ -+ _nl_free_domain_conv (domain); -+ -+ if (domain->malloced) -+ free (domain->malloced); -+ -+# ifdef _POSIX_MAPPED_FILES -+ if (domain->use_mmap) -+ munmap ((caddr_t) domain->data, domain->mmap_size); -+ else -+# endif /* _POSIX_MAPPED_FILES */ -+ free ((void *) domain->data); -+ -+ free (domain); -+} -+#endif ---- lrzsz-0.12.20.safe/intl/localcharset.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/localcharset.c 2004-09-12 14:40:34.478729392 -0400 -@@ -0,0 +1,398 @@ -+/* Determine a canonical name for the current locale's character encoding. -+ -+ 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. */ -+ -+/* 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 -+ -+#include <stdio.h> -+#if HAVE_STRING_H -+# include <string.h> -+#else -+# include <strings.h> -+#endif -+#if HAVE_STDLIB_H -+# include <stdlib.h> -+#endif -+ -+#if defined _WIN32 || defined __WIN32__ -+# undef WIN32 /* avoid warning on mingw32 */ -+# define WIN32 -+#endif -+ -+#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 -+# if HAVE_SETLOCALE -+# include <locale.h> -+# endif -+# endif -+#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 '/' -+#endif -+ -+#ifndef ISSLASH -+# 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 -+ 'charset_aliases' simultaneously, both will produce the same value, -+ and everything will be ok if the two assignments to 'charset_aliases' -+ are atomic. But I don't know what will happen if the two assignments mix. */ -+#if __STDC__ != 1 -+# define volatile /* empty */ -+#endif -+/* 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 const char * volatile charset_aliases; -+ -+/* Return a pointer to the contents of the charset.alias file. */ -+static const char * -+get_charset_aliases () -+{ -+ const char *cp; -+ -+ cp = charset_aliases; -+ if (cp == NULL) -+ { -+#if !(defined VMS || defined WIN32) -+ FILE *fp; -+ const char *dir = relocate (LIBDIR); -+ const char *base = "charset.alias"; -+ char *file_name; -+ -+ /* Concatenate dir and base into freshly allocated file_name. */ -+ { -+ size_t dir_len = strlen (dir); -+ size_t base_len = strlen (base); -+ int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); -+ file_name = (char *) malloc (dir_len + add_slash + base_len + 1); -+ if (file_name != NULL) -+ { -+ memcpy (file_name, dir, dir_len); -+ if (add_slash) -+ file_name[dir_len] = DIRECTORY_SEPARATOR; -+ memcpy (file_name + dir_len + add_slash, base, base_len + 1); -+ } -+ } -+ -+ if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) -+ /* Out of memory or file not found, treat it as empty. */ -+ cp = ""; -+ else -+ { -+ /* Parse the file's contents. */ -+ int c; -+ char buf1[50+1]; -+ char buf2[50+1]; -+ char *res_ptr = NULL; -+ size_t res_size = 0; -+ size_t l1, l2; -+ -+ for (;;) -+ { -+ c = getc (fp); -+ if (c == EOF) -+ break; -+ if (c == '\n' || c == ' ' || c == '\t') -+ continue; -+ if (c == '#') -+ { -+ /* Skip comment, to end of line. */ -+ do -+ c = getc (fp); -+ while (!(c == EOF || c == '\n')); -+ if (c == EOF) -+ break; -+ continue; -+ } -+ ungetc (c, fp); -+ 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 = (char *) malloc (res_size + 1); -+ } -+ else -+ { -+ res_size += l1 + 1 + l2 + 1; -+ res_ptr = (char *) realloc (res_ptr, res_size + 1); -+ } -+ if (res_ptr == NULL) -+ { -+ /* Out of memory. */ -+ res_size = 0; -+ break; -+ } -+ strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); -+ strcpy (res_ptr + res_size - (l2 + 1), buf2); -+ } -+ fclose (fp); -+ if (res_size == 0) -+ cp = ""; -+ else -+ { -+ *(res_ptr + res_size) = '\0'; -+ cp = res_ptr; -+ } -+ } -+ -+ if (file_name != NULL) -+ free (file_name); -+ -+#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" -+ "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; -+ } -+ -+ return cp; -+} -+ -+/* 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. */ -+ -+#ifdef STATIC -+STATIC -+#endif -+const char * -+locale_charset () -+{ -+ const char *codeset; -+ const char *aliases; -+ -+#if !(defined WIN32 || defined OS2) -+ -+# if HAVE_LANGINFO_CODESET -+ -+ /* Most systems support nl_langinfo (CODESET) nowadays. */ -+ codeset = nl_langinfo (CODESET); -+ -+# else -+ -+ /* On old systems which lack it, use setlocale or getenv. */ -+ const char *locale = NULL; -+ -+ /* But most old systems don't have a complete set of locales. Some -+ (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't -+ use setlocale here; it would return "C" when it doesn't support the -+ locale name the user has set. */ -+# if HAVE_SETLOCALE && 0 -+ locale = setlocale (LC_CTYPE, NULL); -+# endif -+ if (locale == NULL || locale[0] == '\0') -+ { -+ locale = getenv ("LC_ALL"); -+ if (locale == NULL || locale[0] == '\0') -+ { -+ locale = getenv ("LC_CTYPE"); -+ if (locale == NULL || locale[0] == '\0') -+ locale = getenv ("LANG"); -+ } -+ } -+ -+ /* On some old systems, one used to set locale = "iso8859_1". On others, -+ you set it to "language_COUNTRY.charset". In any case, we resolve it -+ through the charset.alias file. */ -+ codeset = locale; -+ -+# endif -+ -+#elif defined WIN32 -+ -+ static char buf[2 + 10 + 1]; -+ -+ /* 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) -+ /* The canonical name cannot be determined. */ -+ codeset = ""; -+ -+ /* Resolve alias. */ -+ for (aliases = get_charset_aliases (); -+ *aliases != '\0'; -+ aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) -+ if (strcmp (codeset, aliases) == 0 -+ || (aliases[0] == '*' && aliases[1] == '\0')) -+ { -+ codeset = aliases + strlen (aliases) + 1; -+ 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; -+} ---- lrzsz-0.12.20.safe/intl/localcharset.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/localcharset.h 2004-09-12 14:40:34.483728632 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/locale.alias 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/locale.alias 2004-09-12 14:40:34.499726200 -0400 -@@ -0,0 +1,78 @@ -+# Locale name alias data base. -+# Copyright (C) 1996-2001,2003 Free Software Foundation, Inc. -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Library General Public License as published -+# 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. -+ -+# The format of this file is the same as for the corresponding file of -+# the X Window System, which normally can be found in -+# /usr/lib/X11/locale/locale.alias -+# A single line contains two fields: an alias and a substitution value. -+# All entries are case independent. -+ -+# Note: This file is far from being complete. If you have a value for -+# your own site which you think might be useful for others too, share -+# it with the rest of us. Send it using the `glibcbug' script to -+# bugs@gnu.org. -+ -+# Packages using this file: -+ -+bokmal nb_NO.ISO-8859-1 -+bokml nb_NO.ISO-8859-1 -+catalan ca_ES.ISO-8859-1 -+croatian hr_HR.ISO-8859-2 -+czech cs_CZ.ISO-8859-2 -+danish da_DK.ISO-8859-1 -+dansk da_DK.ISO-8859-1 -+deutsch de_DE.ISO-8859-1 -+dutch nl_NL.ISO-8859-1 -+eesti et_EE.ISO-8859-1 -+estonian et_EE.ISO-8859-1 -+finnish fi_FI.ISO-8859-1 -+franais fr_FR.ISO-8859-1 -+french fr_FR.ISO-8859-1 -+galego gl_ES.ISO-8859-1 -+galician gl_ES.ISO-8859-1 -+german de_DE.ISO-8859-1 -+greek el_GR.ISO-8859-7 -+hebrew he_IL.ISO-8859-8 -+hrvatski hr_HR.ISO-8859-2 -+hungarian hu_HU.ISO-8859-2 -+icelandic is_IS.ISO-8859-1 -+italian it_IT.ISO-8859-1 -+japanese ja_JP.eucJP -+japanese.euc ja_JP.eucJP -+ja_JP ja_JP.eucJP -+ja_JP.ujis ja_JP.eucJP -+japanese.sjis ja_JP.SJIS -+korean ko_KR.eucKR -+korean.euc ko_KR.eucKR -+ko_KR ko_KR.eucKR -+lithuanian lt_LT.ISO-8859-13 -+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 -+romanian ro_RO.ISO-8859-2 -+russian ru_RU.ISO-8859-5 -+slovak sk_SK.ISO-8859-2 -+slovene sl_SI.ISO-8859-2 -+slovenian sl_SI.ISO-8859-2 -+spanish es_ES.ISO-8859-1 -+swedish sv_SE.ISO-8859-1 -+thai th_TH.TIS-620 -+turkish tr_TR.ISO-8859-9 ---- lrzsz-0.12.20.safe/intl/localealias.c 1998-04-26 09:22:37.000000000 -0400 -+++ lrzsz-0.12.20/intl/localealias.c 2004-09-12 14:40:34.505725288 -0400 -@@ -1,20 +1,27 @@ --/* Handle aliases for locale names -- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. -+/* Handle aliases for locale names. -+ 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 -+ <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> -@@ -22,56 +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 - --#if defined STDC_HEADERS || defined _LIBC --# include <stdlib.h> --#else --char *getenv (); --# ifdef HAVE_MALLOC_H --# include <malloc.h> --# else --void free (); --# endif --#endif -+#include <stdlib.h> -+#include <string.h> - --#if defined HAVE_STRING_H || defined _LIBC --# ifndef _GNU_SOURCE --# define _GNU_SOURCE 1 --# endif --# include <string.h> -+#include "gettextP.h" -+ -+#if ENABLE_RELOCATABLE -+# include "relocatable.h" - #else --# include <strings.h> --# ifndef memcpy --# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) --# endif --#endif --#if !HAVE_STRCHR && !defined _LIBC --# ifndef strchr --# define strchr index --# endif -+# define relocate(pathname) (pathname) - #endif - --#include "gettext.h" --#include "gettextP.h" -- - /* @@ end of prolog @@ */ - - #ifdef _LIBC -@@ -79,43 +75,49 @@ - because some ANSI C functions will require linking with this object - file and the name space must not be polluted. */ - # define strcasecmp __strcasecmp -+ -+# ifndef mempcpy -+# 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> -+ -+__libc_lock_define_initialized (static, lock); -+#endif -+ -+#ifndef internal_function -+# 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 loosing systems which don't have `alloca' we have to add -+/* For those losing systems which don't have `alloca' we have to add - some additional code emulating it. */ - #ifdef HAVE_ALLOCA --/* Nothing has to be done. */ --# define ADD_BLOCK(list, address) /* nothing */ --# define FREE_BLOCKS(list) /* nothing */ -+# define freea(p) /* nothing */ - #else --struct block_list --{ -- void *address; -- struct block_list *next; --}; --# define ADD_BLOCK(list, addr) \ -- do { \ -- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ -- /* If we cannot get a free block we cannot add the new element to \ -- the list. */ \ -- if (newp != NULL) { \ -- newp->address = (addr); \ -- newp->next = (list); \ -- (list) = newp; \ -- } \ -- } while (0) --# define FREE_BLOCKS(list) \ -- do { \ -- while (list != NULL) { \ -- struct block_list *old = list; \ -- list = list->next; \ -- free (old); \ -- } \ -- } while (0) --# undef alloca --# define alloca(size) (malloc (size)) --#endif /* have alloca */ -+# define alloca(n) malloc (n) -+# define freea(p) free (p) -+#endif -+ -+#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 || HAVE_DECL_FEOF_UNLOCKED -+# undef feof -+# define feof(s) feof_unlocked (s) -+#endif - - - struct alias_map -@@ -125,26 +127,41 @@ - }; - - --static struct alias_map *map; --static size_t nmap = 0; --static size_t maxmap = 0; -+#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; -+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 void extend_alias_table PARAMS ((void)); --static int alias_compare PARAMS ((const struct alias_map *map1, -- const struct alias_map *map2)); -+static size_t read_alias_file (const char *fname, int fname_len) -+ internal_function; -+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; - -+#ifdef _LIBC -+ __libc_lock_lock (lock); -+#endif -+ -+ if (locale_alias_path == NULL) -+ locale_alias_path = LOCALE_ALIAS_PATH; -+ - do - { - struct alias_map item; -@@ -154,15 +171,18 @@ - 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; - - /* We really found an alias. Return the value. */ - if (retval != NULL) -- return retval->value; -+ { -+ result = retval->value; -+ break; -+ } - - /* Perhaps we can find another alias file. */ - added = 0; -@@ -170,11 +190,12 @@ - { - const char *start; - -- while (locale_alias_path[0] == ':') -+ while (locale_alias_path[0] == PATH_SEPARATOR) - ++locale_alias_path; - start = locale_alias_path; - -- while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':') -+ while (locale_alias_path[0] != '\0' -+ && locale_alias_path[0] != PATH_SEPARATOR) - ++locale_alias_path; - - if (start < locale_alias_path) -@@ -183,78 +204,87 @@ - } - while (added != 0); - -- return NULL; -+#ifdef _LIBC -+ __libc_lock_unlock (lock); -+#endif -+ -+ return result; - } - - - static size_t --read_alias_file (fname, fname_len) -- const char *fname; -- int fname_len; -+internal_function -+read_alias_file (const char *fname, int fname_len) - { --#ifndef HAVE_ALLOCA -- struct block_list *block_list = NULL; --#endif - FILE *fp; - char *full_fname; - size_t added; - static const char aliasfile[] = "/locale.alias"; - - full_fname = (char *) alloca (fname_len + sizeof aliasfile); -- ADD_BLOCK (block_list, full_fname); -+#ifdef HAVE_MEMPCPY -+ mempcpy (mempcpy (full_fname, fname, fname_len), -+ aliasfile, sizeof aliasfile); -+#else - memcpy (full_fname, fname, fname_len); - memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); -+#endif - -- fp = fopen (full_fname, "r"); -+ fp = fopen (relocate (full_fname), "r"); -+ freea (full_fname); - if (fp == NULL) -- { -- FREE_BLOCKS (block_list); -- return 0; -- } -+ 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, BUFSIZ, fp) == NULL) -+ if (FGETS (buf, sizeof buf, fp) == NULL) - /* EOF reached. */ - break; - - 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') - { -- char *tp; -- size_t len; -+ size_t alias_len; -+ 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') -@@ -269,28 +299,44 @@ - *cp++ = '\0'; - - if (nmap >= maxmap) -- extend_alias_table (); -- -- /* We cannot depend on strdup available in the libc. Sigh! */ -- len = strlen (alias) + 1; -- tp = (char *) malloc (len); -- if (tp == NULL) -- { -- FREE_BLOCKS (block_list); -+ if (__builtin_expect (extend_alias_table (), 0)) - return added; -- } -- memcpy (tp, alias, len); -- map[nmap].alias = tp; - -- len = strlen (value) + 1; -- tp = (char *) malloc (len); -- if (tp == NULL) -+ alias_len = strlen (alias) + 1; -+ value_len = strlen (value) + 1; -+ -+ if (string_space_act + alias_len + value_len > string_space_max) - { -- FREE_BLOCKS (block_list); -- return added; -+ /* Increase size of memory pool. */ -+ size_t new_size = (string_space_max -+ + (alias_len + value_len > 1024 -+ ? alias_len + value_len : 1024)); -+ char *new_pool = (char *) realloc (string_space, new_size); -+ if (new_pool == NULL) -+ return added; -+ -+ if (__builtin_expect (string_space != new_pool, 0)) -+ { -+ size_t i; -+ -+ for (i = 0; i < nmap; i++) -+ { -+ map[i].alias += new_pool - string_space; -+ map[i].value += new_pool - string_space; -+ } -+ } -+ -+ string_space = new_pool; -+ string_space_max = new_size; - } -- memcpy (tp, value, len); -- map[nmap].value = tp; -+ -+ map[nmap].alias = memcpy (&string_space[string_space_act], -+ alias, alias_len); -+ string_space_act += alias_len; -+ -+ map[nmap].value = memcpy (&string_space[string_space_act], -+ value, value_len); -+ string_space_act += value_len; - - ++nmap; - ++added; -@@ -299,14 +345,11 @@ - - /* Possibly not the whole line fits into the buffer. Ignore - the rest of the line. */ -- while (strchr (cp, '\n') == NULL) -- { -- cp = buf; -- if (fgets (buf, BUFSIZ, fp) == NULL) -- /* Make sure the inner loop will be left. The outer loop -- will exit at the `feof' test. */ -- *cp = '\n'; -- } -+ 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 -@@ -315,40 +358,33 @@ - - 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); - -- FREE_BLOCKS (block_list); - return added; - } - - --static void -+static int - extend_alias_table () - { - size_t new_size; - struct alias_map *new_map; - - new_size = maxmap == 0 ? 100 : 2 * maxmap; -- new_map = (struct alias_map *) malloc (new_size -- * sizeof (struct alias_map)); -+ new_map = (struct alias_map *) realloc (map, (new_size -+ * sizeof (struct alias_map))); - if (new_map == NULL) - /* Simply don't extend: we don't have any more core. */ -- return; -- -- memcpy (new_map, map, nmap * sizeof (struct alias_map)); -- -- if (maxmap != 0) -- free (map); -+ return -1; - - map = new_map; - maxmap = new_size; -+ return 0; - } - - - 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); ---- lrzsz-0.12.20.safe/intl/localename.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/localename.c 2004-09-12 14:40:34.510724528 -0400 -@@ -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 -+} ---- lrzsz-0.12.20.safe/intl/log.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/log.c 2004-09-12 14:40:34.515723768 -0400 -@@ -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); -+} ---- lrzsz-0.12.20.safe/intl/Makefile.in 1998-04-26 09:22:35.000000000 -0400 -+++ lrzsz-0.12.20/intl/Makefile.in 2004-09-12 14:40:34.521722856 -0400 -@@ -1,19 +1,20 @@ --# Makefile for directory with message catalog handling in GNU NLS Utilities. --# Copyright (C) 1995, 1996, 1997 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,118 +24,341 @@ - 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)/@DATADIRNAME@ -+libdir = @libdir@ -+includedir = @includedir@ -+datadir = @datadir@ - localedir = $(datadir)/locale --gnulocaledir = $(prefix)/share/locale --gettextsrcdir = @datadir@/gettext/intl --aliaspath = $(localedir):. -+gettextsrcdir = $(datadir)/gettext/intl -+aliaspath = $(localedir) - subdir = intl - - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - MKINSTALLDIRS = @MKINSTALLDIRS@ -+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) - --l = @l@ -+l = @INTL_LIBTOOL_SUFFIX_PREFIX@ - - AR = ar - CC = @CC@ - LIBTOOL = @LIBTOOL@ - RANLIB = @RANLIB@ -+YACC = @INTLBISON@ -y -d -+YFLAGS = --name-prefix=__gettext - --DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \ ---DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@ -+DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ -+-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) libgettext.h loadinfo.h --COMHDRS = gettext.h gettextP.h hash-string.h --SOURCES = $(COMSRCS) intl-compat.c cat-compat.c --COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \ --finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \ --explodename.c --OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \ --finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \ --explodename.$lo --CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo --GETTOBJS = intl-compat.$lo --DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \ --xopen-msg.sed $(HEADERS) $(SOURCES) -+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 intlh.inst.in -+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=7 -+LTV_REVISION=0 -+LTV_AGE=4 - - .SUFFIXES: --.SUFFIXES: .c .o .lo -+.SUFFIXES: .c .y .o .lo .sin .sed -+ - .c.o: - $(COMPILE) $< --.c.lo: -- $(LIBTOOL) --mode=compile $(COMPILE) $< - --INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib -+.y.c: -+ $(YACC) $(YFLAGS) --output $@ $< -+ rm -f $*.h - --all: all-@USE_INCLUDED_LIBINTL@ -+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-yes: libintl.$la intlh.inst --all-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: $(OBJECTS) -- rm -f $@ -- $(AR) cru $@ $(OBJECTS) -- $(RANLIB) $@ -+INCLUDES = -I. -I$(srcdir) -I.. - --libintl.la: $(OBJECTS) -- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \ -- -version-info 1:0 -rpath $(libdir) -+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 - --../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot -- cd ../po && $(MAKE) cat-id-tbl.$lo -+libintl.h: libgnuintl.h -+ cp libgnuintl.h libintl.h - --check: all -+charset.alias: $(srcdir)/config.charset -+ $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ -+ mv t-$@ $@ - --# This installation goal is only used in GNU gettext. Packages which --# only use the library should use install instead. -+check: all - - # We must not install the libintl.h/libintl.a files if we are on a --# system which has the gettext() function in its C library or in a --# separate library or use the catgets interface. A special case is --# where configure found a previously installed GNU gettext library. -+# system which has the GNU gettext() function in its C library or in a -+# separate library. - # If you want to use the one which comes with this version of the - # package, you have to use `configure --with-included-gettext'. - install: install-exec install-data - install-exec: all -- if test "$(PACKAGE)" = "gettext" \ -- && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ -- if test -r $(MKINSTALLDIRS); then \ -- $(MKINSTALLDIRS) $(libdir) $(includedir); \ -- else \ -- $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \ -+ 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; \ -- $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \ -- $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \ - else \ - : ; \ - fi --install-data: all -- if test "$(PACKAGE)" = "gettext"; then \ -- if test -r $(MKINSTALLDIRS); then \ -- $(MKINSTALLDIRS) $(gettextsrcdir); \ -+ if test "$(PACKAGE)" = "gettext-tools" \ -+ && test '@USE_INCLUDED_LIBINTL@' = no; then \ -+ $(mkinstalldirs) $(DESTDIR)$(libdir); \ -+ $(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; \ -+ 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 \ -- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ -+ if test @GLIBC21@ = no; then \ -+ orig=charset.alias; \ -+ sed -f ref-add.sed $$orig > $$temp; \ -+ $(INSTALL_DATA) $$temp $$dest; \ -+ rm -f $$temp; \ -+ fi; \ - fi; \ -- $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \ -- dists="$(DISTFILES.common)"; \ -+ $(mkinstalldirs) $(DESTDIR)$(localedir); \ -+ test -f $(DESTDIR)$(localedir)/locale.alias \ -+ && orig=$(DESTDIR)$(localedir)/locale.alias \ -+ || orig=$(srcdir)/locale.alias; \ -+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ -+ dest=$(DESTDIR)$(localedir)/locale.alias; \ -+ sed -f ref-add.sed $$orig > $$temp; \ -+ $(INSTALL_DATA) $$temp $$dest; \ -+ rm -f $$temp; \ -+ else \ -+ : ; \ -+ fi -+install-data: all -+ if test "$(PACKAGE)" = "gettext-tools"; then \ -+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ -+ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ -+ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \ -+ dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \ - for file in $$dists; do \ -- $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \ -+ $(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; \ -+ done; \ -+ else \ -+ : ; \ -+ 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 -@@ -143,22 +367,76 @@ - installcheck: - - uninstall: -- dists="$(DISTFILES.common)"; \ -- for file in $$dists; do \ -- rm -f $(gettextsrcdir)/$$file; \ -- done -+ 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; \ -+ dest=$(DESTDIR)$(libdir)/charset.alias; \ -+ sed -f ref-del.sed $$dest > $$temp; \ -+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ -+ rm -f $$dest; \ -+ else \ -+ $(INSTALL_DATA) $$temp $$dest; \ -+ fi; \ -+ rm -f $$temp; \ -+ fi; \ -+ if test -f $(DESTDIR)$(localedir)/locale.alias; then \ -+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ -+ dest=$(DESTDIR)$(localedir)/locale.alias; \ -+ sed -f ref-del.sed $$dest > $$temp; \ -+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ -+ rm -f $$dest; \ -+ else \ -+ $(INSTALL_DATA) $$temp $$dest; \ -+ fi; \ -+ rm -f $$temp; \ -+ fi; \ -+ else \ -+ : ; \ -+ fi -+ 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 libgettext.h --bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h --dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h -+$(OBJECTS): ../config.h libgnuintl.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) -@@ -166,12 +444,19 @@ - - - mostlyclean: -- rm -f *.a *.o *.lo core core.* -+ 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 po2msg.sed po2tbl.sed libintl.h -+ rm -f Makefile ID TAGS -+ if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \ -+ rm -f ChangeLog.inst $(DISTFILES.normal); \ -+ else \ -+ : ; \ -+ fi - - maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" -@@ -181,33 +466,27 @@ - # GNU gettext needs not contain the file `VERSION' but contains some - # other files which should not be distributed in other packages. - distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) --dist distdir: Makefile $(DISTFILES) -- if test "$(PACKAGE)" = gettext; then \ -- additional="$(DISTFILES.gettext)"; \ -+dist distdir: Makefile -+ if test "$(PACKAGE)" = "gettext-tools"; then \ -+ : ; \ - else \ -- additional="$(DISTFILES.normal)"; \ -- fi; \ -- for file in $(DISTFILES.common) $$additional; do \ -- ln $(srcdir)/$$file $(distdir) 2> /dev/null \ -- || cp -p $(srcdir)/$$file $(distdir); \ -- done -- --dist-libc: -- tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc -- --Makefile: Makefile.in ../config.status -- cd .. \ -- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status -+ 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 - --# The dependency for intlh.inst is different in gettext and all other --# packages. Because we cannot you GNU make features we have to solve --# the problem while rewriting Makefile.in. --@GT_YES@intlh.inst: intlh.inst.in ../config.status --@GT_YES@ cd .. \ --@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \ --@GT_YES@ $(SHELL) ./config.status --@GT_NO@.PHONY: intlh.inst --@GT_NO@intlh.inst: -+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. ---- lrzsz-0.12.20.safe/intl/ngettext.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/ngettext.c 2004-09-12 14:40:34.533721032 -0400 -@@ -0,0 +1,65 @@ -+/* Implementation of ngettext(3) function. -+ 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. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#ifdef _LIBC -+# define __need_NULL -+# include <stddef.h> -+#else -+# include <stdlib.h> /* Just for NULL. */ -+#endif -+ -+#include "gettextP.h" -+#ifdef _LIBC -+# include <libintl.h> -+#else -+# include "libgnuintl.h" -+#endif -+ -+#include <locale.h> -+ -+/* @@ end of prolog @@ */ -+ -+/* Names for the libintl functions are a problem. They must not clash -+ with existing names and they should follow ANSI C. But this source -+ code is also used in GNU C Library where the names have a __ -+ prefix. So we have to make a difference here. */ -+#ifdef _LIBC -+# define NGETTEXT __ngettext -+# define DCNGETTEXT __dcngettext -+#else -+# 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 (const char *msgid1, const char *msgid2, unsigned long int n) -+{ -+ return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES); -+} -+ -+#ifdef _LIBC -+/* Alias for function name in GNU C Library. */ -+weak_alias (__ngettext, ngettext); -+#endif ---- lrzsz-0.12.20.safe/intl/os2compat.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/os2compat.c 2004-09-12 14:40:34.539720120 -0400 -@@ -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); -+} ---- lrzsz-0.12.20.safe/intl/os2compat.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/os2compat.h 2004-09-12 14:40:34.544719360 -0400 -@@ -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) ---- lrzsz-0.12.20.safe/intl/osdep.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/osdep.c 2004-09-12 14:40:34.550718448 -0400 -@@ -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 ---- lrzsz-0.12.20.safe/intl/plural.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/plural.c 2004-09-12 14:40:36.571411256 -0400 -@@ -0,0 +1,1490 @@ -+/* A Bison parser, made from plural.y -+ by GNU bison 1.35. */ -+ -+#define YYBISON 1 /* Identify Bison output. */ -+ -+#define yyparse __gettextparse -+#define yylex __gettextlex -+#define yyerror __gettexterror -+#define yylval __gettextlval -+#define yychar __gettextchar -+#define yydebug __gettextdebug -+#define yynerrs __gettextnerrs -+# 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, 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. */ -+ -+/* 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 -+ skeleton file comes too late. This must come before <config.h> -+ because <config.h> may include arbitrary system headers. */ -+#if defined _AIX && !defined __GNUC__ -+ #pragma alloca -+#endif -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <stddef.h> -+#include <stdlib.h> -+#include "plural-exp.h" -+ -+/* 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 49 "plural.y" -+#ifndef YYSTYPE -+typedef union { -+ unsigned long int num; -+ enum operator op; -+ struct expression *exp; -+} yystype; -+# define YYSTYPE yystype -+# define YYSTYPE_IS_TRIVIAL 1 -+#endif -+#line 55 "plural.y" -+ -+/* Prototypes for local functions. */ -+static int yylex (YYSTYPE *lval, const char **pexp); -+static void yyerror (const char *str); -+ -+/* Allocation of expressions. */ -+ -+static struct expression * -+new_exp (int nargs, enum operator op, struct expression * const *args) -+{ -+ int i; -+ struct expression *newp; -+ -+ /* If any of the argument could not be malloc'ed, just return NULL. */ -+ for (i = nargs - 1; i >= 0; i--) -+ if (args[i] == NULL) -+ goto fail; -+ -+ /* Allocate a new expression. */ -+ newp = (struct expression *) malloc (sizeof (*newp)); -+ if (newp != NULL) -+ { -+ newp->nargs = nargs; -+ newp->operation = op; -+ for (i = nargs - 1; i >= 0; i--) -+ newp->val.args[i] = args[i]; -+ return newp; -+ } -+ -+ fail: -+ for (i = nargs - 1; i >= 0; i--) -+ FREE_EXPRESSION (args[i]); -+ -+ return NULL; -+} -+ -+static inline struct expression * -+new_exp_0 (enum operator op) -+{ -+ return new_exp (0, op, NULL); -+} -+ -+static inline struct expression * -+new_exp_1 (enum operator op, struct expression *right) -+{ -+ struct expression *args[1]; -+ -+ args[0] = right; -+ return new_exp (1, op, args); -+} -+ -+static struct expression * -+new_exp_2 (enum operator op, struct expression *left, struct expression *right) -+{ -+ struct expression *args[2]; -+ -+ args[0] = left; -+ args[1] = right; -+ return new_exp (2, op, args); -+} -+ -+static inline struct expression * -+new_exp_3 (enum operator op, struct expression *bexp, -+ struct expression *tbranch, struct expression *fbranch) -+{ -+ struct expression *args[3]; -+ -+ args[0] = bexp; -+ args[1] = tbranch; -+ args[2] = fbranch; -+ return new_exp (3, op, args); -+} -+ -+#ifndef YYDEBUG -+# define YYDEBUG 0 -+#endif -+ -+ -+ -+#define YYFINAL 27 -+#define YYFLAG -32768 -+#define YYNTBASE 16 -+ -+/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -+#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18) -+ -+/* 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 -+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 -+}; -+ -+#endif -+ -+#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) || defined YYERROR_VERBOSE -+ -+/* 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 -+ -+/* 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 -+}; -+ -+/* 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 -+}; -+ -+/* 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 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 -+}; -+ -+ -+#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 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/local/share/bison/bison.simple" -+ -+/* Skeleton output parser for bison, -+ -+ 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 -+ the Free Software Foundation; either version 2, or (at your option) -+ any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, write to the Free Software -+ Foundation, Inc., 59 Temple Place - Suite 330, -+ Boston, MA 02111-1307, USA. */ -+ -+/* As a special exception, when this file is copied by Bison into a -+ Bison output file, you may use that output file without restriction. -+ 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. */ -+ -+/* 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) -+ -+#endif -+ -+ -+#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) -+#define YYEMPTY -2 -+#define YYEOF 0 -+#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. -+ Once GCC version 2 has supplanted version 1, this can go. */ -+#define YYFAIL goto yyerrlab -+#define YYRECOVERING() (!!yyerrstatus) -+#define YYBACKUP(Token, Value) \ -+do \ -+ if (yychar == YYEMPTY && yylen == 1) \ -+ { \ -+ yychar = (Token); \ -+ yylval = (Value); \ -+ yychar1 = YYTRANSLATE (yychar); \ -+ YYPOPSTACK; \ -+ goto yybackup; \ -+ } \ -+ else \ -+ { \ -+ yyerror ("syntax error: cannot back up"); \ -+ YYERROR; \ -+ } \ -+while (0) -+ -+#define YYTERROR 1 -+#define YYERRCODE 256 -+ -+ -+/* 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 -+ -+ -+/* YYLEX -- calling `yylex' with the right arguments. */ -+ -+#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 */ -+ -+ -+/* Enable debugging if requested. */ -+#if YYDEBUG -+ -+# ifndef YYFPRINTF -+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -+# define YYFPRINTF fprintf -+# endif -+ -+# 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 -+#endif -+ -+/* 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 -+#endif -+ -+#ifndef YYMAXDEPTH -+# define YYMAXDEPTH 10000 -+#endif -+ -+#ifdef YYERROR_VERBOSE -+ -+# 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 const char *yys = yystr; -+ -+ while (*yys++ != '\0') -+ continue; -+ -+ return yys - yystr - 1; -+} -+# endif -+# endif -+ -+# 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 *yyd = yydest; -+ register const char *yys = yysrc; -+ -+ while ((*yyd++ = *yys++) != '\0') -+ continue; -+ -+ return yyd - 1; -+} -+# endif -+# endif -+#endif -+ -+#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 *. -+ It should actually point to an object. -+ Grammar actions can access the variable by casting it -+ to the proper pointer type. */ -+ -+#ifdef 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 -+int yyparse (void *); -+# 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_PARAM_DECL -+{ -+ /* If reentrant, generate the variables here. */ -+#if YYPURE -+ YY_DECL_VARIABLES -+#endif /* !YYPURE */ -+ -+ register int yystate; -+ register int yyn; -+ int yyresult; -+ /* Number of tokens to shift before error messages enabled. */ -+ int yyerrstatus; -+ /* Lookahead token as an internal (translated) token number. */ -+ int yychar1 = 0; -+ -+ /* Three stacks and their tools: -+ `yyss': related to states, -+ `yyvs': related to semantic values, -+ `yyls': related to locations. -+ -+ Refer to the stacks thru separate pointers, to allow yyoverflow -+ to reallocate them elsewhere. */ -+ -+ /* 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 -+ -+#if YYLSP_NEEDED -+# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -+#else -+# define YYPOPSTACK (yyvsp--, yyssp--) -+#endif -+ -+ YYSIZE_T yystacksize = YYINITDEPTH; -+ -+ -+ /* 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; -+ -+ YYDPRINTF ((stderr, "Starting parse\n")); -+ -+ yystate = 0; -+ yyerrstatus = 0; -+ yynerrs = 0; -+ yychar = YYEMPTY; /* Cause a token to be read. */ -+ -+ /* Initialize stack pointers. -+ Waste one element of value and location stack -+ so that they stay on the same level as the state stack. -+ The wasted elements are never initialized. */ -+ -+ yyssp = yyss; -+ yyvsp = yyvs; -+#if YYLSP_NEEDED -+ yylsp = yyls; -+#endif -+ goto yysetstate; -+ -+/*------------------------------------------------------------. -+| 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++; -+ -+ yysetstate: -+ *yyssp = yystate; -+ -+ if (yyssp >= yyss + yystacksize - 1) -+ { -+ /* Get the current used size of the three stacks, in elements. */ -+ YYSIZE_T yysize = yyssp - yyss + 1; -+ -+#ifdef yyoverflow -+ { -+ /* 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; -+ -+ /* 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) -+ goto yyoverflowlab; -+ yystacksize *= 2; -+ if (yystacksize > YYMAXDEPTH) -+ yystacksize = YYMAXDEPTH; -+ -+ { -+ 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 + yysize - 1; -+ yyvsp = yyvs + yysize - 1; -+#if YYLSP_NEEDED -+ yylsp = yyls + yysize - 1; -+#endif -+ -+ YYDPRINTF ((stderr, "Stack size increased to %lu\n", -+ (unsigned long int) yystacksize)); -+ -+ if (yyssp >= yyss + yystacksize - 1) -+ YYABORT; -+ } -+ -+ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); -+ -+ goto yybackup; -+ -+ -+/*-----------. -+| yybackup. | -+`-----------*/ -+yybackup: -+ -+/* Do appropriate processing given the current state. */ -+/* Read a lookahead token if we need one and don't already have one. */ -+/* yyresume: */ -+ -+ /* First try to decide what to do without reference to lookahead token. */ -+ -+ yyn = yypact[yystate]; -+ if (yyn == YYFLAG) -+ goto yydefault; -+ -+ /* Not known => get a lookahead token if don't already have one. */ -+ -+ /* yychar is either YYEMPTY or YYEOF -+ or a valid token in external form. */ -+ -+ if (yychar == YYEMPTY) -+ { -+ YYDPRINTF ((stderr, "Reading a token: ")); -+ yychar = YYLEX; -+ } -+ -+ /* Convert token to internal form (in yychar1) for indexing tables with */ -+ -+ if (yychar <= 0) /* This means end of input. */ -+ { -+ yychar1 = 0; -+ yychar = YYEOF; /* Don't call YYLEX any more */ -+ -+ YYDPRINTF ((stderr, "Now at end of input.\n")); -+ } -+ else -+ { -+ yychar1 = YYTRANSLATE (yychar); -+ -+#if YYDEBUG -+ /* We have to keep this `#if YYDEBUG', since we use variables -+ which are defined only if `YYDEBUG' is set. */ -+ if (yydebug) -+ { -+ 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 -+ YYFPRINTF (stderr, ")\n"); -+ } -+#endif -+ } -+ -+ yyn += yychar1; -+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) -+ goto yydefault; -+ -+ yyn = yytable[yyn]; -+ -+ /* yyn is what to do for this token type in this state. -+ Negative => reduce, -yyn is rule number. -+ Positive => shift, yyn is new state. -+ New state is final state => don't bother to shift, -+ just return success. -+ 0, or most negative number => error. */ -+ -+ if (yyn < 0) -+ { -+ if (yyn == YYFLAG) -+ goto yyerrlab; -+ yyn = -yyn; -+ goto yyreduce; -+ } -+ else if (yyn == 0) -+ goto yyerrlab; -+ -+ if (yyn == YYFINAL) -+ YYACCEPT; -+ -+ /* Shift the lookahead token. */ -+ 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; -+#if YYLSP_NEEDED -+ *++yylsp = yylloc; -+#endif -+ -+ /* Count tokens shifted since error; after three, turn off error -+ status. */ -+ if (yyerrstatus) -+ yyerrstatus--; -+ -+ yystate = yyn; -+ goto yynewstate; -+ -+ -+/*-----------------------------------------------------------. -+| yydefault -- do the default action for the current state. | -+`-----------------------------------------------------------*/ -+yydefault: -+ yyn = yydefact[yystate]; -+ if (yyn == 0) -+ goto yyerrlab; -+ goto yyreduce; -+ -+ -+/*-----------------------------. -+| yyreduce -- Do a reduction. | -+`-----------------------------*/ -+yyreduce: -+ /* yyn is the number of a rule to reduce with. */ -+ yylen = yyr2[yyn]; -+ -+ /* 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 yyi; -+ -+ YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", -+ yyn, yyrline[yyn]); -+ -+ /* Print the symbols being reduced, and their result. */ -+ 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 151 "plural.y" -+{ -+ if (yyvsp[0].exp == NULL) -+ YYABORT; -+ ((struct parse_args *) arg)->res = yyvsp[0].exp; -+ } -+ break; -+case 2: -+#line 159 "plural.y" -+{ -+ yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp); -+ } -+ break; -+case 3: -+#line 163 "plural.y" -+{ -+ yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp); -+ } -+ break; -+case 4: -+#line 167 "plural.y" -+{ -+ yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp); -+ } -+ break; -+case 5: -+#line 171 "plural.y" -+{ -+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); -+ } -+ break; -+case 6: -+#line 175 "plural.y" -+{ -+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); -+ } -+ break; -+case 7: -+#line 179 "plural.y" -+{ -+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); -+ } -+ break; -+case 8: -+#line 183 "plural.y" -+{ -+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); -+ } -+ break; -+case 9: -+#line 187 "plural.y" -+{ -+ yyval.exp = new_exp_1 (lnot, yyvsp[0].exp); -+ } -+ break; -+case 10: -+#line 191 "plural.y" -+{ -+ yyval.exp = new_exp_0 (var); -+ } -+ break; -+case 11: -+#line 195 "plural.y" -+{ -+ if ((yyval.exp = new_exp_0 (num)) != NULL) -+ yyval.exp->val.num = yyvsp[0].num; -+ } -+ break; -+case 12: -+#line 200 "plural.y" -+{ -+ yyval.exp = yyvsp[-1].exp; -+ } -+ break; -+} -+ -+#line 705 "/usr/local/share/bison/bison.simple" -+ -+ -+ yyvsp -= yylen; -+ yyssp -= yylen; -+#if YYLSP_NEEDED -+ yylsp -= yylen; -+#endif -+ -+#if YYDEBUG -+ if (yydebug) -+ { -+ short *yyssp1 = yyss - 1; -+ YYFPRINTF (stderr, "state stack now"); -+ while (yyssp1 != yyssp) -+ YYFPRINTF (stderr, " %d", *++yyssp1); -+ YYFPRINTF (stderr, "\n"); -+ } -+#endif -+ -+ *++yyvsp = yyval; -+#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. */ -+ -+ yyn = yyr1[yyn]; -+ -+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp; -+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) -+ yystate = yytable[yystate]; -+ else -+ yystate = yydefgoto[yyn - YYNTBASE]; -+ -+ goto yynewstate; -+ -+ -+/*------------------------------------. -+| yyerrlab -- here on detecting error | -+`------------------------------------*/ -+yyerrlab: -+ /* If not already recovering from an error, report this error. */ -+ if (!yyerrstatus) -+ { -+ ++yynerrs; -+ -+#ifdef YYERROR_VERBOSE -+ yyn = yypact[yystate]; -+ -+ if (yyn > YYFLAG && yyn < YYLAST) -+ { -+ YYSIZE_T yysize = 0; -+ char *yymsg; -+ int yyx, yycount; -+ -+ 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) -+ { -+ char *yyp = yystpcpy (yymsg, "parse error, unexpected "); -+ yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); -+ -+ if (yycount < 5) -+ { -+ yycount = 0; -+ for (yyx = yyn < 0 ? -yyn : 0; -+ yyx < (int) (sizeof (yytname) / sizeof (char *)); -+ yyx++) -+ if (yycheck[yyx + yyn] == yyx) -+ { -+ const char *yyq = ! yycount ? ", expecting " : " or "; -+ yyp = yystpcpy (yyp, yyq); -+ yyp = yystpcpy (yyp, yytname[yyx]); -+ yycount++; -+ } -+ } -+ yyerror (yymsg); -+ YYSTACK_FREE (yymsg); -+ } -+ else -+ yyerror ("parse error; also virtual memory exhausted"); -+ } -+ else -+#endif /* defined (YYERROR_VERBOSE) */ -+ yyerror ("parse error"); -+ } -+ goto yyerrlab1; -+ -+ -+/*--------------------------------------------------. -+| 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. */ -+ -+ /* return failure if at end of input */ -+ if (yychar == YYEOF) -+ YYABORT; -+ YYDPRINTF ((stderr, "Discarding token %d (%s).\n", -+ yychar, yytname[yychar1])); -+ yychar = YYEMPTY; -+ } -+ -+ /* 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: -+#if 0 -+ /* This is wrong; only states that explicitly want error tokens -+ should shift them. */ -+ -+ /* 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 | -+`---------------------------------------------------------------*/ -+yyerrpop: -+ if (yyssp == yyss) -+ YYABORT; -+ yyvsp--; -+ yystate = *--yyssp; -+#if YYLSP_NEEDED -+ yylsp--; -+#endif -+ -+#if YYDEBUG -+ if (yydebug) -+ { -+ 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; -+ -+ yyn += YYTERROR; -+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) -+ goto yyerrdefault; -+ -+ yyn = yytable[yyn]; -+ if (yyn < 0) -+ { -+ if (yyn == YYFLAG) -+ goto yyerrpop; -+ yyn = -yyn; -+ goto yyreduce; -+ } -+ else if (yyn == 0) -+ goto yyerrpop; -+ -+ if (yyn == YYFINAL) -+ YYACCEPT; -+ -+ YYDPRINTF ((stderr, "Shifting error token, ")); -+ -+ *++yyvsp = yylval; -+#if YYLSP_NEEDED -+ *++yylsp = yylloc; -+#endif -+ -+ yystate = yyn; -+ goto yynewstate; -+ -+ -+/*-------------------------------------. -+| 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 yyresult; -+} -+#line 205 "plural.y" -+ -+ -+void -+internal_function -+FREE_EXPRESSION (struct expression *exp) -+{ -+ if (exp == NULL) -+ return; -+ -+ /* Handle the recursive case. */ -+ switch (exp->nargs) -+ { -+ case 3: -+ FREE_EXPRESSION (exp->val.args[2]); -+ /* FALLTHROUGH */ -+ case 2: -+ FREE_EXPRESSION (exp->val.args[1]); -+ /* FALLTHROUGH */ -+ case 1: -+ FREE_EXPRESSION (exp->val.args[0]); -+ /* FALLTHROUGH */ -+ default: -+ break; -+ } -+ -+ free (exp); -+} -+ -+ -+static int -+yylex (YYSTYPE *lval, const char **pexp) -+{ -+ const char *exp = *pexp; -+ int result; -+ -+ while (1) -+ { -+ if (exp[0] == '\0') -+ { -+ *pexp = exp; -+ return YYEOF; -+ } -+ -+ if (exp[0] != ' ' && exp[0] != '\t') -+ break; -+ -+ ++exp; -+ } -+ -+ result = *exp++; -+ switch (result) -+ { -+ case '0': case '1': case '2': case '3': case '4': -+ case '5': case '6': case '7': case '8': case '9': -+ { -+ unsigned long int n = result - '0'; -+ while (exp[0] >= '0' && exp[0] <= '9') -+ { -+ n *= 10; -+ n += exp[0] - '0'; -+ ++exp; -+ } -+ lval->num = n; -+ result = NUMBER; -+ } -+ break; -+ -+ case '=': -+ if (exp[0] == '=') -+ { -+ ++exp; -+ lval->op = equal; -+ result = EQUOP2; -+ } -+ else -+ result = YYERRCODE; -+ break; -+ -+ case '!': -+ if (exp[0] == '=') -+ { -+ ++exp; -+ lval->op = not_equal; -+ result = EQUOP2; -+ } -+ break; -+ -+ case '&': -+ case '|': -+ if (exp[0] == result) -+ ++exp; -+ else -+ result = YYERRCODE; -+ break; -+ -+ case '<': -+ if (exp[0] == '=') -+ { -+ ++exp; -+ lval->op = less_or_equal; -+ } -+ else -+ lval->op = less_than; -+ result = CMPOP2; -+ break; -+ -+ case '>': -+ if (exp[0] == '=') -+ { -+ ++exp; -+ lval->op = greater_or_equal; -+ } -+ else -+ lval->op = greater_than; -+ result = CMPOP2; -+ break; -+ -+ case '*': -+ lval->op = mult; -+ result = MULOP2; -+ break; -+ -+ case '/': -+ lval->op = divide; -+ result = MULOP2; -+ break; -+ -+ case '%': -+ lval->op = module; -+ result = MULOP2; -+ break; -+ -+ case '+': -+ lval->op = plus; -+ result = ADDOP2; -+ break; -+ -+ case '-': -+ lval->op = minus; -+ result = ADDOP2; -+ break; -+ -+ case 'n': -+ case '?': -+ case ':': -+ case '(': -+ case ')': -+ /* Nothing, just return the character. */ -+ break; -+ -+ case ';': -+ case '\n': -+ case '\0': -+ /* Be safe and let the user call this function again. */ -+ --exp; -+ result = YYEOF; -+ break; -+ -+ default: -+ result = YYERRCODE; -+#if YYDEBUG != 0 -+ --exp; -+#endif -+ break; -+ } -+ -+ *pexp = exp; -+ -+ return result; -+} -+ -+ -+static void -+yyerror (const char *str) -+{ -+ /* Do nothing. We don't print error messages here. */ -+} ---- lrzsz-0.12.20.safe/intl/plural-exp.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/plural-exp.c 2004-09-12 14:40:34.578714192 -0400 -@@ -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; -+ } -+} ---- lrzsz-0.12.20.safe/intl/plural-exp.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/plural-exp.h 2004-09-12 14:40:34.584713280 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/plural.y 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/plural.y 2004-09-12 14:40:34.589712520 -0400 -@@ -0,0 +1,381 @@ -+%{ -+/* 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. */ -+ -+/* 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 -+ skeleton file comes too late. This must come before <config.h> -+ because <config.h> may include arbitrary system headers. */ -+#if defined _AIX && !defined __GNUC__ -+ #pragma alloca -+#endif -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <stddef.h> -+#include <stdlib.h> -+#include "plural-exp.h" -+ -+/* 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 7 -+ -+%union { -+ unsigned long int num; -+ enum operator op; -+ struct expression *exp; -+} -+ -+%{ -+/* Prototypes for local functions. */ -+static int yylex (YYSTYPE *lval, const char **pexp); -+static void yyerror (const char *str); -+ -+/* Allocation of expressions. */ -+ -+static struct expression * -+new_exp (int nargs, enum operator op, struct expression * const *args) -+{ -+ int i; -+ struct expression *newp; -+ -+ /* If any of the argument could not be malloc'ed, just return NULL. */ -+ for (i = nargs - 1; i >= 0; i--) -+ if (args[i] == NULL) -+ goto fail; -+ -+ /* Allocate a new expression. */ -+ newp = (struct expression *) malloc (sizeof (*newp)); -+ if (newp != NULL) -+ { -+ newp->nargs = nargs; -+ newp->operation = op; -+ for (i = nargs - 1; i >= 0; i--) -+ newp->val.args[i] = args[i]; -+ return newp; -+ } -+ -+ fail: -+ for (i = nargs - 1; i >= 0; i--) -+ FREE_EXPRESSION (args[i]); -+ -+ return NULL; -+} -+ -+static inline struct expression * -+new_exp_0 (enum operator op) -+{ -+ return new_exp (0, op, NULL); -+} -+ -+static inline struct expression * -+new_exp_1 (enum operator op, struct expression *right) -+{ -+ struct expression *args[1]; -+ -+ args[0] = right; -+ return new_exp (1, op, args); -+} -+ -+static struct expression * -+new_exp_2 (enum operator op, struct expression *left, struct expression *right) -+{ -+ struct expression *args[2]; -+ -+ args[0] = left; -+ args[1] = right; -+ return new_exp (2, op, args); -+} -+ -+static inline struct expression * -+new_exp_3 (enum operator op, struct expression *bexp, -+ struct expression *tbranch, struct expression *fbranch) -+{ -+ struct expression *args[3]; -+ -+ args[0] = bexp; -+ args[1] = tbranch; -+ args[2] = fbranch; -+ return new_exp (3, op, args); -+} -+ -+%} -+ -+/* This declares that all operators have the same associativity and the -+ precedence order as in C. See [Harbison, Steele: C, A Reference Manual]. -+ There is no unary minus and no bitwise operators. -+ Operators with the same syntactic behaviour have been merged into a single -+ token, to save space in the array generated by bison. */ -+%right '?' /* ? */ -+%left '|' /* || */ -+%left '&' /* && */ -+%left EQUOP2 /* == != */ -+%left CMPOP2 /* < > <= >= */ -+%left ADDOP2 /* + - */ -+%left MULOP2 /* * / % */ -+%right '!' /* ! */ -+ -+%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2 -+%token <num> NUMBER -+%type <exp> exp -+ -+%% -+ -+start: exp -+ { -+ if ($1 == NULL) -+ YYABORT; -+ ((struct parse_args *) arg)->res = $1; -+ } -+ ; -+ -+exp: exp '?' exp ':' exp -+ { -+ $$ = new_exp_3 (qmop, $1, $3, $5); -+ } -+ | exp '|' exp -+ { -+ $$ = new_exp_2 (lor, $1, $3); -+ } -+ | exp '&' exp -+ { -+ $$ = new_exp_2 (land, $1, $3); -+ } -+ | exp EQUOP2 exp -+ { -+ $$ = new_exp_2 ($2, $1, $3); -+ } -+ | exp CMPOP2 exp -+ { -+ $$ = new_exp_2 ($2, $1, $3); -+ } -+ | exp ADDOP2 exp -+ { -+ $$ = new_exp_2 ($2, $1, $3); -+ } -+ | exp MULOP2 exp -+ { -+ $$ = new_exp_2 ($2, $1, $3); -+ } -+ | '!' exp -+ { -+ $$ = new_exp_1 (lnot, $2); -+ } -+ | 'n' -+ { -+ $$ = new_exp_0 (var); -+ } -+ | NUMBER -+ { -+ if (($$ = new_exp_0 (num)) != NULL) -+ $$->val.num = $1; -+ } -+ | '(' exp ')' -+ { -+ $$ = $2; -+ } -+ ; -+ -+%% -+ -+void -+internal_function -+FREE_EXPRESSION (struct expression *exp) -+{ -+ if (exp == NULL) -+ return; -+ -+ /* Handle the recursive case. */ -+ switch (exp->nargs) -+ { -+ case 3: -+ FREE_EXPRESSION (exp->val.args[2]); -+ /* FALLTHROUGH */ -+ case 2: -+ FREE_EXPRESSION (exp->val.args[1]); -+ /* FALLTHROUGH */ -+ case 1: -+ FREE_EXPRESSION (exp->val.args[0]); -+ /* FALLTHROUGH */ -+ default: -+ break; -+ } -+ -+ free (exp); -+} -+ -+ -+static int -+yylex (YYSTYPE *lval, const char **pexp) -+{ -+ const char *exp = *pexp; -+ int result; -+ -+ while (1) -+ { -+ if (exp[0] == '\0') -+ { -+ *pexp = exp; -+ return YYEOF; -+ } -+ -+ if (exp[0] != ' ' && exp[0] != '\t') -+ break; -+ -+ ++exp; -+ } -+ -+ result = *exp++; -+ switch (result) -+ { -+ case '0': case '1': case '2': case '3': case '4': -+ case '5': case '6': case '7': case '8': case '9': -+ { -+ unsigned long int n = result - '0'; -+ while (exp[0] >= '0' && exp[0] <= '9') -+ { -+ n *= 10; -+ n += exp[0] - '0'; -+ ++exp; -+ } -+ lval->num = n; -+ result = NUMBER; -+ } -+ break; -+ -+ case '=': -+ if (exp[0] == '=') -+ { -+ ++exp; -+ lval->op = equal; -+ result = EQUOP2; -+ } -+ else -+ result = YYERRCODE; -+ break; -+ -+ case '!': -+ if (exp[0] == '=') -+ { -+ ++exp; -+ lval->op = not_equal; -+ result = EQUOP2; -+ } -+ break; -+ -+ case '&': -+ case '|': -+ if (exp[0] == result) -+ ++exp; -+ else -+ result = YYERRCODE; -+ break; -+ -+ case '<': -+ if (exp[0] == '=') -+ { -+ ++exp; -+ lval->op = less_or_equal; -+ } -+ else -+ lval->op = less_than; -+ result = CMPOP2; -+ break; -+ -+ case '>': -+ if (exp[0] == '=') -+ { -+ ++exp; -+ lval->op = greater_or_equal; -+ } -+ else -+ lval->op = greater_than; -+ result = CMPOP2; -+ break; -+ -+ case '*': -+ lval->op = mult; -+ result = MULOP2; -+ break; -+ -+ case '/': -+ lval->op = divide; -+ result = MULOP2; -+ break; -+ -+ case '%': -+ lval->op = module; -+ result = MULOP2; -+ break; -+ -+ case '+': -+ lval->op = plus; -+ result = ADDOP2; -+ break; -+ -+ case '-': -+ lval->op = minus; -+ result = ADDOP2; -+ break; -+ -+ case 'n': -+ case '?': -+ case ':': -+ case '(': -+ case ')': -+ /* Nothing, just return the character. */ -+ break; -+ -+ case ';': -+ case '\n': -+ case '\0': -+ /* Be safe and let the user call this function again. */ -+ --exp; -+ result = YYEOF; -+ break; -+ -+ default: -+ result = YYERRCODE; -+#if YYDEBUG != 0 -+ --exp; -+#endif -+ break; -+ } -+ -+ *pexp = exp; -+ -+ return result; -+} -+ -+ -+static void -+yyerror (const char *str) -+{ -+ /* Do nothing. We don't print error messages here. */ -+} ---- lrzsz-0.12.20.safe/intl/po2tbl.sed.in 1998-04-26 09:20:52.000000000 -0400 -+++ lrzsz-0.12.20/intl/po2tbl.sed.in 1969-12-31 19:00:00.000000000 -0500 -@@ -1,102 +0,0 @@ --# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets --# Copyright (C) 1995 Free Software Foundation, Inc. --# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. --# --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, or (at your option) --# any later version. --# --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. --# --# You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --# --1 { -- i\ --/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\ --\ --#if HAVE_CONFIG_H\ --# include <config.h>\ --#endif\ --\ --#include "libgettext.h"\ --\ --const struct _msg_ent _msg_tbl[] = { -- h -- s/.*/0/ -- x --} --# --# Write msgid entries in C array form. --# --/^msgid/ { -- s/msgid[ ]*\(".*"\)/ {\1/ -- tb --# Append the next line -- :b -- N --# Look whether second part is continuation line. -- s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/ --# Yes, then branch. -- ta --# Because we assume that the input file correctly formed the line --# just read cannot be again be a msgid line. So it's safe to ignore --# it. -- s/\(.*\)\n.*/\1/ -- bc --# We found a continuation line. But before printing insert '\'. -- :a -- s/\(.*\)\(\n.*\)/\1\\\2/ -- P --# We cannot use D here. -- s/.*\n\(.*\)/\1/ --# Some buggy seds do not clear the `successful substitution since last ``t''' --# flag on `N', so we do a `t' here to clear it. -- tb --# Not reached -- :c -- x --# The following nice solution is by --# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de> -- td --# Increment a decimal number in pattern space. --# First hide trailing `9' digits. -- :d -- s/9\(_*\)$/_\1/ -- td --# Assure at least one digit is available. -- s/^\(_*\)$/0\1/ --# Increment the last digit. -- s/8\(_*\)$/9\1/ -- s/7\(_*\)$/8\1/ -- s/6\(_*\)$/7\1/ -- s/5\(_*\)$/6\1/ -- s/4\(_*\)$/5\1/ -- s/3\(_*\)$/4\1/ -- s/2\(_*\)$/3\1/ -- s/1\(_*\)$/2\1/ -- s/0\(_*\)$/1\1/ --# Convert the hidden `9' digits to `0's. -- s/_/0/g -- x -- G -- s/\(.*\)\n\([0-9]*\)/\1, \2},/ -- s/\(.*\)"$/\1/ -- p --} --# --# Last line. --# --$ { -- i\ --};\ -- -- g -- s/0*\(.*\)/int _msg_tbl_length = \1;/p --} --d ---- lrzsz-0.12.20.safe/intl/printf-args.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/printf-args.c 2004-09-12 14:40:34.595711608 -0400 -@@ -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; -+} ---- lrzsz-0.12.20.safe/intl/printf-args.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/printf-args.h 2004-09-12 14:40:34.601710696 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/printf.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/printf.c 2004-09-12 14:40:34.607709784 -0400 -@@ -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 ---- lrzsz-0.12.20.safe/intl/printf-parse.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/printf-parse.c 2004-09-12 14:40:34.622707504 -0400 -@@ -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 ---- lrzsz-0.12.20.safe/intl/printf-parse.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/printf-parse.h 2004-09-12 14:40:34.628706592 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/ref-add.sin 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/ref-add.sin 2004-09-12 14:40:34.633705832 -0400 -@@ -0,0 +1,31 @@ -+# Add this package to a list of references stored in a text file. -+# -+# Copyright (C) 2000 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 <haible@clisp.cons.org>. -+# -+/^# Packages using this file: / { -+ s/# Packages using this file:// -+ ta -+ :a -+ s/ @PACKAGE@ / @PACKAGE@ / -+ tb -+ s/ $/ @PACKAGE@ / -+ :b -+ s/^/# Packages using this file:/ -+} ---- lrzsz-0.12.20.safe/intl/ref-del.sin 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/ref-del.sin 2004-09-12 14:40:34.638705072 -0400 -@@ -0,0 +1,26 @@ -+# Remove this package from a list of references stored in a text file. -+# -+# Copyright (C) 2000 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 <haible@clisp.cons.org>. -+# -+/^# Packages using this file: / { -+ s/# Packages using this file:// -+ s/ @PACKAGE@ / / -+ s/^/# Packages using this file:/ -+} ---- lrzsz-0.12.20.safe/intl/relocatable.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/relocatable.c 2004-09-12 14:40:34.644704160 -0400 -@@ -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 ---- lrzsz-0.12.20.safe/intl/relocatable.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/relocatable.h 2004-09-12 14:40:34.651703096 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/textdomain.c 1998-04-26 09:22:37.000000000 -0400 -+++ lrzsz-0.12.20/intl/textdomain.c 2004-09-12 14:40:34.656702336 -0400 -@@ -1,51 +1,60 @@ --/* Implementation of the textdomain(3) function -- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. -- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. -+/* Implementation of the textdomain(3) function. -+ 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> - #endif - --#if defined STDC_HEADERS || defined _LIBC --# include <stdlib.h> --#endif -+#include <stdlib.h> -+#include <string.h> - --#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC --# include <string.h> -+#ifdef _LIBC -+# include <libintl.h> - #else --# include <strings.h> --# ifndef memcpy --# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) --# endif -+# include "libgnuintl.h" - #endif -+#include "gettextP.h" - - #ifdef _LIBC --# include <libintl.h> -+/* We have to handle multi-threaded applications. */ -+# include <bits/libc-lock.h> - #else --# include "libgettext.h" -+/* Provide dummy implementation if this is outside glibc. */ -+# define __libc_rwlock_define(CLASS, NAME) -+# define __libc_rwlock_wrlock(NAME) -+# define __libc_rwlock_unlock(NAME) -+#endif -+ -+/* The internal variables in the standalone libintl.a must have different -+ 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 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 -@@ -54,50 +63,76 @@ - prefix. So we have to make a difference here. */ - #ifdef _LIBC - # define TEXTDOMAIN __textdomain --# define strdup(str) __strdup (str) -+# ifndef strdup -+# 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 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 *old; -+ char *new_domain; -+ char *old_domain; - - /* A NULL pointer requests the current setting. */ - if (domainname == NULL) - return (char *) _nl_current_default_domain; - -- old = (char *) _nl_current_default_domain; -+ __libc_rwlock_wrlock (_nl_state_lock); -+ -+ old_domain = (char *) _nl_current_default_domain; - - /* If domain name is the null string set to default domain "messages". */ - if (domainname[0] == '\0' - || strcmp (domainname, _nl_default_default_domain) == 0) -- _nl_current_default_domain = _nl_default_default_domain; -+ { -+ _nl_current_default_domain = _nl_default_default_domain; -+ new_domain = (char *) _nl_current_default_domain; -+ } -+ else if (strcmp (domainname, old_domain) == 0) -+ /* This can happen and people will use it to signal that some -+ environment variable changed. */ -+ new_domain = old_domain; - else - { - /* If the following malloc fails `_nl_current_default_domain' - will be NULL. This value will be returned and so signals we - are out of core. */ - #if defined _LIBC || defined HAVE_STRDUP -- _nl_current_default_domain = strdup (domainname); -+ new_domain = strdup (domainname); - #else - size_t len = strlen (domainname) + 1; -- char *cp = (char *) malloc (len); -- if (cp != NULL) -- memcpy (cp, domainname, len); -- _nl_current_default_domain = cp; -+ new_domain = (char *) malloc (len); -+ if (new_domain != NULL) -+ memcpy (new_domain, domainname, len); - #endif -+ -+ if (new_domain != NULL) -+ _nl_current_default_domain = new_domain; - } - -- if (old != _nl_default_default_domain) -- free (old); -+ /* We use this possibility to signal a change of the loaded catalogs -+ since this is most likely the case and there is no other easy we -+ to do it. Do it only when the call was successful. */ -+ if (new_domain != NULL) -+ { -+ ++_nl_msg_cat_cntr; - -- return (char *) _nl_current_default_domain; -+ if (old_domain != new_domain && old_domain != _nl_default_default_domain) -+ free (old_domain); -+ } -+ -+ __libc_rwlock_unlock (_nl_state_lock); -+ -+ return new_domain; - } - - #ifdef _LIBC ---- lrzsz-0.12.20.safe/intl/vasnprintf.c 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/vasnprintf.c 2004-09-12 14:40:34.662701424 -0400 -@@ -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 ---- lrzsz-0.12.20.safe/intl/vasnprintf.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/vasnprintf.h 2004-09-12 14:40:34.667700664 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/vasnwprintf.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/vasnwprintf.h 2004-09-12 14:40:34.673699752 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/VERSION 1998-04-26 09:22:37.000000000 -0400 -+++ lrzsz-0.12.20/intl/VERSION 2004-09-12 14:40:34.679698840 -0400 -@@ -1 +1 @@ --GNU gettext library from gettext-0.10.32 -+GNU gettext library from gettext-0.14.1 ---- lrzsz-0.12.20.safe/intl/wprintf-parse.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/wprintf-parse.h 2004-09-12 14:40:34.695696408 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/intl/xopen-msg.sed 1998-04-26 09:20:52.000000000 -0400 -+++ lrzsz-0.12.20/intl/xopen-msg.sed 1969-12-31 19:00:00.000000000 -0500 -@@ -1,104 +0,0 @@ --# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file --# Copyright (C) 1995 Free Software Foundation, Inc. --# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. --# --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, or (at your option) --# any later version. --# --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. --# --# You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --# --# --# The first directive in the .msg should be the definition of the --# message set number. We use always set number 1. --# --1 { -- i\ --$set 1 # Automatically created by po2msg.sed -- h -- s/.*/0/ -- x --} --# --# We copy all comments into the .msg file. Perhaps they can help. --# --/^#/ s/^#[ ]*/$ /p --# --# We copy the original message as a comment into the .msg file. --# --/^msgid/ { --# Does not work now --# /"$/! { --# s/\\$// --# s/$/ ... (more lines following)"/ --# } -- s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/ -- p --} --# --# The .msg file contains, other then the .po file, only the translations --# but each given a unique ID. Starting from 1 and incrementing by 1 for --# each message we assign them to the messages. --# It is important that the .po file used to generate the cat-id-tbl.c file --# (with po-to-tbl) is the same as the one used here. (At least the order --# of declarations must not be changed.) --# --/^msgstr/ { -- s/msgstr[ ]*"\(.*\)"/\1/ -- x --# The following nice solution is by --# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de> -- td --# Increment a decimal number in pattern space. --# First hide trailing `9' digits. -- :d -- s/9\(_*\)$/_\1/ -- td --# Assure at least one digit is available. -- s/^\(_*\)$/0\1/ --# Increment the last digit. -- s/8\(_*\)$/9\1/ -- s/7\(_*\)$/8\1/ -- s/6\(_*\)$/7\1/ -- s/5\(_*\)$/6\1/ -- s/4\(_*\)$/5\1/ -- s/3\(_*\)$/4\1/ -- s/2\(_*\)$/3\1/ -- s/1\(_*\)$/2\1/ -- s/0\(_*\)$/1\1/ --# Convert the hidden `9' digits to `0's. -- s/_/0/g -- x --# Bring the line in the format `<number> <message>' -- G -- s/^[^\n]*$/& / -- s/\(.*\)\n\([0-9]*\)/\2 \1/ --# Clear flag from last substitution. -- tb --# Append the next line. -- :b -- N --# Look whether second part is a continuation line. -- s/\(.*\n\)"\(.*\)"/\1\2/ --# Yes, then branch. -- ta -- P -- D --# Note that `D' includes a jump to the start!! --# We found a continuation line. But before printing insert '\'. -- :a -- s/\(.*\)\(\n.*\)/\1\\\2/ -- P --# We cannot use the sed command `D' here -- s/.*\n\(.*\)/\1/ -- tb --} --d ---- lrzsz-0.12.20.safe/intl/xsize.h 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/intl/xsize.h 2004-09-12 14:40:34.700695648 -0400 -@@ -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 */ ---- lrzsz-0.12.20.safe/m4/ChangeLog 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/ChangeLog 2004-09-12 14:40:35.054641840 -0400 -@@ -0,0 +1,32 @@ -+2004-09-12 gettextize <bug-gnu-gettext@gnu.org> -+ -+ * codeset.m4: New file, from gettext-0.14.1. -+ * gettext.m4: New file, from gettext-0.14.1. -+ * glibc21.m4: New file, from gettext-0.14.1. -+ * iconv.m4: New file, from gettext-0.14.1. -+ * intdiv0.m4: New file, from gettext-0.14.1. -+ * intmax.m4: New file, from gettext-0.14.1. -+ * inttypes.m4: New file, from gettext-0.14.1. -+ * inttypes_h.m4: New file, from gettext-0.14.1. -+ * inttypes-pri.m4: New file, from gettext-0.14.1. -+ * isc-posix.m4: New file, from gettext-0.14.1. -+ * lcmessage.m4: New file, from gettext-0.14.1. -+ * lib-ld.m4: New file, from gettext-0.14.1. -+ * lib-link.m4: New file, from gettext-0.14.1. -+ * lib-prefix.m4: New file, from 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: New file, from gettext-0.14.1. -+ * signed.m4: New file, from gettext-0.14.1. -+ * size_max.m4: New file, from gettext-0.14.1. -+ * stdint_h.m4: New file, from gettext-0.14.1. -+ * uintmax_t.m4: New file, from gettext-0.14.1. -+ * ulonglong.m4: New file, from 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. -+ ---- lrzsz-0.12.20.safe/m4/codeset.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/codeset.m4 2004-09-12 14:40:34.820677408 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/gettext.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/gettext.m4 2004-09-12 14:40:34.826676496 -0400 -@@ -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], []) ---- lrzsz-0.12.20.safe/m4/glibc21.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/glibc21.m4 2004-09-12 14:40:34.833675432 -0400 -@@ -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" -+ ] -+) ---- lrzsz-0.12.20.safe/m4/iconv.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/iconv.m4 2004-09-12 14:40:34.839674520 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/intdiv0.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/intdiv0.m4 2004-09-12 14:40:34.845673608 -0400 -@@ -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.]) -+]) ---- lrzsz-0.12.20.safe/m4/intmax.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/intmax.m4 2004-09-12 14:40:34.855672088 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/inttypes_h.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/inttypes_h.m4 2004-09-12 14:40:34.868670112 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/inttypes.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/inttypes.m4 2004-09-12 14:40:34.861671176 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/inttypes-pri.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/inttypes-pri.m4 2004-09-12 14:40:34.874669200 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/isc-posix.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/isc-posix.m4 2004-09-12 14:40:34.885667528 -0400 -@@ -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"]) -+ ] -+) ---- lrzsz-0.12.20.safe/m4/lcmessage.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/lcmessage.m4 2004-09-12 14:40:34.902664944 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/lib-ld.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/lib-ld.m4 2004-09-12 14:40:34.908664032 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/lib-link.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/lib-link.m4 2004-09-12 14:40:34.914663120 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/lib-prefix.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/lib-prefix.m4 2004-09-12 14:40:34.921662056 -0400 -@@ -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" -+]) ---- lrzsz-0.12.20.safe/m4/longdouble.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/longdouble.m4 2004-09-12 14:40:34.942658864 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/longlong.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/longlong.m4 2004-09-12 14:40:34.949657800 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/Makefile.am 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/Makefile.am 2004-09-12 14:40:35.048642752 -0400 -@@ -0,0 +1 @@ -+EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 intmax.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 longdouble.m4 longlong.m4 nls.m4 po.m4 printf-posix.m4 progtest.m4 signed.m4 size_max.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 wchar_t.m4 wint_t.m4 xsize.m4 ---- lrzsz-0.12.20.safe/m4/nls.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/nls.m4 2004-09-12 14:40:34.955656888 -0400 -@@ -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) -+]) ---- lrzsz-0.12.20.safe/m4/po.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/po.m4 2004-09-12 14:40:34.961655976 -0400 -@@ -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" -+]) ---- lrzsz-0.12.20.safe/m4/printf-posix.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/printf-posix.m4 2004-09-12 14:40:34.974654000 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/progtest.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/progtest.m4 2004-09-12 14:40:34.990651568 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/signed.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/signed.m4 2004-09-12 14:40:34.996650656 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/size_max.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/size_max.m4 2004-09-12 14:40:35.003649592 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/stdint_h.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/stdint_h.m4 2004-09-12 14:40:35.009648680 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/uintmax_t.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/uintmax_t.m4 2004-09-12 14:40:35.021646856 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/ulonglong.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/ulonglong.m4 2004-09-12 14:40:35.028645792 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/wchar_t.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/wchar_t.m4 2004-09-12 14:40:35.034644880 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/wint_t.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/wint_t.m4 2004-09-12 14:40:35.040643968 -0400 -@@ -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 -+]) ---- lrzsz-0.12.20.safe/m4/xsize.m4 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/m4/xsize.m4 2004-09-12 14:40:35.047642904 -0400 -@@ -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) -+]) ---- lrzsz-0.12.20.safe/Makefile.am 1998-12-30 06:19:40.000000000 -0500 -+++ lrzsz-0.12.20/Makefile.am 2004-09-12 14:40:35.121631656 -0400 -@@ -1,5 +1,5 @@ - SUBDIRS = lib intl src po man testsuite --EXTRA_DIST = check.lrzsz COMPATABILITY README.cvs README.isdn4linux \ -+EXTRA_DIST = config.rpath check.lrzsz COMPATABILITY README.cvs README.isdn4linux \ - README.gettext rpmrc buildrpm systype.in fastcheck.sh README.tests \ - beos-runpiped.c fastcheck.beos - noinst_SCRIPTS=systype -@@ -83,3 +83,5 @@ - rpm: $(PR).tar.gz Specfile - $(srcdir)/buildrpm $(srcdir) - -+ -+ACLOCAL_AMFLAGS = -I m4 ---- lrzsz-0.12.20.safe/Makefile.in 1998-12-30 11:31:40.000000000 -0500 -+++ lrzsz-0.12.20/Makefile.in 2004-09-12 14:40:35.109633480 -0400 -@@ -125,7 +125,7 @@ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - - $(ACLOCAL_M4): configure.in acinclude.m4 -- cd $(srcdir) && $(ACLOCAL) -+ cd $(srcdir) && $(ACLOCAL) -I m4 - - config.status: $(srcdir)/configure - $(SHELL) ./config.status --recheck ---- lrzsz-0.12.20.safe/mkinstalldirs 1998-04-26 09:20:52.000000000 -0400 -+++ lrzsz-0.12.20/mkinstalldirs 2004-09-12 14:40:34.337750824 -0400 -@@ -1,34 +1,150 @@ - #! /bin/sh - # mkinstalldirs --- make directory hierarchy --# Author: Noah Friedman <friedman@prep.ai.mit.edu> -+ -+scriptversion=2004-02-15.20 -+ -+# Original author: Noah Friedman <friedman@prep.ai.mit.edu> - # Created: 1993-05-16 --# Last modified: 1995-03-05 --# Public domain -+# Public domain. -+# -+# This file is maintained in Automake, please report -+# bugs to <bug-automake@gnu.org> or send patches to -+# <automake-patches@gnu.org>. - - errstatus=0 -+dirmode="" - --for file in ${1+"$@"} ; do -- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` -- shift -+usage="\ -+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... - -- pathcomp= -- for d in ${1+"$@"} ; do -- pathcomp="$pathcomp$d" -- case "$pathcomp" in -- -* ) pathcomp=./$pathcomp ;; -- esac -+Create each directory DIR (with mode MODE, if specified), including all -+leading file name components. - -- if test ! -d "$pathcomp"; then -- echo "mkdir $pathcomp" 1>&2 -- mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$? -- fi -+Report bugs to <bug-automake@gnu.org>." - -- if test ! -d "$pathcomp"; then -+# process command line arguments -+while test $# -gt 0 ; do -+ case $1 in -+ -h | --help | --h*) # -h for help -+ echo "$usage" -+ exit 0 -+ ;; -+ -m) # -m PERM arg -+ shift -+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } -+ dirmode=$1 -+ shift -+ ;; -+ --version) -+ echo "$0 $scriptversion" -+ exit 0 -+ ;; -+ --) # stop option processing -+ shift -+ break -+ ;; -+ -*) # unknown option -+ echo "$usage" 1>&2 -+ exit 1 -+ ;; -+ *) # first non-opt arg -+ break -+ ;; -+ esac -+done -+ -+for file -+do -+ if test -d "$file"; then -+ shift -+ else -+ break -+ fi -+done -+ -+case $# in -+ 0) exit 0 ;; -+esac -+ -+# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and -+# mkdir -p a/c at the same time, both will detect that a is missing, -+# one will create a, then the other will try to create a and die with -+# a "File exists" error. This is a problem when calling mkinstalldirs -+# from a parallel make. We use --version in the probe to restrict -+# ourselves to GNU mkdir, which is thread-safe. -+case $dirmode in -+ '') -+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then -+ echo "mkdir -p -- $*" -+ exec mkdir -p -- "$@" -+ else -+ # On NextStep and OpenStep, the `mkdir' command does not -+ # recognize any option. It will interpret all options as -+ # directories to create, and then abort because `.' already -+ # exists. -+ test -d ./-p && rmdir ./-p -+ test -d ./--version && rmdir ./--version -+ fi -+ ;; -+ *) -+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && -+ test ! -d ./--version; then -+ echo "mkdir -m $dirmode -p -- $*" -+ exec mkdir -m "$dirmode" -p -- "$@" -+ else -+ # Clean up after NextStep and OpenStep mkdir. -+ for d in ./-m ./-p ./--version "./$dirmode"; -+ do -+ test -d $d && rmdir $d -+ done -+ fi -+ ;; -+esac -+ -+for file -+do -+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` -+ shift -+ -+ pathcomp= -+ for d -+ do -+ pathcomp="$pathcomp$d" -+ case $pathcomp in -+ -*) pathcomp=./$pathcomp ;; -+ esac -+ -+ if test ! -d "$pathcomp"; then -+ echo "mkdir $pathcomp" -+ -+ mkdir "$pathcomp" || lasterr=$? -+ -+ if test ! -d "$pathcomp"; then - errstatus=$lasterr -- fi -+ else -+ if test ! -z "$dirmode"; then -+ echo "chmod $dirmode $pathcomp" -+ lasterr="" -+ chmod "$dirmode" "$pathcomp" || lasterr=$? - -- pathcomp="$pathcomp/" -- done -+ if test ! -z "$lasterr"; then -+ errstatus=$lasterr -+ fi -+ fi -+ fi -+ fi -+ -+ pathcomp="$pathcomp/" -+ done - done - - exit $errstatus -+ -+# Local Variables: -+# mode: shell-script -+# sh-indentation: 2 -+# eval: (add-hook 'write-file-hooks 'time-stamp) -+# time-stamp-start: "scriptversion=" -+# time-stamp-format: "%:y-%02m-%02d.%02H" -+# time-stamp-end: "$" -+# End: ---- lrzsz-0.12.20.safe/po/boldquot.sed 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/po/boldquot.sed 2004-09-12 14:40:34.723692152 -0400 -@@ -0,0 +1,10 @@ -+s/"\([^"]*\)"/“\1”/g -+s/`\([^`']*\)'/‘\1’/g -+s/ '\([^`']*\)' / ‘\1’ /g -+s/ '\([^`']*\)'$/ ‘\1’/g -+s/^'\([^`']*\)' /‘\1’ /g -+s/“”/""/g -+s/“/“[1m/g -+s/”/[0m”/g -+s/‘/‘[1m/g -+s/’/[0m’/g ---- lrzsz-0.12.20.safe/po/cat-id-tbl.c 1998-12-29 04:24:24.000000000 -0500 -+++ lrzsz-0.12.20/po/cat-id-tbl.c 1969-12-31 19:00:00.000000000 -0500 -@@ -1,234 +0,0 @@ --/* Automatically generated by po2tbl.sed from lrzsz.pot. */ -- --#if HAVE_CONFIG_H --# include <config.h> --#endif -- --#include "libgettext.h" -- --const struct _msg_ent _msg_tbl[] = { -- {"", 1}, -- {"io_mode(,2) in rbsb.c not implemented\n", 2}, -- {"caught signal %d; exiting", 3}, -- {"command tries", 4}, -- {"packetlength", 5}, -- {"packetlength out of range 24..%ld", 6}, -- {"framelength", 7}, -- {"framelength out of range 32..%ld", 8}, -- {"min_bps", 9}, -- {"min_bps must be >= 0", 10}, -- {"min_bps_time", 11}, -- {"min_bps_time must be > 1", 12}, -- {"hour to large (0..23)", 13}, -- {"unparsable stop time\n", 14}, -- {"minute to large (0..59)", 15}, -- {"stop time to small", 16}, -- {"stop-at", 17}, -- {"timeout", 18}, -- {"timeout out of range 10..1000", 19}, -- {"security violation: can't do that under restricted shell\n", 20}, -- {"window size", 21}, -- {"cannot turnoff syslog", 22}, -- {"startup delay", 23}, -- {"out of memory", 24}, -- {"this program was never intended to be used setuid\n", 25}, -- {"need at least one file to send", 26}, -- {"Can't send command in restricted mode\n", 27}, -- {"hostname too long\n", 28}, -- {"illegal server address\n", 29}, -- {"can read only one file from stdin", 30}, -- {"Transfer incomplete\n", 31}, -- {"Transfer complete\n", 32}, -- {"send_pseudo %s: cannot open tmpfile %s: %s", 33}, -- {"send_pseudo %s: cannot lstat tmpfile %s: %s", 34}, -- {"send_pseudo %s: avoiding symlink trap", 35}, -- {"send_pseudo %s: cannot write to tmpfile %s: %s", 36}, -- {"send_pseudo %s: failed", 37}, -- {"send_pseudo %s: ok", 38}, -- {"tcp protocol init failed\n", 39}, -- {"Answering TIMESYNC at %s", 40}, -- {"timezone", 41}, -- {"timezone unknown", 42}, -- {"Can't open any requested files.", 43}, -- {"security violation: not allowed to upload from %s", 44}, -- {"cannot open %s", 45}, -- {"is not a file: %s", 46}, -- {"%s/%s: error occured", 47}, -- {"skipped: %s", 48}, -- {"%s/%s: skipped", 49}, -- {"Bytes Sent:%7ld BPS:%-8ld \n", 50}, -- {"Sending %s, %ld blocks: ", 51}, -- {"Give your local XMODEM receive command now.", 52}, -- {"Sending: %s\n", 53}, -- {"Timeout on pathname", 54}, -- {"Receiver Cancelled", 55}, -- {"No ACK on EOT", 56}, -- {"Xmodem sectors/kbytes sent: %3d/%2dk", 57}, -- {"Ymodem sectors/kbytes sent: %3d/%2dk", 58}, -- {"Cancelled", 59}, -- {"Timeout on sector ACK", 60}, -- {"NAK on sector", 61}, -- {"Got burst for sector ACK", 62}, -- {"Got %02x for sector ACK", 63}, -- {"Retry Count Exceeded", 64}, -- {"Try `%s --help' for more information.\n", 65}, -- {"%s version %s\n", 66}, -- {"Usage: %s [options] file ...\n", 67}, -- {" or: %s [options] -{c|i} COMMAND\n", 68}, -- {"Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n", 69}, -- {"\ -- (X) = option applies to XMODEM only\n\ -- (Y) = option applies to YMODEM only\n\ -- (Z) = option applies to ZMODEM only\n", 70}, -- {"\ -- -+, --append append to existing destination file (Z)\n\ -- -2, --twostop use 2 stop bits\n\ -- -4, --try-4k go up to 4K blocksize\n\ -- --start-4k start with 4K blocksize (doesn't try 8)\n\ -- -8, --try-8k go up to 8K blocksize\n\ -- --start-8k start with 8K blocksize\n\ -- -a, --ascii ASCII transfer (change CR/LF to LF)\n\ -- -b, --binary binary transfer\n\ -- -B, --bufsize N buffer N bytes (N==auto: buffer whole file)\n\ -- -c, --command COMMAND execute remote command COMMAND (Z)\n\ -- -C, --command-tries N try N times to execute a command (Z)\n\ -- -d, --dot-to-slash change '.' to '/' in pathnames (Y/Z)\n\ -- --delay-startup N sleep N seconds before doing anything\n\ -- -e, --escape escape all control characters (Z)\n\ -- -E, --rename force receiver to rename files it already has\n\ -- -f, --full-path send full pathname (Y/Z)\n\ -- -i, --immediate-command CMD send remote CMD, return immediately (Z)\n\ -- -h, --help print this usage message\n\ -- -k, --1k send 1024 byte packets (X)\n\ -- -L, --packetlen N limit subpacket length to N bytes (Z)\n\ -- -l, --framelen N limit frame length to N bytes (l>=L) (Z)\n\ -- -m, --min-bps N stop transmission if BPS below N\n\ -- -M, --min-bps-time N for at least N seconds (default: 120)\n", 71}, -- {"\ -- -n, --newer send file if source newer (Z)\n\ -- -N, --newer-or-longer send file if source newer or longer (Z)\n\ -- -o, --16-bit-crc use 16 bit CRC instead of 32 bit CRC (Z)\n\ -- -O, --disable-timeouts disable timeout code, wait forever\n\ -- -p, --protect protect existing destination file (Z)\n\ -- -r, --resume resume interrupted file transfer (Z)\n\ -- -R, --restricted restricted, more secure mode\n\ -- -q, --quiet quiet (no progress reports)\n\ -- -s, --stop-at {HH:MM|+N} stop transmission at HH:MM or in N seconds\n\ -- --tcp build a TCP connection to transmit files\n\ -- --tcp-server open socket, wait for connection\n\ -- -u, --unlink unlink file after transmission\n\ -- -U, --unrestrict turn off restricted mode (if allowed to)\n\ -- -v, --verbose be verbose, provide debugging information\n\ -- -w, --windowsize N Window is N bytes (Z)\n\ -- -X, --xmodem use XMODEM protocol\n\ -- -y, --overwrite overwrite existing files\n\ -- -Y, --overwrite-or-skip overwrite existing files, else skip\n\ -- --ymodem use YMODEM protocol\n\ -- -Z, --zmodem use ZMODEM protocol\n\ --\n\ --short options use the same arguments as the long ones\n", 72}, -- {"got ZRQINIT", 73}, -- {"got ZCAN", 74}, -- {"blklen now %d\n", 75}, -- {"zsendfdata: bps rate %ld below min %ld", 76}, -- {"zsendfdata: reached stop time", 77}, -- {"Bytes Sent:%7ld/%7ld BPS:%-8ld ETA %02d:%02d ", 78}, -- {"calc_blklen: reduced to %d due to error\n", 79}, -- {"calc_blklen: returned old value %d due to low bpe diff\n", 80}, -- {"calc_blklen: old %ld, new %ld, d %ld\n", 81}, -- {"calc_blklen: calc total_bytes=%ld, bpe=%ld, ec=%ld\n", 82}, -- {"calc_blklen: blklen %d, ok %ld, failed %ld -> %lu\n", 83}, -- {"calc_blklen: returned %d as best\n", 84}, -- {"\ --\n\ --countem: Total %d %ld\n", 85}, -- {"Bad escape sequence %x", 86}, -- {"Sender Canceled", 87}, -- {"TIMEOUT", 88}, -- {"Bad data subpacket", 89}, -- {"Data subpacket too long", 90}, -- {"Garbage count exceeded", 91}, -- {"Got %s", 92}, -- {"Retry %d: ", 93}, -- {"don't have settimeofday, will not set time\n", 94}, -- {"not running as root (this is good!), can not set time\n", 95}, -- {"bytes_per_error", 96}, -- {"bytes-per-error should be >100", 97}, -- {"O_SYNC not supported by the kernel", 98}, -- {"garbage on commandline", 99}, -- {"Usage: %s [options] [filename.if.xmodem]\n", 100}, -- {"Receive files with ZMODEM/YMODEM/XMODEM protocol\n", 101}, -- {"\ -- -+, --append append to existing files\n\ -- -a, --ascii ASCII transfer (change CR/LF to LF)\n\ -- -b, --binary binary transfer\n\ -- -B, --bufsize N buffer N bytes (N==auto: buffer whole file)\n\ -- -c, --with-crc Use 16 bit CRC (X)\n\ -- -C, --allow-remote-commands allow execution of remote commands (Z)\n\ -- -D, --null write all received data to /dev/null\n\ -- --delay-startup N sleep N seconds before doing anything\n\ -- -e, --escape Escape control characters (Z)\n\ -- -E, --rename rename any files already existing\n\ -- --errors N generate CRC error every N bytes (debugging)\n\ -- -h, --help Help, print this usage message\n\ -- -m, --min-bps N stop transmission if BPS below N\n\ -- -M, --min-bps-time N for at least N seconds (default: 120)\n\ -- -O, --disable-timeouts disable timeout code, wait forever for data\n\ -- --o-sync open output file(s) in synchronous write mode\n\ -- -p, --protect protect existing files\n\ -- -q, --quiet quiet, no progress reports\n\ -- -r, --resume try to resume interrupted file transfer (Z)\n\ -- -R, --restricted restricted, more secure mode\n\ -- -s, --stop-at {HH:MM|+N} stop transmission at HH:MM or in N seconds\n\ -- -S, --timesync request remote time (twice: set local time)\n\ -- --syslog[=off] turn syslog on or off, if possible\n\ -- -t, --timeout N set timeout to N tenths of a second\n\ -- -u, --keep-uppercase keep upper case filenames\n\ -- -U, --unrestrict disable restricted mode (if allowed to)\n\ -- -v, --verbose be verbose, provide debugging information\n\ -- -w, --windowsize N Window is N bytes (Z)\n\ -- -X --xmodem use XMODEM protocol\n\ -- -y, --overwrite Yes, clobber existing file if any\n\ -- --ymodem use YMODEM protocol\n\ -- -Z, --zmodem use ZMODEM protocol\n\ --\n\ --short options use the same arguments as the long ones\n", 102}, -- {"%s waiting to receive.", 103}, -- {"\rBytes received: %7ld/%7ld BPS:%-6ld \r\n", 104}, -- {"%s: ready to receive %s", 105}, -- {"\rBytes received: %7ld BPS:%-6ld \r\n", 106}, -- {"\ --\r\n\ --%s: %s removed.\r\n", 107}, -- {"Pathname fetch returned EOT", 108}, -- {"Received dup Sector", 109}, -- {"Sync Error", 110}, -- {"CRC", 111}, -- {"Checksum", 112}, -- {"Sector number garbled", 113}, -- {"Sender Cancelled", 114}, -- {"Got 0%o sector header", 115}, -- {"file name ends with a /, skipped: %s\n", 116}, -- {"zmanag=%d, Lzmanag=%d\n", 117}, -- {"zconv=%d\n", 118}, -- {"file exists, skipped: %s\n", 119}, -- {"TIMESYNC: here %ld, remote %ld, diff %ld seconds\n", 120}, -- {"TIMESYNC: cannot set time: %s\n", 121}, -- {"cannot tmpfile() for tcp protocol synchronization", 122}, -- {"Topipe", 123}, -- {"Receiving: %s\n", 124}, -- {"Blocks received: %d", 125}, -- {"%s: %s exists\n", 126}, -- {"%s:\tSecurity Violation", 127}, -- {"remote command execution requested", 128}, -- {"not executed", 129}, -- {"got ZRINIT", 130}, -- {"Skipped", 131}, -- {"rzfile: bps rate %ld below min %ld", 132}, -- {"rzfile: reached stop time", 133}, -- {"\rBytes received: %7ld/%7ld BPS:%-6ld ETA %02d:%02d ", 134}, -- {"fgets for tcp protocol synchronization failed: ", 135}, -- {"file close error", 136}, --}; -- --int _msg_tbl_length = 136; ---- lrzsz-0.12.20.safe/po/ChangeLog 1998-04-26 09:20:52.000000000 -0400 -+++ lrzsz-0.12.20/po/ChangeLog 2004-09-12 14:40:34.793681512 -0400 -@@ -1,3 +1,15 @@ -+2004-09-12 gettextize <bug-gnu-gettext@gnu.org> -+ -+ * boldquot.sed: New file, from gettext-0.14.1. -+ * en@boldquot.header: New file, from gettext-0.14.1. -+ * en@quot.header: New file, from gettext-0.14.1. -+ * insert-header.sin: New file, from gettext-0.14.1. -+ * quot.sed: New file, from gettext-0.14.1. -+ * remove-potcdate.sin: New file, from gettext-0.14.1. -+ * Rules-quot: New file, from gettext-0.14.1. -+ * cat-id-tbl.c: Remove file. -+ * stamp-cat-id: Remove file. -+ - /* Automatically generated by po2tbl.sed from lrzsz.pot. */ - - #if HAVE_CONFIG_H ---- lrzsz-0.12.20.safe/po/en@boldquot.header 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/po/en@boldquot.header 2004-09-12 14:40:34.731690936 -0400 -@@ -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. -+# ---- lrzsz-0.12.20.safe/po/en@quot.header 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/po/en@quot.header 2004-09-12 14:40:34.737690024 -0400 -@@ -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. -+# ---- lrzsz-0.12.20.safe/po/insert-header.sin 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/po/insert-header.sin 2004-09-12 14:40:34.743689112 -0400 -@@ -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 -+} ---- lrzsz-0.12.20.safe/po/Makevars 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/po/Makevars 2004-09-12 14:40:34.748688352 -0400 -@@ -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 = ---- lrzsz-0.12.20.safe/po/quot.sed 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/po/quot.sed 2004-09-12 14:40:34.754687440 -0400 -@@ -0,0 +1,6 @@ -+s/"\([^"]*\)"/“\1”/g -+s/`\([^`']*\)'/‘\1’/g -+s/ '\([^`']*\)' / ‘\1’ /g -+s/ '\([^`']*\)'$/ ‘\1’/g -+s/^'\([^`']*\)' /‘\1’ /g -+s/“”/""/g ---- lrzsz-0.12.20.safe/po/remove-potcdate.sin 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/po/remove-potcdate.sin 2004-09-12 14:40:34.762686224 -0400 -@@ -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 -+} ---- lrzsz-0.12.20.safe/po/Rules-quot 1969-12-31 19:00:00.000000000 -0500 -+++ lrzsz-0.12.20/po/Rules-quot 2004-09-12 14:40:34.778683792 -0400 -@@ -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 ---- lrzsz-0.12.20.safe/po/stamp-cat-id 1998-12-30 02:50:01.000000000 -0500 -+++ lrzsz-0.12.20/po/stamp-cat-id 1969-12-31 19:00:00.000000000 -0500 -@@ -1 +0,0 @@ --timestamp ---- lrzsz-0.12.20.safe/src/Makefile.am 1998-12-28 03:38:47.000000000 -0500 -+++ lrzsz-0.12.20/src/Makefile.am 2004-09-12 14:40:53.665812512 -0400 -@@ -2,12 +2,12 @@ - lrz_SOURCES=lrz.c timing.c zperr.c zreadline.c crctab.c rbsb.c zm.c protname.c tcp.c lsyslog.c canit.c - lsz_SOURCES=lsz.c timing.c zperr.c zreadline.c crctab.c rbsb.c zm.c protname.c tcp.c lsyslog.c canit.c - noinst_HEADERS = timing.h zglobal.h zmodem.h --datadir = $(prefix)/@DATADIRNAME@ -+datadir = $(prefix)/share - localedir = $(datadir)/locale - CFLAGS=@CFLAGS@ - DISTCLEAN_FILES=lrzszbug - --LDADD = ../lib/libzmodem.a @INTLLIBS@ -+LDADD = ../lib/libzmodem.a @LIBINTL@ - AUTOMAKE_OPTIONS=ansi2knr - EXTRA_DIST = ansi2knr.1 ansi2knr.c lrzszbug.in - INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/src -I../intl -I$(top_srcdir)/lib |