diff --git a/.hgignore b/.hgignore index 204e3b2a..3a6b01c6 100644 --- a/.hgignore +++ b/.hgignore @@ -3,21 +3,28 @@ syntax:glob .svn **.orig +aclocal.m4 configure config.log **Makefile +**Makefile.in config.status +config.status.lineno autom4te.cache -stamp-h tests/WgetTest.pm tests/unit-tests tests/*.o src/*.o +src/.deps +src/stamp-h1 src/config.h src/config.h.in src/wget src/tags src/TAGS +src/libunittest.a +src/version.c +doc/stamp-vti doc/wget.1 doc/wget.pod doc/wget.info @@ -36,8 +43,13 @@ doc/wget.tp doc/wget.vr doc/wget_a4.ps doc/wget_us.ps -po/Makefile.in +doc/version.texi po/POTFILES po/*.gmo +po/wget.pot +po/remove-potcdate.sed +po/stamp-po +po/en@boldquot.insert-header +po/en@quot.insert-header **~ **.*.swp diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 00000000..ec20977e --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,1101 @@ +1 Notes on the Free Translation Project +*************************************** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +1.1 Quick configuration advice +============================== + +If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in the +operating system where this package is being installed. So far, only +the `gettext' implementation in the GNU C library version 2 provides as +many features (such as locale alias, message inheritance, automatic +charset conversion or plural form handling) as the implementation here. +It is also not possible to offer this additional functionality on top +of a `catgets' implementation. Future versions of GNU `gettext' will +very likely convey even more functionality. So it might be a good idea +to change to GNU `gettext' as soon as possible. + + So you need _not_ provide this option if you are using GNU libc 2 or +you have installed a recent copy of the GNU gettext package with the +included `libintl'. + +1.2 INSTALL Matters +=================== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. If not, the included GNU +`gettext' library will be used. This library is wholly contained +within this package, usually in the `intl/' subdirectory, so prior +installation of the GNU `gettext' package is _not_ required. +Installers may use special options at configuration time for changing +the default behaviour. The commands: + + ./configure --with-included-gettext + ./configure --disable-nls + +will, respectively, bypass any pre-existing `gettext' to use the +internationalizing routines provided within this package, or else, +_totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might not be desirable. You should use +the more recent version of the GNU `gettext' library. I.e. if the file +`intl/VERSION' shows that the library which comes with this package is +more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + The configuration process will not test for the `catgets' function +and therefore it will not be used. The reason is that even an +emulation of `gettext' on top of `catgets' could not provide all the +extensions of the GNU `gettext' library. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.3 Using This Package +====================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, +and `CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your language 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. + +1.4 Translating Teams +===================== + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" +area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `translation@iro.umontreal.ca' to reach the +coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skills are praised more than +programming skills, here. + +1.5 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of October +2006. 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 af am ar az be bg bs ca cs cy da de el en en_GB eo + +----------------------------------------------------+ + GNUnet | [] | + a2ps | [] [] [] [] [] | + aegis | () | + ant-phone | () | + anubis | [] | + ap-utils | | + aspell | [] [] [] [] [] | + bash | [] [] [] | + batchelor | [] | + bfd | | + bibshelf | [] | + binutils | [] | + bison | [] [] | + bison-runtime | | + bluez-pin | [] [] [] [] [] | + cflow | [] | + clisp | [] [] | + console-tools | [] [] | + coreutils | [] [] [] | + cpio | | + cpplib | [] [] [] | + cryptonit | [] | + darkstat | [] () [] | + dialog | [] [] [] [] [] [] | + diffutils | [] [] [] [] [] [] | + doodle | [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + error | [] [] [] [] | + fetchmail | [] [] () [] | + fileutils | [] [] | + findutils | [] [] [] | + flex | [] [] [] | + fslint | [] | + gas | | + gawk | [] [] [] | + gbiff | [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] | + gimp-print | [] [] [] [] | + gip | [] | + gliv | [] | + glunarclock | [] | + gmult | [] [] | + gnubiff | () | + gnucash | () () [] | + gnucash-glossary | [] () | + gnuedu | | + gnulib | [] [] [] [] [] [] | + gnunet-gtk | | + gnutls | | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | | + gpe-clock | [] [] | + gpe-conf | [] [] | + gpe-contacts | | + gpe-edit | [] | + gpe-filemanager | | + gpe-go | [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] | + gpe-package | | + gpe-sketchbook | [] [] | + gpe-su | [] [] | + gpe-taskmanager | [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | | + gphoto2 | [] [] [] [] | + gprof | [] [] | + gpsdrive | () () | + gramadoir | [] [] | + grep | [] [] [] [] [] [] | + gretl | | + gsasl | | + gss | | + gst-plugins | [] [] [] [] | + gst-plugins-base | [] [] [] | + gst-plugins-good | [] [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] [] [] | + gtick | () | + gtkam | [] [] [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] | + id-utils | [] [] | + impost | | + indent | [] [] [] | + iso_3166 | [] [] | + iso_3166_2 | | + iso_4217 | [] | + iso_639 | [] [] | + jpilot | [] | + jtag | | + jwhois | | + kbd | [] [] [] [] | + keytouch | | + keytouch-editor | | + keytouch-keyboa... | | + latrine | () | + ld | [] | + leafpad | [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | [] | + libgpewidget | [] [] [] | + libgpg-error | [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] | + libgsasl | | + libiconv | [] [] | + libidn | [] [] | + lifelines | [] () | + lilypond | [] | + lingoteach | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailutils | [] | + make | [] [] | + man-db | [] () [] [] | + minicom | [] [] [] | + mysecretdiary | [] [] | + nano | [] [] [] | + nano_1_0 | [] () [] [] | + opcodes | [] | + parted | | + pilot-qof | [] | + psmisc | [] | + pwdutils | | + python | | + qof | | + radius | [] | + recode | [] [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] [] | + sh-utils | [] [] | + shared-mime-info | [] [] [] [] | + sharutils | [] [] [] [] [] [] | + shishi | | + silky | | + skencil | [] () | + sketch | [] () | + solfege | | + soundtracker | [] [] | + sp | [] | + stardict | [] | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] | + texinfo | [] [] [] | + textutils | [] [] [] | + tin | () () | + tp-robot | [] | + tuxpaint | [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] | + vorbis-tools | [] [] [] [] | + wastesedge | () | + wdiff | [] [] [] [] | + wget | [] [] | + xchat | [] [] [] [] [] [] | + xkeyboard-config | | + xpad | [] [] | + +----------------------------------------------------+ + af am ar az be bg bs ca cs cy da de el en en_GB eo + 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16 + + es et eu fa fi fr ga gl gu he hi hr hu id is it + +--------------------------------------------------+ + GNUnet | | + a2ps | [] [] [] () | + aegis | | + ant-phone | [] | + anubis | [] | + ap-utils | [] [] | + aspell | [] [] [] | + bash | [] [] [] | + batchelor | [] [] | + bfd | [] | + bibshelf | [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] [] [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] | + cflow | [] | + clisp | [] [] | + console-tools | | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] | + cpplib | [] [] | + cryptonit | [] | + darkstat | [] () [] [] [] | + dialog | [] [] [] [] [] [] [] [] | + diffutils | [] [] [] [] [] [] [] [] [] | + doodle | [] [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] | + error | [] [] [] [] [] | + fetchmail | [] | + fileutils | [] [] [] [] [] [] | + findutils | [] [] [] [] | + flex | [] [] [] | + fslint | [] | + gas | [] [] | + gawk | [] [] [] [] | + gbiff | [] | + gcal | [] [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] | + gimp-print | [] [] | + gip | [] [] [] | + gliv | () | + glunarclock | [] [] [] | + gmult | [] [] [] | + gnubiff | () () | + gnucash | () () () | + gnucash-glossary | [] [] | + gnuedu | [] | + gnulib | [] [] [] [] [] [] [] [] | + gnunet-gtk | | + gnutls | | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | | + gpe-clock | [] [] [] [] | + gpe-conf | [] | + gpe-contacts | [] [] | + gpe-edit | [] [] [] [] | + gpe-filemanager | [] | + gpe-go | [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-package | [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] [] | + gpe-taskmanager | [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] | + gphoto2 | [] [] [] [] [] | + gprof | [] [] [] [] | + gpsdrive | () () [] () | + gramadoir | [] [] | + grep | [] [] [] [] [] [] [] [] [] [] [] [] | + gretl | [] [] [] | + gsasl | [] [] | + gss | [] | + gst-plugins | [] [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] [] | + gstreamer | [] [] [] | + gtick | [] | + gtkam | [] [] [] [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | + id-utils | [] [] [] [] [] | + impost | [] [] | + indent | [] [] [] [] [] [] [] [] [] [] | + iso_3166 | [] [] [] | + iso_3166_2 | [] | + iso_4217 | [] [] [] [] | + iso_639 | [] [] [] [] [] | + jpilot | [] [] | + jtag | [] | + jwhois | [] [] [] [] [] | + kbd | [] [] | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + latrine | [] [] [] | + ld | [] [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | [] | + libgpewidget | [] [] [] [] [] | + libgpg-error | | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] | + libgsasl | [] [] | + libiconv | [] [] | + libidn | [] [] | + lifelines | () | + lilypond | [] | + lingoteach | [] [] [] | + lynx | [] [] [] | + m4 | [] [] [] [] | + mailutils | [] [] | + make | [] [] [] [] [] [] [] [] | + man-db | () | + minicom | [] [] [] [] | + mysecretdiary | [] [] [] | + nano | [] [] [] [] [] [] | + nano_1_0 | [] [] [] [] [] | + opcodes | [] [] [] [] | + parted | [] [] [] [] | + pilot-qof | | + psmisc | [] [] [] | + pwdutils | | + python | | + qof | [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] [] [] [] | + sh-utils | [] [] [] [] [] [] [] | + shared-mime-info | [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] [] | + shishi | | + silky | [] | + skencil | [] [] | + sketch | [] [] | + solfege | [] | + soundtracker | [] [] [] | + sp | [] | + stardict | [] | + system-tools-ba... | [] [] [] [] [] [] [] [] | + tar | [] [] [] [] [] [] [] | + texinfo | [] [] | + textutils | [] [] [] [] [] | + tin | [] () | + tp-robot | [] [] [] [] | + tuxpaint | [] [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux | [] [] [] [] [] [] [] | + vorbis-tools | [] [] | + wastesedge | () | + wdiff | [] [] [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] [] | + xchat | [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] | + xpad | [] [] [] | + +--------------------------------------------------+ + es et eu fa fi fr ga gl gu he hi hr hu id is it + 88 22 14 2 40 115 61 14 1 8 1 6 59 31 0 52 + + ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no + +-------------------------------------------------+ + GNUnet | | + a2ps | () [] [] () | + aegis | () | + ant-phone | [] | + anubis | [] [] [] | + ap-utils | [] | + aspell | [] [] | + bash | [] | + batchelor | [] [] | + bfd | | + bibshelf | [] | + binutils | | + bison | [] [] [] | + bison-runtime | [] [] [] | + bluez-pin | [] [] [] | + cflow | | + clisp | [] | + console-tools | | + coreutils | [] | + cpio | | + cpplib | [] | + cryptonit | [] | + darkstat | [] [] | + dialog | [] [] | + diffutils | [] [] [] | + doodle | | + e2fsprogs | [] | + enscript | [] | + error | [] | + fetchmail | [] [] | + fileutils | [] [] | + findutils | [] | + flex | [] [] | + fslint | [] [] | + gas | | + gawk | [] [] | + gbiff | [] | + gcal | | + gcc | | + gettext-examples | [] [] | + gettext-runtime | [] [] [] | + gettext-tools | [] [] | + gimp-print | [] [] | + gip | [] [] | + gliv | [] | + glunarclock | [] [] | + gmult | [] [] | + gnubiff | | + gnucash | () () | + gnucash-glossary | [] | + gnuedu | | + gnulib | [] [] [] [] | + gnunet-gtk | | + gnutls | | + gpe-aerial | [] | + gpe-beam | [] | + gpe-calendar | [] | + gpe-clock | [] [] [] | + gpe-conf | [] [] | + gpe-contacts | [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] | + gpe-taskmanager | [] [] [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | [] | + gphoto2 | [] [] | + gprof | | + gpsdrive | () () () | + gramadoir | () | + grep | [] [] [] [] | + gretl | | + gsasl | [] | + gss | | + gst-plugins | [] | + gst-plugins-base | | + gst-plugins-good | [] | + gstreamer | [] | + gtick | | + gtkam | [] | + gtkorphan | [] | + gtkspell | [] [] | + gutenprint | | + hello | [] [] [] [] [] [] | + id-utils | [] | + impost | | + indent | [] [] | + iso_3166 | [] | + iso_3166_2 | [] | + iso_4217 | [] [] [] | + iso_639 | [] [] | + jpilot | () () () | + jtag | | + jwhois | [] | + kbd | [] | + keytouch | [] | + keytouch-editor | | + keytouch-keyboa... | | + latrine | [] | + ld | | + leafpad | [] [] | + libc | [] [] [] [] [] | + libexif | | + libextractor | | + libgpewidget | [] | + libgpg-error | | + libgphoto2 | [] | + libgphoto2_port | [] | + libgsasl | [] | + libiconv | | + libidn | [] [] | + lifelines | [] | + lilypond | | + lingoteach | [] | + lynx | [] [] | + m4 | [] [] | + mailutils | | + make | [] [] [] | + man-db | () | + minicom | [] | + mysecretdiary | [] | + nano | [] [] [] | + nano_1_0 | [] [] [] | + opcodes | [] | + parted | [] [] | + pilot-qof | | + psmisc | [] [] [] | + pwdutils | | + python | | + qof | | + radius | | + recode | [] | + rpm | [] [] | + screem | [] | + scrollkeeper | [] [] [] [] | + sed | [] [] | + sh-utils | [] [] | + shared-mime-info | [] [] [] [] [] | + sharutils | [] [] | + shishi | | + silky | [] | + skencil | | + sketch | | + solfege | | + soundtracker | | + sp | () | + stardict | [] [] | + system-tools-ba... | [] [] [] [] | + tar | [] [] [] | + texinfo | [] [] [] | + textutils | [] [] [] | + tin | | + tp-robot | [] | + tuxpaint | [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] | + vorbis-tools | [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] | + xchat | [] [] [] [] | + xkeyboard-config | [] | + xpad | [] [] [] | + +-------------------------------------------------+ + ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no + 52 24 2 2 1 3 0 2 3 21 0 15 1 97 5 1 + + nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta + +------------------------------------------------------+ + GNUnet | | + a2ps | () [] [] [] [] [] [] | + aegis | () () | + ant-phone | [] [] | + anubis | [] [] [] | + ap-utils | () | + aspell | [] [] | + bash | [] [] [] | + batchelor | [] [] | + bfd | | + bibshelf | [] | + binutils | [] [] | + bison | [] [] [] [] [] | + bison-runtime | [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] [] | + cflow | [] | + clisp | [] | + console-tools | [] | + coreutils | [] [] [] [] | + cpio | [] [] [] | + cpplib | [] | + cryptonit | [] [] | + darkstat | [] [] [] [] [] [] | + dialog | [] [] [] [] [] [] [] [] [] | + diffutils | [] [] [] [] [] [] | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] [] | + error | [] [] [] [] | + fetchmail | [] [] [] | + fileutils | [] [] [] [] [] | + findutils | [] [] [] [] [] [] | + flex | [] [] [] [] [] | + fslint | [] [] [] [] | + gas | | + gawk | [] [] [] [] | + gbiff | [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] [] | + gimp-print | [] [] | + gip | [] [] [] [] | + gliv | [] [] [] [] | + glunarclock | [] [] [] [] [] [] | + gmult | [] [] [] [] | + gnubiff | () | + gnucash | () [] | + gnucash-glossary | [] [] [] | + gnuedu | | + gnulib | [] [] [] [] [] | + gnunet-gtk | [] | + gnutls | [] [] | + gpe-aerial | [] [] [] [] [] [] [] | + gpe-beam | [] [] [] [] [] [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] [] [] [] [] | + gpe-conf | [] [] [] [] [] [] [] | + gpe-contacts | [] [] [] [] [] | + gpe-edit | [] [] [] [] [] [] [] [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] [] [] [] | + gpe-login | [] [] [] [] [] [] [] [] | + gpe-ownerinfo | [] [] [] [] [] [] [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] [] [] [] [] [] [] | + gpe-su | [] [] [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] [] | + gpe-todo | [] [] [] [] | + gphoto2 | [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] | + grep | [] [] [] [] [] [] [] [] | + gretl | [] | + gsasl | [] [] [] | + gss | [] [] [] | + gst-plugins | [] [] [] [] | + gst-plugins-base | [] | + gst-plugins-good | [] [] [] [] | + gstreamer | [] [] [] | + gtick | [] | + gtkam | [] [] [] [] | + gtkorphan | [] | + gtkspell | [] [] [] [] [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] [] | + id-utils | [] [] [] [] | + impost | [] | + indent | [] [] [] [] [] [] | + iso_3166 | [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] [] [] | + iso_639 | [] [] [] [] | + jpilot | | + jtag | [] | + jwhois | [] [] [] [] | + kbd | [] [] [] | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + latrine | [] [] | + ld | [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | [] [] | + libgpewidget | [] [] [] [] [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] | + libgphoto2_port | [] [] [] | + libgsasl | [] [] [] [] | + libiconv | [] [] | + libidn | [] [] () | + lifelines | [] [] | + lilypond | | + lingoteach | [] | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailutils | [] [] [] [] | + make | [] [] [] [] | + man-db | [] [] | + minicom | [] [] [] [] [] | + mysecretdiary | [] [] [] [] | + nano | [] [] [] | + nano_1_0 | [] [] [] [] | + opcodes | [] [] | + parted | [] | + pilot-qof | [] | + psmisc | [] [] | + pwdutils | [] [] | + python | | + qof | [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] | + rpm | [] [] [] [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] | + sh-utils | [] [] [] | + shared-mime-info | [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] | + silky | [] | + skencil | [] [] [] | + sketch | [] [] [] | + solfege | [] | + soundtracker | [] [] | + sp | | + stardict | [] [] [] | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] [] [] [] [] | + texinfo | [] [] [] [] | + textutils | [] [] [] | + tin | () | + tp-robot | [] | + tuxpaint | [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] | + vorbis-tools | [] [] | + wastesedge | | + wdiff | [] [] [] [] [] [] | + wget | [] [] [] [] | + xchat | [] [] [] [] [] [] [] | + xkeyboard-config | [] [] | + xpad | [] [] [] | + +------------------------------------------------------+ + nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta + 0 2 3 58 30 54 5 73 72 4 40 46 11 50 128 2 + + tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu + +---------------------------------------------------+ + GNUnet | [] | 2 + a2ps | [] [] [] | 19 + aegis | | 0 + ant-phone | [] [] | 6 + anubis | [] [] [] | 11 + ap-utils | () [] | 4 + aspell | [] [] [] | 15 + bash | [] | 11 + batchelor | [] [] | 9 + bfd | | 1 + bibshelf | [] | 7 + binutils | [] [] [] | 9 + bison | [] [] [] | 19 + bison-runtime | [] [] [] | 15 + bluez-pin | [] [] [] [] [] [] | 28 + cflow | [] [] | 5 + clisp | | 6 + console-tools | [] [] | 5 + coreutils | [] [] | 16 + cpio | [] [] [] | 9 + cpplib | [] [] [] [] | 11 + cryptonit | | 5 + darkstat | [] () () | 15 + dialog | [] [] [] [] [] | 30 + diffutils | [] [] [] [] | 28 + doodle | [] | 6 + e2fsprogs | [] [] | 10 + enscript | [] [] [] | 16 + error | [] [] [] [] | 18 + fetchmail | [] [] | 12 + fileutils | [] [] [] | 18 + findutils | [] [] [] | 17 + flex | [] [] | 15 + fslint | [] | 9 + gas | [] | 3 + gawk | [] [] | 15 + gbiff | [] | 5 + gcal | [] | 5 + gcc | [] [] [] | 6 + gettext-examples | [] [] [] [] [] [] | 27 + gettext-runtime | [] [] [] [] [] [] | 28 + gettext-tools | [] [] [] [] [] | 19 + gimp-print | [] [] | 12 + gip | [] [] | 12 + gliv | [] [] | 8 + glunarclock | [] [] [] | 15 + gmult | [] [] [] [] | 15 + gnubiff | [] | 1 + gnucash | () | 2 + gnucash-glossary | [] [] | 9 + gnuedu | [] | 2 + gnulib | [] [] [] [] [] | 28 + gnunet-gtk | | 1 + gnutls | | 2 + gpe-aerial | [] [] | 14 + gpe-beam | [] [] | 14 + gpe-calendar | [] | 3 + gpe-clock | [] [] [] [] | 21 + gpe-conf | [] [] | 14 + gpe-contacts | [] [] | 10 + gpe-edit | [] [] [] [] | 20 + gpe-filemanager | [] | 6 + gpe-go | [] [] | 15 + gpe-login | [] [] [] [] [] | 21 + gpe-ownerinfo | [] [] [] [] | 21 + gpe-package | [] | 6 + gpe-sketchbook | [] [] | 16 + gpe-su | [] [] [] | 20 + gpe-taskmanager | [] [] [] | 20 + gpe-timesheet | [] [] [] [] | 18 + gpe-today | [] [] [] [] [] | 21 + gpe-todo | [] | 7 + gphoto2 | [] [] [] [] | 20 + gprof | [] [] | 11 + gpsdrive | | 4 + gramadoir | [] | 7 + grep | [] [] [] [] | 34 + gretl | | 4 + gsasl | [] [] | 8 + gss | [] | 5 + gst-plugins | [] [] [] | 15 + gst-plugins-base | [] [] [] | 9 + gst-plugins-good | [] [] [] [] [] | 20 + gstreamer | [] [] [] | 17 + gtick | [] | 3 + gtkam | [] | 13 + gtkorphan | [] | 7 + gtkspell | [] [] [] [] [] [] | 26 + gutenprint | | 3 + hello | [] [] [] [] [] | 37 + id-utils | [] [] | 14 + impost | [] | 4 + indent | [] [] [] [] | 25 + iso_3166 | [] [] [] [] | 16 + iso_3166_2 | | 2 + iso_4217 | [] [] | 14 + iso_639 | [] | 14 + jpilot | [] [] [] [] | 7 + jtag | [] | 3 + jwhois | [] [] [] | 13 + kbd | [] [] | 12 + keytouch | [] | 4 + keytouch-editor | | 2 + keytouch-keyboa... | [] | 3 + latrine | [] [] | 8 + ld | [] [] [] [] | 8 + leafpad | [] [] [] [] | 23 + libc | [] [] [] | 23 + libexif | [] | 4 + libextractor | [] | 5 + libgpewidget | [] [] [] | 19 + libgpg-error | [] | 4 + libgphoto2 | [] | 8 + libgphoto2_port | [] [] [] | 11 + libgsasl | [] | 8 + libiconv | [] | 7 + libidn | [] [] | 10 + lifelines | | 4 + lilypond | | 2 + lingoteach | [] | 6 + lynx | [] [] [] | 15 + m4 | [] [] [] | 18 + mailutils | [] | 8 + make | [] [] [] | 20 + man-db | [] | 6 + minicom | [] | 14 + mysecretdiary | [] [] | 12 + nano | [] [] | 17 + nano_1_0 | [] [] [] | 18 + opcodes | [] [] | 10 + parted | [] [] [] | 10 + pilot-qof | [] | 3 + psmisc | [] | 10 + pwdutils | [] | 3 + python | | 0 + qof | [] | 4 + radius | [] | 6 + recode | [] [] [] | 25 + rpm | [] [] [] [] | 14 + screem | [] | 2 + scrollkeeper | [] [] [] [] | 26 + sed | [] [] [] | 22 + sh-utils | [] | 15 + shared-mime-info | [] [] [] [] | 24 + sharutils | [] [] [] | 23 + shishi | | 1 + silky | [] | 4 + skencil | [] | 7 + sketch | | 6 + solfege | | 2 + soundtracker | [] [] | 9 + sp | [] | 3 + stardict | [] [] [] [] | 11 + system-tools-ba... | [] [] [] [] [] [] [] | 37 + tar | [] [] [] [] | 20 + texinfo | [] [] [] | 15 + textutils | [] [] [] | 17 + tin | | 1 + tp-robot | [] [] [] | 10 + tuxpaint | [] [] [] | 16 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux | [] [] [] | 20 + vorbis-tools | [] [] | 11 + wastesedge | | 1 + wdiff | [] [] | 22 + wget | [] [] [] | 19 + xchat | [] [] [] [] | 29 + xkeyboard-config | [] [] [] [] | 11 + xpad | [] [] [] | 14 + +---------------------------------------------------+ + 77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu + 170 domains 0 1 1 77 39 0 136 10 1 48 5 54 0 2028 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If October 2006 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'. + +1.6 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. + diff --git a/AUTHORS b/AUTHORS index 49a48ca6..219877e9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -42,3 +42,6 @@ Daniel Stenberg. NTLM authentication in http-ntlm.c and http-ntlm.h originally written for curl donated for use in GNU Wget. Micah Cowan. Current Wget maintainer, from mid-2007. + +Ralf Wildenhues. Contributed patches to convert Wget to use Automake as +part of its build process, and various bugfixes. diff --git a/ChangeLog b/ChangeLog index 46ff400f..4cb4b281 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,55 @@ +2007-10-09 Micah Cowan + + * configure.in: Renamed to configure.ac + * configure.ac: Renamed from configure.in. Added invocations of + AM_GNU_GETTEXT, etc. Added en@quot and en@boldquot pseudo-LINGUA + support. + * ABOUT-NLS: Added back in (required by autoreconf :\). + * Makefile.am: Added ABOUT-NLS and msdos/Makefile.WC to EXTRA_DIST. + * m4/wget.m4: Removed no-longer-used NLS stuff. + * Makefile.in.in: Restore previous policy of not updating .po's + unless explicitly asked (via update-po). + +2007-10-09 gettextize + + * m4/gettext.m4: New file, from gettext-0.16.1. + * m4/iconv.m4: New file, from gettext-0.16.1. + * m4/lib-ld.m4: Upgrade to gettext-0.16.1. + * m4/lib-link.m4: Upgrade to gettext-0.16.1. + * m4/lib-prefix.m4: Upgrade to gettext-0.16.1. + * m4/nls.m4: New file, from gettext-0.16.1. + * m4/po.m4: New file, from gettext-0.16.1. + * m4/progtest.m4: New file, from gettext-0.16.1. + * po/Makefile.in.in: Upgrade to gettext-0.16.1. + * po/Rules-quot: New file, from gettext-0.16.1. + * po/boldquot.sed: New file, from gettext-0.16.1. + * po/en@boldquot.header: New file, from gettext-0.16.1. + * po/en@quot.header: New file, from gettext-0.16.1. + * po/insert-header.sin: New file, from gettext-0.16.1. + * po/quot.sed: New file, from gettext-0.16.1. + * po/remove-potcdate.sin: New file, from gettext-0.16.1. + +2007-10-08 Micah Cowan + + * AUTHORS: Credit to Ralf Wildenhues for automakifying patches. + +2007-10-05 Ralf Wildenhues + + * po/Makefile.in.in: Since `distdir' is used now, adjust + DISTFILES to the missing ChangeLog file. + Add trivial targets ps, pdf, html. + * Makefile.in: Removed, replaced by Makefile.am. + * Makefile.am: Converted from Makefile.in. + * util/Makefile.in: Removed, replaced by Makefile.am. + * util/Makefile.am: Converted from Makefile.in. + * configure.in: Adjust for automake support. + +2007-10-05 Micah Cowan + + * config.guess, config.sub, install-sh: Update from versions + found in /usr/share/automake/. + * autogen.sh: Removed, in favor of just running autoreconf. + 2007-10-03 Micah Cowan * NEWS: Note missing functionality from GnuTLS support. Call out diff --git a/autogen.sh b/Makefile.am old mode 100755 new mode 100644 similarity index 67% rename from autogen.sh rename to Makefile.am index 0ebac1a5..0b4b2047 --- a/autogen.sh +++ b/Makefile.am @@ -1,8 +1,6 @@ -#!/bin/sh -x - -# The (trivial) script for preparing the sources following the -# checkout from version control. -# Copyright (C) 2005, 2007 Free Software Foundation, Inc. +# Makefile for `Wget' utility +# Copyright (C) 1995, 1996, 1997, 2006 Free Software Foundation, Inc. +# Copyright (C) 1995, 1996, 1997, 2006, 2007 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 @@ -27,13 +25,21 @@ # file, but you are not obligated to do so. If you do not wish to do # so, delete this exception statement from your version. -# TODO: print an error message nicer than "sh: command not found" when -# Autoconf is not installed (or, more precisely, not found in the -# PATH). +# +# Version: @VERSION@ +# -autoheader -autoconf +# Search for macros in the m4 subdirectory: +ACLOCAL_AMFLAGS = -I m4 -# At this point we intentionally don't invoke configure and make -# because we don't know where the user wants to run the configuration, -# nor with which arguments. That should be up to the user. +# subdirectories in the distribution +SUBDIRS = src doc po tests util windows + +test: all + cd tests && $(MAKE) $(AM_MAKEFLAGS) $@ + +EXTRA_DIST = ChangeLog.README configure.bat MAILING-LIST PATCHES \ + msdos/ChangeLog msdos/config.h msdos/Makefile.DJ \ + msdos/Makefile.WC ABOUT-NLS + +CLEANFILES = *~ *.bak $(DISTNAME).tar.gz diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index a680164e..00000000 --- a/Makefile.in +++ /dev/null @@ -1,186 +0,0 @@ -# Makefile for `Wget' utility -# Copyright (C) 1995, 1996, 1997, 2006, 2007 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 3 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, see . - -# In addition, as a special exception, the Free Software Foundation -# gives permission to link the code of its release of Wget with the -# OpenSSL project's "OpenSSL" library (or with modified versions of it -# that use the same license as the "OpenSSL" library), and distribute -# the linked executables. You must obey the GNU General Public License -# in all respects for all of the code used other than "OpenSSL". If you -# modify this file, you may extend this exception to your version of the -# file, but you are not obligated to do so. If you do not wish to do -# so, delete this exception statement from your version. - -# -# Version: @VERSION@ -# - -SHELL = /bin/sh -@SET_MAKE@ - -top_builddir = . - -srcdir = @srcdir@ -VPATH = @srcdir@ - -# -# User configuration section -# - -# -# Install variables -# -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -infodir = @infodir@ -sysconfdir = @sysconfdir@ -mandir = @mandir@ -manext = 1 -localedir = $(prefix)/share/locale - -CC = @CC@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\" -DLOCALEDIR=\"$(localedir)\" -LIBS = @LIBS@ @LIBSSL@ @LIBGNUTLS@ -LDFLAGS = @LDFLAGS@ - -# -# End of user configuration section. There should be no need to change -# anything below this line. -# - -DISTNAME = wget-@VERSION@ -RM = rm -f - -# These are used for maintenance only, so they are safe without -# special autoconf cruft. -FIND = find -GZIP = gzip -TAR = tar - -# flags passed to recursive makes in subdirectories -MAKEDEFS = CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' \ -CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' LIBS='$(LIBS)' \ -DESTDIR='$(DESTDIR)' prefix='$(prefix)' exec_prefix='$(exec_prefix)' \ -bindir='$(bindir)' infodir='$(infodir)' mandir='$(mandir)' \ -manext='$(manext)' - -# subdirectories in the distribution -SUBDIRS = src doc po tests util windows - -# default target -all: src/config.h Makefile $(SUBDIRS) - -test: src/config.h Makefile src - cd tests && $(MAKE) $(MAKEDEFS) $@ - -check: all - -$(SUBDIRS): FORCE - cd $@ && $(MAKE) $(MAKEDEFS) - -# install everything -install: install.bin install.info install.wgetrc \ - install.mo @COMMENT_IF_NO_POD2MAN@install.man - -# install/uninstall the binary -install.bin uninstall.bin: - cd src && $(MAKE) $(MAKEDEFS) $@ - -# install/uninstall the info/man pages -install.info uninstall.info install.man uninstall.man install.wgetrc: - cd doc && $(MAKE) $(MAKEDEFS) $@ - -# Install `.mo' files -install.mo: - cd po && $(MAKE) $(MAKEDEFS) $@ - -# create tag files for Emacs -TAGS: - cd src && $(MAKE) $@ - -dist: $(srcdir)/configure DISTFILES - mkdir $(DISTNAME) - for d in `$(FIND) . -type d ! -regex '.*/\.svn\(/.*\)?' -print`; do \ - if [ "$$d" != "." -a "$$d" != "./$(DISTNAME)" ]; then \ - mkdir $(DISTNAME)/$$d; \ - fi; \ - done - for f in `cat DISTFILES`; do \ - ln $(srcdir)/$$f $(DISTNAME)/$$f || \ - { echo copying $$f; cp -p $(srcdir)/$$f $(DISTNAME)/$$f ; } \ - done - (cd $(DISTNAME); $(MAKE) distclean) - $(TAR) chvf - $(DISTNAME) | $(GZIP) -c --best >$(DISTNAME).tar.gz - $(RM) -r $(DISTNAME) - $(RM) DISTFILES - -DISTFILES: FORCE - rm -rf $(DISTNAME) - (cd $(srcdir); find . ! -type d -print) \ - | sed '/\/\.svn\//d; /$@/d; /\.tar.*/d; s/^.\///; /^\.$$/d;' \ - | sort | uniq > $@ - -# -# Cleanup dependencies -# - -clean: clean-recursive clean-top -distclean: distclean-recursive distclean-top -realclean: realclean-recursive realclean-top - -clean-top: - $(RM) *~ *.bak $(DISTNAME).tar.gz - -distclean-top: clean-top - $(RM) Makefile config.status config.log config.cache libtool stamp-h - $(RM) -r autom4te.cache - -realclean-top: distclean-top - $(RM) configure - -clean-recursive distclean-recursive realclean-recursive: - for subdir in $(SUBDIRS); do \ - target=`echo $@ | sed s/-recursive//`; \ - (cd $$subdir && $(MAKE) $(MAKEDEFS) $$target) || exit 1; \ - done - -# -# Dependencies for maintenance -# - -$(srcdir)/configure: configure.in - cd $(srcdir) && autoconf - -# autoheader might not change config.h.in, so touch a stamp file. -$(srcdir)/src/config.h.in: stamp-h.in -$(srcdir)/stamp-h.in: configure.in - @true; # running autoheader here breaks: cd $(srcdir) && autoheader - echo timestamp > $(srcdir)/stamp-h.in - -src/config.h: stamp-h -stamp-h: src/config.h.in config.status - ./config.status - -Makefile: Makefile.in config.status - ./config.status - -config.status: configure - ./config.status --recheck - -FORCE: diff --git a/NEWS b/NEWS index 318840dc..e7c854d6 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,10 @@ See the end for copying conditions. Please send GNU Wget bug reports to . +* Changes in Wget (MAINLINE). + +** Wget uses Automake now. + * Changes in Wget 1.11. ** TODO file removed: we use a bugtracker now; see diff --git a/README.checkout b/README.checkout index 1928b6fb..fbdaea17 100644 --- a/README.checkout +++ b/README.checkout @@ -4,14 +4,14 @@ To reduce bandwidth and needless updates, the Subversion tree does not contain automatically-generated files, even when those files are normally present in the distribution tarballs. -Therefore, if you're building from the sources obtained via -Subversion, you'll need to have at least GNU Autoconf (2.59 or newer) -installed on your system. To generate the Info documentation, you -will need the GNU Texinfo package. Those packages are available from -/> and its mirrors, listed at -. +Therefore, if you're building from the sources obtained via Subversion, +you'll need to have at least GNU Autoconf (2.61 or newer) and GNU +Automake (1.10 or newer) installed on your system. To generate the Info +documentation, you will need the GNU Texinfo package. Those packages are +available from /> and its mirrors, +listed at . -In case you aren't used to running autoconf manually to generate the +In case you aren't used to running autotools manually to generate the necessary configure script, a script called autogen.sh has been provided, and may be invoked using `./autogen.sh'. Once the script has completed, the configure script will reside in the current diff --git a/compile b/compile new file mode 100755 index 00000000..1b1d2321 --- /dev/null +++ b/compile @@ -0,0 +1,142 @@ +#! /bin/sh +# Wrapper for compilers which do not understand `-c -o'. + +scriptversion=2005-05-14.22 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand `-c -o'. +Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file `INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; +esac + +ofile= +cfile= +eat= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we strip `-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` + +# Create the lock directory. +# Note: use `[/.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# 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: diff --git a/config.guess b/config.guess index cf224a15..396482d6 100755 --- a/config.guess +++ b/config.guess @@ -1,14 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software -# Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. -timestamp='2005-05-27' +timestamp='2006-07-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# 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 @@ -17,7 +17,9 @@ timestamp='2005-05-27' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -105,7 +107,7 @@ set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; @@ -124,7 +126,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -198,50 +200,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; - amd64:OpenBSD:*:*) - echo x86_64-unknown-openbsd${UNAME_RELEASE} - exit ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; - cats:OpenBSD:*:*) - echo arm-unknown-openbsd${UNAME_RELEASE} - exit ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; - luna88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit ;; - sgi:OpenBSD:*:*) - echo mips64-unknown-openbsd${UNAME_RELEASE} - exit ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} @@ -657,8 +627,7 @@ EOF esac if [ ${HP_ARCH} = "hppa2.0w" ] then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -799,7 +768,14 @@ EOF echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -814,8 +790,11 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + x86:Interix*:[3456]*) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T:Interix*:[3456]*) + echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks @@ -829,7 +808,7 @@ EOF i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; - amd64:CYGWIN*:*:*) + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) @@ -852,6 +831,9 @@ EOF arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; @@ -886,7 +868,11 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) @@ -905,9 +891,16 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; @@ -951,6 +944,9 @@ EOF sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; @@ -996,7 +992,7 @@ EOF LIBC=gnulibc1 # endif #else - #ifdef __INTEL_COMPILER + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout @@ -1006,7 +1002,11 @@ EOF LIBC=dietlibc #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit @@ -1217,7 +1217,6 @@ EOF *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in - *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} @@ -1296,6 +1295,9 @@ EOF i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff --git a/config.rpath b/config.rpath index 3f1bef34..c492a93b 100755 --- a/config.rpath +++ b/config.rpath @@ -2,7 +2,7 @@ # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # -# Copyright 1996-2005 Free Software Foundation, Inc. +# Copyright 1996-2006 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # @@ -25,7 +25,7 @@ # 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, +# All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so @@ -35,7 +35,17 @@ host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -cc_basename=`echo "$CC" | sed -e 's%^.*/%%'` +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. @@ -48,7 +58,7 @@ else wl='-Wl,' ;; darwin*) - case "$cc_basename" in + case $cc_basename in xlc*) wl='-Wl,' ;; @@ -78,6 +88,13 @@ else como) wl='-lopt=' ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; esac ;; osf3* | osf4* | osf5*) @@ -120,6 +137,10 @@ case "$host_os" in with_gnu_ld=no fi ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; openbsd*) with_gnu_ld=no ;; @@ -127,6 +148,12 @@ esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # 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' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken @@ -162,9 +189,20 @@ if test "$with_gnu_ld" = yes; then ld_shlibs=no fi ;; + interix3*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; netbsd*) ;; - solaris* | sysv5*) + solaris*) 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 @@ -173,16 +211,23 @@ if test "$with_gnu_ld" = yes; then ld_shlibs=no fi ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; sunos4*) hardcode_direct=yes ;; - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : @@ -191,10 +236,8 @@ if test "$with_gnu_ld" = yes; then 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' + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= fi else case "$host_os" in @@ -225,6 +268,7 @@ else break fi done + ;; esac fi hardcode_direct=yes @@ -244,6 +288,7 @@ else hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi + ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. @@ -291,7 +336,7 @@ else if test "$GCC" = yes ; then : else - case "$cc_basename" in + case $cc_basename in xlc*) ;; *) @@ -326,24 +371,25 @@ else # but as the default location of the library. hardcode_minus_L=yes ;; - hpux10* | hpux11*) + hpux10*) 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_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 + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) 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. @@ -397,8 +443,6 @@ else fi hardcode_libdir_separator=: ;; - sco3.2v5*) - ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; @@ -427,14 +471,11 @@ else ld_shlibs=yes fi ;; - sysv4.2uw2*) - hardcode_direct=yes - hardcode_minus_L=no + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - ;; - sysv5*) - hardcode_libdir_flag_spec= + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' @@ -471,12 +512,12 @@ case "$host_os" in ;; kfreebsd*-gnu) ;; - freebsd*) + freebsd* | dragonfly*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) - case "$host_cpu" in + case $host_cpu in ia64*) shrext=.so ;; @@ -488,6 +529,8 @@ case "$host_os" in ;; esac ;; + interix3*) + ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) @@ -523,16 +566,16 @@ case "$host_os" in ;; osf3* | osf4* | osf5*) ;; - sco3.2v5*) - ;; solaris*) ;; sunos4*) ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + sysv4 | sysv4.3*) ;; sysv4*MP*) ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + ;; uts4*) ;; esac diff --git a/config.sub b/config.sub index c77979b2..fab0aa35 100755 --- a/config.sub +++ b/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software -# Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. -timestamp='2005-06-02' +timestamp='2006-09-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -12,7 +12,7 @@ timestamp='2005-06-02' # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# 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, @@ -21,7 +21,9 @@ timestamp='2005-06-02' # 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, see . +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -118,8 +120,9 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -170,6 +173,10 @@ case $os in -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -186,6 +193,10 @@ case $os in # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -230,7 +241,7 @@ case $basic_machine in | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ @@ -238,7 +249,8 @@ case $basic_machine in | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -247,6 +259,7 @@ case $basic_machine in | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ @@ -255,28 +268,27 @@ case $basic_machine in | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ - | ms1 \ + | mt \ | msp430 \ + | nios | nios2 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; - m32c) - basic_machine=$basic_machine-unknown - ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown @@ -284,6 +296,9 @@ case $basic_machine in ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -303,7 +318,7 @@ case $basic_machine in | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ + | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ @@ -314,7 +329,7 @@ case $basic_machine in | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* | m32rle-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ @@ -325,6 +340,7 @@ case $basic_machine in | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ @@ -333,31 +349,30 @@ case $basic_machine in | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ - | ms1-* \ + | mt-* \ | msp430-* \ + | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; - m32c-*) - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) @@ -693,6 +708,9 @@ case $basic_machine in basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -768,9 +786,8 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff ;; os400) basic_machine=powerpc-ibm @@ -801,6 +818,12 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; @@ -857,6 +880,10 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -883,6 +910,10 @@ case $basic_machine in sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; sei) basic_machine=mips-sei os=-seiux @@ -1096,13 +1127,10 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1175,20 +1203,23 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* | -skyos*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1206,7 +1237,7 @@ case $os in os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) @@ -1340,6 +1371,12 @@ else # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1349,9 +1386,9 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff - ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1395,6 +1432,9 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; diff --git a/configure.in b/configure.ac similarity index 93% rename from configure.in rename to configure.ac index 1e8fadfe..33df20a2 100644 --- a/configure.in +++ b/configure.ac @@ -28,23 +28,29 @@ dnl dnl Process this file with autoconf to produce a configure script. dnl -AC_INIT([src/version.c]) +AC_INIT([wget], + [1.12-devel], + [bug-wget@gnu.org]) AC_PREREQ(2.61) -dnl Include the M4 macros we use. -builtin(include, [m4/wget.m4])dnl -builtin(include, [m4/lib-ld.m4])dnl -builtin(include, [m4/lib-link.m4])dnl -builtin(include, [m4/lib-prefix.m4])dnl - dnl dnl What version of Wget are we building? dnl -VERSION=`sed -e 's/^.*"\(.*\)";$/\1/' ${srcdir}/src/version.c` -AC_MSG_NOTICE([configuring for GNU Wget $VERSION]) -AC_SUBST(VERSION) -PACKAGE=wget -AC_SUBST(PACKAGE) +AC_MSG_NOTICE([configuring for GNU Wget $PACKAGE_VERSION]) + +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_AUX_DIR([.]) + +dnl +dnl Automake setup +dnl +AM_INIT_AUTOMAKE(1.9) + +dnl +dnl Gettext +dnl +AM_GNU_GETTEXT([external],[need-ngettext]) +AM_GNU_GETTEXT_VERSION([0.16.1]) dnl dnl Get cannonical host @@ -88,20 +94,6 @@ case "${ENABLE_OPIE}${ENABLE_DIGEST}" in *yes*) wget_need_md5=yes esac -if test x"$ENABLE_OPIE" = xyes; then - OPIE_OBJ='ftp-opie.o' -fi -AC_SUBST(OPIE_OBJ) - -dnl -dnl Whether make sets $(MAKE)... -dnl -AC_PROG_MAKE_SET - -dnl -dnl Find a good install -dnl -AC_PROG_INSTALL dnl dnl Find the compiler @@ -112,8 +104,11 @@ test -z "$CFLAGS" && CFLAGS= auto_cflags=1 test -z "$CC" && cc_specified=yes AC_PROG_CC +AM_PROG_CC_C_O AC_AIX +AC_PROG_RANLIB + dnl Turn on optimization by default. Specifically: dnl dnl if the user hasn't specified CFLAGS, then @@ -197,6 +192,10 @@ AC_FUNC_FSEEKO AC_CHECK_FUNCS(strptime timegm snprintf vsnprintf vasprintf drand48) AC_CHECK_FUNCS(strtoll usleep ftello sigblock sigsetjmp memrchr) +if test x"$ENABLE_OPIE" = xyes; then + AC_LIBOBJ([ftp-opie]) +fi + dnl We expect to have these functions on Unix-like systems configure dnl runs on. The defines are provided to get them in config.h.in so dnl Wget can still be ported to non-Unix systems (such as Windows) @@ -221,9 +220,8 @@ dnl dnl Check if we need to compile in getopt.c. dnl AC_CHECK_FUNC(getopt_long, [], [ - GETOPT_OBJ='getopt.o' + AC_LIBOBJ([getopt]) ]) -AC_SUBST(GETOPT_OBJ) dnl dnl Checks for libraries. @@ -237,7 +235,7 @@ AS_IF([test x"$with_ssl" = xgnutls], [ if test x"$LIBGNUTLS" != x then AC_MSG_NOTICE([compiling in support for SSL via GnuTLS]) - SSL_OBJ='gnutls.o' + AC_LIBOBJ([gnutls]) else AC_MSG_ERROR([--with-ssl=gnutls was given, but GNUTLS is not available.]) fi @@ -265,7 +263,7 @@ AS_IF([test x"$with_ssl" = xgnutls], [ if test x"$LIBSSL" != x then AC_MSG_NOTICE([compiling in support for SSL via OpenSSL]) - SSL_OBJ='openssl.o' + AC_LIBOBJ([openssl]) elif test x"$with_ssl" != x then AC_MSG_ERROR([--with-ssl was given, but SSL is not available.]) @@ -273,17 +271,15 @@ AS_IF([test x"$with_ssl" = xgnutls], [ ]) # endif: --with-ssl == no? ]) # endif: --with-ssl == gnutls? -AC_SUBST(SSL_OBJ) dnl Enable NTLM if requested and if SSL is available. -NTLM_OBJ='' if test x"$LIBSSL" != x then if test x"$ENABLE_NTLM" != xno then AC_DEFINE([ENABLE_NTLM], 1, [Define if you want the NTLM authorization support compiled in.]) - NTLM_OBJ='http-ntlm.o' + AC_LIBOBJ([http-ntlm]) fi else dnl If SSL is unavailable and the user explicitly requested NTLM, @@ -293,7 +289,6 @@ else AC_MSG_ERROR([NTLM authorization requested and OpenSSL not found; aborting]) fi fi -AC_SUBST(NTLM_OBJ) dnl dnl Find an MD5 implementation. Since Wget rarely needs MD5, we try @@ -305,7 +300,7 @@ then dnl This should be moved to an AC_DEFUN, but I'm not sure how to dnl manipulate MD5_OBJ from the defun. - MD5_OBJ='gen-md5.o' + AC_LIBOBJ([gen-md5]) found_md5=no dnl Check for the system MD5 library on Solaris. We don't check for @@ -342,14 +337,13 @@ then dnl If none of the above worked, use the one we ship with Wget. if test x"$found_md5" = xno; then AC_DEFINE([HAVE_BUILTIN_MD5], 1, [Define when using built-in MD5.]) - MD5_OBJ="$MD5_OBJ gnu-md5.o" + AC_LIBOBJ([gnu-md5]) found_md5=yes AC_MSG_NOTICE([using the built-in (GNU) MD5 implementation]) AC_C_BIGENDIAN fi fi AC_DEFINE([HAVE_MD5], 1, [Define if we're compiling support for MD5.]) -AC_SUBST(MD5_OBJ) dnl ********************************************************************** dnl Checks for IPv6 @@ -435,10 +429,7 @@ dnl ALL_LINGUAS="cs de hr it ..." dnl The downside was that configure needed to be rebuilt whenever a dnl new language was added. dnl -ALL_LINGUAS=`(cd ${srcdir}/po && ls *.po | sed -e 's/\.po$//' | tr '\012' ' ')` - -dnl internationalization macros -WGET_WITH_NLS +ALL_LINGUAS="en@quot en@boldquot $(cd ${srcdir}/po && ls *.po | sed -e 's/\.po$//' | tr '\012' ' ')" dnl dnl Find makeinfo. We used to provide support for Emacs processing @@ -474,6 +465,4 @@ AC_CONFIG_HEADERS([src/config.h]) AH_BOTTOM([ #include "config-post.h" ]) -AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h]) -AC_CONFIG_COMMANDS([default], [WGET_PROCESS_PO]) AC_OUTPUT diff --git a/depcomp b/depcomp new file mode 100755 index 00000000..ca5ea4e1 --- /dev/null +++ b/depcomp @@ -0,0 +1,584 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2006-10-15.18 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, 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. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + outname="$stripped.o" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# 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: diff --git a/doc/ChangeLog b/doc/ChangeLog index 783eb880..0989f76e 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,12 @@ +2007-10-08 Micah Cowan + + * wget.texi: Credit to Ralf Wildenhues for automakifying patches. + +2007-10-05 Ralf Wildenhues + + * Makefile.in: Removed, replaced by Makefile.am. + * Makefile.am: Converted from Makefile.in. + 2007-10-03 Micah Cowan * wget.texi : Cleaned up alphabetization, diff --git a/doc/Makefile.in b/doc/Makefile.am similarity index 60% rename from doc/Makefile.in rename to doc/Makefile.am index 8330e939..75d23b2f 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.am @@ -18,33 +18,12 @@ # Version: @VERSION@ # -SHELL = /bin/sh - -# Program to format Texinfo source into Info files. -MAKEINFO = @MAKEINFO@ -# Program to format Texinfo source into DVI files. -TEXI2DVI = texi2dvi # Program to convert DVI files to PostScript DVIPS = dvips -D 300 # Program to convert texinfo files to html TEXI2HTML = texi2html -expandinfo -split_chapter -top_builddir = .. - -top_srcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -infodir = @infodir@ -mandir = @mandir@ manext = 1 -sysconfdir = @sysconfdir@ - -DESTDIR = - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ RM = rm -f TEXI2POD = $(srcdir)/texi2pod.pl @@ -57,6 +36,8 @@ SAMPLERCTEXI = sample.wgetrc.munged_for_texi_inclusion # Dependencies for building # +man_MANS = $(MAN) + all: wget.info @COMMENT_IF_NO_POD2MAN@$(MAN) everything: all wget_us.ps wget_a4.ps wget_toc.html @@ -64,8 +45,11 @@ everything: all wget_us.ps wget_a4.ps wget_toc.html $(SAMPLERCTEXI): $(srcdir)/sample.wgetrc sed s/@/@@/g $? > $@ -wget.info: $(srcdir)/wget.texi $(SAMPLERCTEXI) $(srcdir)/version.texi - $(MAKEINFO) -I$(srcdir) $(srcdir)/wget.texi +info_TEXINFOS = wget.texi +wget_TEXINFOS = fdl.texi sample.wgetrc.munged_for_texi_inclusion + +EXTRA_DIST = README.maint sample.wgetrc $(SAMPLERCTEXI) \ + texi2pod.pl wget.pod: $(srcdir)/wget.texi $(srcdir)/version.texi $(TEXI2POD) $(srcdir)/wget.texi $@ @@ -76,11 +60,6 @@ $(MAN): wget.pod #wget.cat: $(MAN) # nroff -man $? > $@ -dvi: wget.dvi - -wget.dvi: $(srcdir)/wget.texi - $(TEXI2DVI) $(srcdir)/wget.texi - wget_us.ps: wget.dvi $(DVIPS) -t letter -o $@ wget.dvi @@ -95,29 +74,11 @@ wget_toc.html: $(srcdir)/wget.texi # # install all the documentation -install: install.info install.wgetrc @COMMENT_IF_NO_POD2MAN@install.man +install-data-local: install.wgetrc @COMMENT_IF_NO_POD2MAN@install.man # uninstall all the documentation -uninstall: uninstall.info @COMMENT_IF_NO_POD2MAN@uninstall.man +uninstall-local: @COMMENT_IF_NO_POD2MAN@uninstall.man -# install info pages, creating install directory if necessary -# if the info pages are built in the build directory, they are used. -# otherwise, the ones from the distribution are installed. -install.info: wget.info - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(infodir) - -if test -f wget.info; then \ - for file in wget.info wget.info-*[0-9]; do \ - if test -f "$$file"; then \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(infodir)/$$file" ; \ - fi; \ - done; \ - else \ - for file in $(srcdir)/wget.info $(srcdir)/wget.info-*[0-9]; do \ - if test -f "$$file"; then \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(infodir)/`basename $$file`" ; \ - fi; \ - done; \ - fi # install man page, creating install directory if necessary install.man: $(MAN) @@ -143,10 +104,6 @@ install.wgetrc: $(srcdir)/sample.wgetrc $(INSTALL_DATA) $(srcdir)/sample.wgetrc $(DESTDIR)$(WGETRC); \ fi -# uninstall info pages -uninstall.info: - $(RM) $(DESTDIR)$(infodir)/wget.info* - # uninstall man page uninstall.man: $(RM) $(DESTDIR)$(mandir)/man$(manext)/$(MAN) @@ -155,23 +112,5 @@ uninstall.man: # Dependencies for cleanup # -clean: - $(RM) *~ *.bak *.cat *.pod *.html - $(RM) *.dvi *.aux *.cp *.cps *.fn *.toc *.tp *.vr *.ps *.ky *.pg *.log - -distclean: clean - $(RM) Makefile - $(RM) $(MAN) - -realclean: distclean - $(RM) wget.info* - $(RM) $(SAMPLERCTEXI) - -# -# Dependencies for maintenance -# - -subdir = doc - -Makefile: Makefile.in ../config.status - cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status +CLEANFILES = *~ *.bak *.cat *.pod +DISTCLEANFILES = $(MAN) diff --git a/doc/version.texi b/doc/version.texi deleted file mode 100644 index 2f580751..00000000 --- a/doc/version.texi +++ /dev/null @@ -1 +0,0 @@ -@set VERSION 1.10 diff --git a/doc/wget.texi b/doc/wget.texi index a8ca8406..0f66f17b 100644 --- a/doc/wget.texi +++ b/doc/wget.texi @@ -3674,6 +3674,10 @@ Christopher G.@: Lewis---Maintenance of the Windows version of GNU WGet. Gisle Vanem---Many helpful patches and improvements, especially for Windows and MS-DOS support. +@item +Ralf Wildenhues---Contributed patches to convert Wget to use Automake as +part of its build process, and various bugfixes. + @item People who provided donations for development---including Brian Gough. @end itemize diff --git a/install-sh b/install-sh index 36f96f3e..4fbbae7b 100755 --- a/install-sh +++ b/install-sh @@ -1,36 +1,62 @@ #!/bin/sh -# # install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). + +scriptversion=2006-10-14.15 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. # -# Copyright 1991 by the Massachusetts Institute of Technology +# Copyright (C) 1994 X Consortium # -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. +# from scratch. +nl=' +' +IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi - -# put in absolute paths if you don't have them in your path; or use env. vars. +# Put in absolute file names if you don't have them in your path; +# or use environment vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" @@ -41,236 +67,441 @@ stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" +posix_glob= +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chmodcmd=$chmodprog +chowncmd= +chgrpcmd= +stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" -src="" -dst="" -dir_arg="" +src= +dst= +dir_arg= +dstarg= +no_target_directory= -while [ x"$1" != x ]; do - case $1 in - -c) instcmd=$cpprog - shift - continue;; +usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... - -d) dir_arg=true - shift - continue;; +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; +Options: +-c (ignored) +-d create directories instead of installing files. +-g GROUP $chgrpprog installed files to GROUP. +-m MODE $chmodprog installed files to MODE. +-o USER $chownprog installed files to USER. +-s $stripprog installed files. +-t DIRECTORY install into DIRECTORY. +-T report an error if DSTFILE is a directory. +--help display this help and exit. +--version display version info and exit. - -o) chowncmd="$chownprog $2" - shift - shift - continue;; +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; +while test $# -ne 0; do + case $1 in + -c) shift + continue;; - -s) stripcmd=$stripprog - shift - continue;; + -d) dir_arg=true + shift + continue;; - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; + --help) echo "$usage"; exit $?;; - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done + -m) mode=$2 + shift + shift + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + continue;; -if [ x"$src" = x ] -then - echo "$0: no input file specified" >&2 - exit 1 -else - : -fi + -o) chowncmd="$chownprog $2" + shift + shift + continue;; -if [ x"$dir_arg" != x ]; then - dst=$src - src="" + -s) stripcmd=$stripprog + shift + continue;; - if [ -d "$dst" ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$src" ] || [ -d "$src" ] - then - : - else - echo "$0: $src does not exist" >&2 - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "$0: no destination specified" >&2 - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d "$dst" ] - then - dst=$dst/`basename "$src"` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-$defaultIFS}" - -oIFS=$IFS -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS=$oIFS - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp=$pathcomp$1 + -t) dstarg=$2 shift + shift + continue;; - if [ ! -d "$pathcomp" ] ; - then - $mkdirprog "$pathcomp" - else - : - fi + -T) no_target_directory=true + shift + continue;; - pathcomp=$pathcomp/ + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac done + +if test $# -ne 0 && test -z "$dir_arg$dstarg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done fi -if [ x"$dir_arg" != x ] -then - $doit $instcmd "$dst" && +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi -else +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 -# If we're going to rename the final executable, determine the name now. + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; - if [ x"$transformarg" = x ] - then - dstfile=`basename "$dst"` + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src ;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dstarg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dstarg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dstarg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode else - dstfile=`basename "$dst" $transformbasename | - sed $transformarg`$transformbasename + mkdir_mode= fi -# don't allow the sed command to completely eliminate the filename + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - if [ x"$dstfile" = x ] - then - dstfile=`basename "$dst"` + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix=/ ;; + -*) prefix=./ ;; + *) prefix= ;; + esac + + case $posix_glob in + '') + if (set -f) 2>/dev/null; then + posix_glob=true + else + posix_glob=false + fi ;; + esac + + oIFS=$IFS + IFS=/ + $posix_glob && set -f + set fnord $dstdir + shift + $posix_glob && set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= else - : + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi fi + prefix=$prefix/ + done -# Make a couple of temp file names in the proper directory. + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi - dsttmp=$dstdir/#inst.$$# - rmtmp=$dstdir/#rm.$$# + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else -# Trap to clean up temp files at exit. + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ - trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 - trap '(exit $?); exit' 1 2 13 15 + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 -# Move or copy the file name to the temp name + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - $doit $instcmd "$src" "$dsttmp" && + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && -# and set any options; do chmod last to preserve setuid bits + # Now rename the file to the real destination. + { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + if test -f "$dst"; then + $doit $rmcmd -f "$dst" 2>/dev/null \ + || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ + && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ + || { + echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + else + : + fi + } && - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + } || exit 1 -# Now remove or move aside any old file at destination location. We try this -# two ways since rm can't unlink itself on some systems and the destination -# file might be busy for other reasons. In this case, the final cleanup -# might fail but the new file should still install successfully. + trap '' 0 + fi +done -{ - if [ -f "$dstdir/$dstfile" ] - then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || - $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || - { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 - (exit 1); exit - } - else - : - fi -} && - -# Now rename the file to the real destination. - - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" - -fi && - -# The final little trick to "correctly" pass the exit status to the exit trap. - -{ - (exit 0); exit -} +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/m4/gettext.m4 b/m4/gettext.m4 new file mode 100644 index 00000000..91c345e9 --- /dev/null +++ b/m4/gettext.m4 @@ -0,0 +1,419 @@ +# gettext.m4 serial 59 (gettext-0.16.1) +dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +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 , 1995-2000. +dnl Bruno Haible , 2000-2006. + +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 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], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + 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 { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "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 Sometimes, on MacOS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + 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. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#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 +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_TRY_LINK([#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "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_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 +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_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 { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "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 $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + 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 -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + 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 { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "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 { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "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. + INTLOBJS= + 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 special options needed on MacOS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in MacOS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + gt_cv_func_CFPreferencesCopyAppValue, + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include ], + [CFPreferencesCopyAppValue(NULL, NULL)], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, + [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in MacOS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, + [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/m4/iconv.m4 b/m4/iconv.m4 new file mode 100644 index 00000000..654c4158 --- /dev/null +++ b/m4/iconv.m4 @@ -0,0 +1,101 @@ +# iconv.m4 serial AM4 (gettext-0.11.3) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +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 +#include ], + [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 +#include ], + [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 +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi +]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 index 8d995251..96c4e2c3 100644 --- a/m4/lib-ld.m4 +++ b/m4/lib-ld.m4 @@ -1,6 +1,5 @@ # lib-ld.m4 serial 3 (gettext-0.13) -dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -dnl 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/lib-link.m4 b/m4/lib-link.m4 index d4450fce..f95b7ba8 100644 --- a/m4/lib-link.m4 +++ b/m4/lib-link.m4 @@ -1,6 +1,5 @@ -# lib-link.m4 serial 6 (gettext-0.14.3) -dnl Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software -dnl Foundation, Inc. +# lib-link.m4 serial 9 (gettext-0.16) +dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -127,6 +126,7 @@ 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], [ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. @@ -149,7 +149,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], ]) else additional_includedir="$withval/include" - additional_libdir="$withval/lib" + additional_libdir="$withval/$acl_libdirstem" fi fi ]) @@ -198,9 +198,16 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], found_so= found_a= if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + if test -n "$shlibext" \ + && { test -f "$additional_libdir/lib$name.$shlibext" \ + || { test "$shlibext" = dll \ + && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.$shlibext"; then + found_so="$additional_libdir/lib$name.$shlibext" + else + found_so="$additional_libdir/lib$name.dll.a" + fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi @@ -220,9 +227,16 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + if test -n "$shlibext" \ + && { test -f "$dir/lib$name.$shlibext" \ + || { test "$shlibext" = dll \ + && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" - found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.$shlibext"; then + found_so="$dir/lib$name.$shlibext" + else + found_so="$dir/lib$name.dll.a" + fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi @@ -249,7 +263,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], 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 + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else @@ -335,8 +349,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], 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/*$,,'` + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac @@ -397,9 +411,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], 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 + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; @@ -552,3 +566,79 @@ AC_DEFUN([AC_LIB_APPENDTOVAR], fi done ]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 index a3d482d3..a8684e17 100644 --- a/m4/lib-prefix.m4 +++ b/m4/lib-prefix.m4 @@ -1,6 +1,5 @@ -# lib-prefix.m4 serial 4 (gettext-0.14.2) -dnl Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software -dnl Foundation, Inc. +# lib-prefix.m4 serial 5 (gettext-0.15) +dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -25,6 +24,7 @@ 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_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes @@ -46,7 +46,7 @@ AC_DEFUN([AC_LIB_PREFIX], ]) else additional_includedir="$withval/include" - additional_libdir="$withval/lib" + additional_libdir="$withval/$acl_libdirstem" fi fi ]) @@ -88,7 +88,7 @@ AC_DEFUN([AC_LIB_PREFIX], 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 + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) @@ -98,7 +98,7 @@ AC_DEFUN([AC_LIB_PREFIX], fi done if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/lib"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; @@ -152,3 +152,34 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) + +dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing +dnl the basename of the libdir, either "lib" or "lib64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. The current + dnl practice is that on a system supporting 32-bit and 64-bit instruction + dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit + dnl libraries go under $prefix/lib. We determine the compiler's default + dnl mode by looking at the compiler's library search path. If at least + dnl of its elements ends in /lib64 or points to a directory whose absolute + dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the + dnl default, namely "lib". + acl_libdirstem=lib + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi +]) diff --git a/m4/nls.m4 b/m4/nls.m4 new file mode 100644 index 00000000..7967cc2f --- /dev/null +++ b/m4/nls.m4 @@ -0,0 +1,31 @@ +# nls.m4 serial 3 (gettext-0.15) +dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +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 , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ(2.50) + +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) +]) diff --git a/m4/po.m4 b/m4/po.m4 new file mode 100644 index 00000000..00133ef3 --- /dev/null +++ b/m4/po.m4 @@ -0,0 +1,428 @@ +# po.m4 serial 13 (gettext-0.15) +dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +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 , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ(2.50) + +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_PROG_MKDIR_P])dnl defined by automake + 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 >&]AS_MESSAGE_LOG_FD[ 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 Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + 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 >&]AS_MESSAGE_LOG_FD[ 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 Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + 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 >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + AC_CONFIG_COMMANDS([po-directories], [[ + 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 + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + 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" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + 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 < 1.5. + 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 < "$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" < /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' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. + +AC_PREREQ(2.50) + +# 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 + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) diff --git a/m4/wget.m4 b/m4/wget.m4 index 736bd2eb..67cc2942 100644 --- a/m4/wget.m4 +++ b/m4/wget.m4 @@ -226,145 +226,6 @@ dnl ************************************************************ dnl END OF IPv6 AUTOCONFIGURATION SUPPORT MACROS dnl ************************************************************ -# This code originates from Ulrich Drepper's AM_WITH_NLS. - -AC_DEFUN([WGET_WITH_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], - HAVE_NLS=$enableval, HAVE_NLS=yes) - AC_MSG_RESULT($HAVE_NLS) - - dnl If something goes wrong, we may still decide not to use NLS. - dnl For this reason, defer AC_SUBST'ing HAVE_NLS until the very - dnl last moment. - - if test x"$HAVE_NLS" = xyes; then - dnl If LINGUAS is specified, use only those languages. In fact, - dnl compute an intersection of languages in LINGUAS and - dnl ALL_LINGUAS, and use that. - if test x"$LINGUAS" != x; then - new_linguas= - for lang1 in $ALL_LINGUAS; do - for lang2 in $LINGUAS; do - if test "$lang1" = "$lang2"; then - new_linguas="$new_linguas $lang1" - fi - done - done - ALL_LINGUAS=$new_linguas - fi - AC_MSG_NOTICE([language catalogs: $ALL_LINGUAS]) - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_SUBST(MSGFMT) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - CATOBJEXT=.gmo - INSTOBJEXT=.mo - DATADIRNAME=share - - 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 /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext programs is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - fi - - AC_CHECK_HEADERS(libintl.h) - - dnl Prefer gettext found in -lintl to the one in libc. - dnl Otherwise it can happen that we include libintl.h from - dnl /usr/local/lib, but fail to specify -lintl, which results in - dnl link or run-time failures. (Symptom: libintl_bindtextdomain - dnl not found at link-time.) - - AC_CHECK_LIB(intl, gettext, [ - dnl gettext is in libintl; announce the fact manually. - LIBS="-lintl $LIBS" - AC_DEFINE([HAVE_GETTEXT], 1, - [Define if you have the gettext function.]) - ], [ - AC_CHECK_FUNCS(gettext, [], [ - AC_MSG_RESULT([gettext not found; disabling NLS]) - HAVE_NLS=no - ]) - ]) - - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - dnl Construct list of names of catalog files to be constructed. - for lang in $ALL_LINGUAS; do - CATALOGS="$CATALOGS ${lang}${CATOBJEXT}" - done - - dnl Make all variables we use known to autoconf. - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(DATADIRNAME) - AC_SUBST(GMOFILES) - AC_SUBST(INSTOBJEXT) - AC_SUBST(INTLLIBS) - AC_SUBST(POFILES) - fi - AC_SUBST(HAVE_NLS) - dnl Some independently maintained files, such as po/Makefile.in, - dnl use `USE_NLS', so support it. - USE_NLS=$HAVE_NLS - AC_SUBST(USE_NLS) - if test "x$HAVE_NLS" = xyes; then - AC_DEFINE([HAVE_NLS], 1, [Define this if you want the NLS support.]) - fi - ]) - -dnl Generate list of files to be processed by xgettext which will -dnl be included in po/Makefile. -dnl -dnl This is not strictly an Autoconf macro, because it is run from -dnl within `config.status' rather than from within configure. This -dnl is why special rules must be applied for it. -AC_DEFUN([WGET_PROCESS_PO], - [ - dnl I wonder what the following several lines do... - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" - else - posrcprefix="../$srcdir/" - fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - dnl Use `echo' rather than AC_MSG_RESULT, because this is run from - dnl `config.status'. - echo "generating po/POTFILES from $srcdir/po/POTFILES.in" - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," \ - -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES - echo "creating po/Makefile" - sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - ]) - -# Search path for a program which passes the given test. -# Ulrich Drepper , 1996. -# -# This file may be copied and used freely without restrictions. It -# can be used in projects which are not available under the GNU Public -# License but which still want to provide support for the GNU gettext -# functionality. Please note that the actual code is *not* freely -# available. - 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], diff --git a/mdate-sh b/mdate-sh new file mode 100755 index 00000000..cd916c0a --- /dev/null +++ b/mdate-sh @@ -0,0 +1,201 @@ +#!/bin/sh +# Get modification time of a file or directory and pretty-print it. + +scriptversion=2005-06-29.22 + +# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005 Free Software +# Foundation, Inc. +# written by Ulrich Drepper , June 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No file. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: mdate-sh [--help] [--version] FILE + +Pretty-print the modification time of FILE. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "mdate-sh $scriptversion" + exit $? + ;; +esac + +# Prevent date giving response in another language. +LANG=C +export LANG +LC_ALL=C +export LC_ALL +LC_TIME=C +export LC_TIME + +# GNU ls changes its time format in response to the TIME_STYLE +# variable. Since we cannot assume `unset' works, revert this +# variable to its documented default. +if test "${TIME_STYLE+set}" = set; then + TIME_STYLE=posix-long-iso + export TIME_STYLE +fi + +save_arg1=$1 + +# Find out how to get the extended ls output of a file or directory. +if ls -L /dev/null 1>/dev/null 2>&1; then + ls_command='ls -L -l -d' +else + ls_command='ls -l -d' +fi + +# A `ls -l' line looks as follows on OS/2. +# drwxrwx--- 0 Aug 11 2001 foo +# This differs from Unix, which adds ownership information. +# drwxrwx--- 2 root root 4096 Aug 11 2001 foo +# +# To find the date, we split the line on spaces and iterate on words +# until we find a month. This cannot work with files whose owner is a +# user named `Jan', or `Feb', etc. However, it's unlikely that `/' +# will be owned by a user whose name is a month. So we first look at +# the extended ls output of the root directory to decide how many +# words should be skipped to get the date. + +# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. +set x`ls -l -d /` + +# Find which argument is the month. +month= +command= +until test $month +do + shift + # Add another shift to the command. + command="$command shift;" + case $1 in + Jan) month=January; nummonth=1;; + Feb) month=February; nummonth=2;; + Mar) month=March; nummonth=3;; + Apr) month=April; nummonth=4;; + May) month=May; nummonth=5;; + Jun) month=June; nummonth=6;; + Jul) month=July; nummonth=7;; + Aug) month=August; nummonth=8;; + Sep) month=September; nummonth=9;; + Oct) month=October; nummonth=10;; + Nov) month=November; nummonth=11;; + Dec) month=December; nummonth=12;; + esac +done + +# Get the extended ls output of the file or directory. +set dummy x`eval "$ls_command \"\$save_arg1\""` + +# Remove all preceding arguments +eval $command + +# Because of the dummy argument above, month is in $2. +# +# On a POSIX system, we should have +# +# $# = 5 +# $1 = file size +# $2 = month +# $3 = day +# $4 = year or time +# $5 = filename +# +# On Darwin 7.7.0 and 7.6.0, we have +# +# $# = 4 +# $1 = day +# $2 = month +# $3 = year or time +# $4 = filename + +# Get the month. +case $2 in + Jan) month=January; nummonth=1;; + Feb) month=February; nummonth=2;; + Mar) month=March; nummonth=3;; + Apr) month=April; nummonth=4;; + May) month=May; nummonth=5;; + Jun) month=June; nummonth=6;; + Jul) month=July; nummonth=7;; + Aug) month=August; nummonth=8;; + Sep) month=September; nummonth=9;; + Oct) month=October; nummonth=10;; + Nov) month=November; nummonth=11;; + Dec) month=December; nummonth=12;; +esac + +case $3 in + ???*) day=$1;; + *) day=$3; shift;; +esac + +# Here we have to deal with the problem that the ls output gives either +# the time of day or the year. +case $3 in + *:*) set `date`; eval year=\$$# + case $2 in + Jan) nummonthtod=1;; + Feb) nummonthtod=2;; + Mar) nummonthtod=3;; + Apr) nummonthtod=4;; + May) nummonthtod=5;; + Jun) nummonthtod=6;; + Jul) nummonthtod=7;; + Aug) nummonthtod=8;; + Sep) nummonthtod=9;; + Oct) nummonthtod=10;; + Nov) nummonthtod=11;; + Dec) nummonthtod=12;; + esac + # For the first six month of the year the time notation can also + # be used for files modified in the last year. + if (expr $nummonth \> $nummonthtod) > /dev/null; + then + year=`expr $year - 1` + fi;; + *) year=$3;; +esac + +# The result. +echo $day $month $year + +# 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: diff --git a/missing b/missing new file mode 100755 index 00000000..1c8ff704 --- /dev/null +++ b/missing @@ -0,0 +1,367 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2006-05-10.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, 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. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $1 in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/po/Makefile.in.in b/po/Makefile.in.in index f7966217..e6da10aa 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -1,77 +1,98 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper # -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.16 PACKAGE = @PACKAGE@ VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ -top_builddir = .. - srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ -datadir = $(prefix)/@DATADIRNAME@ -localedir = $(datadir)/locale -gnulocaledir = $(prefix)/share/locale -gettextsrcdir = $(prefix)/share/gettext/po -subdir = po - -DESTDIR = +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ -CC = @CC@ -GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ -MSGMERGE = PATH=../src:$$PATH msgmerge +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I.. -I$(top_srcdir)/intl - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ -DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ -$(POFILES) $(GMOFILES) $(SOURCES) +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -INSTOBJEXT = @INSTOBJEXT@ + +# Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo .msg - -.c.o: - $(COMPILE) $< - -.po.pox: - $(MAKE) $(PACKAGE).pot - $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: - $(MSGFMT) -o $@ $< + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: - file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ all: all-@USE_NLS@ @@ -79,141 +100,303 @@ all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: -$(srcdir)/$(PACKAGE).pot: $(POTFILES) - $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ - --add-comments --keyword=_ --keyword=N_ \ - --files-from=$(srcdir)/POTFILES.in - rm -f $(srcdir)/$(PACKAGE).pot - mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +#$(POFILES): $(srcdir)/$(DOMAIN).pot +# @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ +# if test -f "$(srcdir)/$${lang}.po"; then \ +# test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ +# echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ +# cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ +# else \ +# $(MAKE) $${lang}.po-create; \ +# fi + -install.mo: install install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - case "$$cat" in \ - *.gmo) destdir=$(DESTDIR)$(gnulocaledir);; \ - *) destdir=$(DESTDIR)$(localedir);; \ - esac; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - dir=$$destdir/$$lang/LC_MESSAGES; \ - $(top_srcdir)/mkinstalldirs $$dir; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ - echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ - fi; \ - if test -r $$cat.m; then \ - $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ - else \ - if test -r $(srcdir)/$$cat.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$cat.m \ - $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ - else \ - true; \ - fi; \ - fi; \ - done - if test "$(PACKAGE)" = "gettext"; then \ - $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ - $(gettextsrcdir)/Makefile.in.in; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ else \ : ; \ fi +install-data-no: all +install-data-yes: all + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done # Define this as empty until I found a useful application. installcheck: -uninstall: +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ - rm -f $$dir/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - dir=$(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES; \ - rm -f $$dir/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ done - rm -f $(gettextsrcdir)/po-Makefile.in.in check: all -cat-id-tbl.o: ../intl/libgettext.h - -dvi info tags TAGS ID: +info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: - rm -f core core.* *.pox $(PACKAGE).po *.old.po + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo *.gmo *.msg + rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean - @echo "!! This command is intended for maintainers to use;" - @echo "!! it deletes files that may require special tools to rebuild." - rm -f $(GMOFILES) + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) -realclean: maintainer-clean - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: update-po $(DISTFILES) +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ - ln $(srcdir)/$$file $(distdir) 2> /dev/null \ - || cp -p $(srcdir)/$$file $(distdir); \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ done update-po: Makefile - $(MAKE) $(PACKAGE).pot - PATH=`pwd`/../src:$$PATH; \ + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - mv $$lang.po $$lang.old.po; \ - echo "$$lang:"; \ - if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ - rm -f $$lang.old.po; \ + if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ else \ - echo "msgmerge for $$cat failed!"; \ - rm -f $$lang.po; \ - mv $$lang.old.po $$lang.po; \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ fi; \ - done + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi -POTFILES: POTFILES.in - ( if test 'x$(srcdir)' != 'x.'; then \ - posrcprefix='$(top_srcdir)/'; \ - else \ - posrcprefix="../"; \ - fi; \ - rm -f $@-t $@ \ - && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ - -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ - | sed -e '$$s/\\$$//') > $@-t \ - && chmod a-w $@-t \ - && mv $@-t $@ ) +$(DUMMYPOFILES): -Makefile: Makefile.in.in ../config.status POTFILES - cd .. \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ - $(SHELL) ./config.status +update-gmo: Makefile $(GMOFILES) + @: + +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && $(SHELL) ./config.status $(subdir)/$@.in po-directories + +force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 00000000..55f8d041 --- /dev/null +++ b/po/Makevars @@ -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 = wget@sunsite.dk + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = diff --git a/po/Rules-quot b/po/Rules-quot new file mode 100644 index 00000000..9c2a995e --- /dev/null +++ b/po/Rules-quot @@ -0,0 +1,47 @@ +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/po/boldquot.sed b/po/boldquot.sed new file mode 100644 index 00000000..4b937aa5 --- /dev/null +++ b/po/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“/g +s/”/”/g +s/‘/‘/g +s/’/’/g diff --git a/po/en@boldquot.header b/po/en@boldquot.header new file mode 100644 index 00000000..fedb6a06 --- /dev/null +++ b/po/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/po/en@boldquot.po b/po/en@boldquot.po new file mode 100644 index 00000000..153b077b --- /dev/null +++ b/po/en@boldquot.po @@ -0,0 +1,1829 @@ +# English translations for GNU wget package. +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the GNU wget package. +# Automatically generated, 2007. +# +# 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. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU wget 1.10+devel\n" +"Report-Msgid-Bugs-To: wget@sunsite.dk\n" +"POT-Creation-Date: 2007-10-09 19:10-0700\n" +"PO-Revision-Date: 2007-10-09 19:10-0700\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/connect.c:196 +#, c-format +msgid "%s: unable to resolve bind address `%s'; disabling bind.\n" +msgstr "%s: unable to resolve bind address ‘%s’; disabling bind.\n" + +#: src/connect.c:268 +#, c-format +msgid "Connecting to %s|%s|:%d... " +msgstr "Connecting to %s|%s|:%d... " + +#: src/connect.c:271 +#, c-format +msgid "Connecting to %s:%d... " +msgstr "Connecting to %s:%d... " + +#: src/connect.c:331 +msgid "connected.\n" +msgstr "connected.\n" + +#: src/connect.c:343 src/host.c:753 src/host.c:782 +#, c-format +msgid "failed: %s.\n" +msgstr "failed: %s.\n" + +#: src/connect.c:367 src/http.c:1629 +#, c-format +msgid "%s: unable to resolve host address `%s'\n" +msgstr "%s: unable to resolve host address ‘%s’\n" + +#: src/convert.c:171 +#, c-format +msgid "Converted %d files in %s seconds.\n" +msgstr "Converted %d files in %s seconds.\n" + +#: src/convert.c:196 +#, c-format +msgid "Converting %s... " +msgstr "Converting %s... " + +#: src/convert.c:209 +msgid "nothing to do.\n" +msgstr "nothing to do.\n" + +#: src/convert.c:217 src/convert.c:241 +#, c-format +msgid "Cannot convert links in %s: %s\n" +msgstr "Cannot convert links in %s: %s\n" + +#: src/convert.c:232 +#, c-format +msgid "Unable to delete `%s': %s\n" +msgstr "Unable to delete ‘%s’: %s\n" + +#: src/convert.c:441 +#, c-format +msgid "Cannot back up %s as %s: %s\n" +msgstr "Cannot back up %s as %s: %s\n" + +#: src/cookies.c:444 +#, c-format +msgid "Syntax error in Set-Cookie: %s at position %d.\n" +msgstr "Syntax error in Set-Cookie: %s at position %d.\n" + +#: src/cookies.c:686 +#, c-format +msgid "Cookie coming from %s attempted to set domain to %s\n" +msgstr "Cookie coming from %s attempted to set domain to %s\n" + +#: src/cookies.c:1133 src/cookies.c:1251 +#, c-format +msgid "Cannot open cookies file `%s': %s\n" +msgstr "Cannot open cookies file ‘%s’: %s\n" + +#: src/cookies.c:1288 +#, c-format +msgid "Error writing to `%s': %s\n" +msgstr "Error writing to ‘%s’: %s\n" + +#: src/cookies.c:1291 +#, c-format +msgid "Error closing `%s': %s\n" +msgstr "Error closing ‘%s’: %s\n" + +#: src/ftp-ls.c:837 +msgid "Unsupported listing type, trying Unix listing parser.\n" +msgstr "Unsupported listing type, trying Unix listing parser.\n" + +#: src/ftp-ls.c:883 src/ftp-ls.c:885 +#, c-format +msgid "Index of /%s on %s:%d" +msgstr "Index of /%s on %s:%d" + +#: src/ftp-ls.c:908 +#, c-format +msgid "time unknown " +msgstr "time unknown " + +#: src/ftp-ls.c:912 +#, c-format +msgid "File " +msgstr "File " + +#: src/ftp-ls.c:915 +#, c-format +msgid "Directory " +msgstr "Directory " + +#: src/ftp-ls.c:918 +#, c-format +msgid "Link " +msgstr "Link " + +#: src/ftp-ls.c:921 +#, c-format +msgid "Not sure " +msgstr "Not sure " + +#: src/ftp-ls.c:939 +#, c-format +msgid " (%s bytes)" +msgstr " (%s bytes)" + +#: src/ftp.c:214 +#, c-format +msgid "Length: %s" +msgstr "Length: %s" + +#: src/ftp.c:220 src/http.c:2174 +#, c-format +msgid ", %s (%s) remaining" +msgstr ", %s (%s) remaining" + +#: src/ftp.c:224 src/http.c:2178 +#, c-format +msgid ", %s remaining" +msgstr ", %s remaining" + +#: src/ftp.c:227 +msgid " (unauthoritative)\n" +msgstr " (unauthoritative)\n" + +#: src/ftp.c:303 +#, c-format +msgid "Logging in as %s ... " +msgstr "Logging in as %s ... " + +#: src/ftp.c:316 src/ftp.c:362 src/ftp.c:391 src/ftp.c:443 src/ftp.c:555 +#: src/ftp.c:601 src/ftp.c:630 src/ftp.c:687 src/ftp.c:748 src/ftp.c:808 +#: src/ftp.c:855 +msgid "Error in server response, closing control connection.\n" +msgstr "Error in server response, closing control connection.\n" + +#: src/ftp.c:323 +msgid "Error in server greeting.\n" +msgstr "Error in server greeting.\n" + +#: src/ftp.c:330 src/ftp.c:451 src/ftp.c:563 src/ftp.c:638 src/ftp.c:697 +#: src/ftp.c:758 src/ftp.c:818 src/ftp.c:865 +msgid "Write failed, closing control connection.\n" +msgstr "Write failed, closing control connection.\n" + +#: src/ftp.c:336 +msgid "The server refuses login.\n" +msgstr "The server refuses login.\n" + +#: src/ftp.c:342 +msgid "Login incorrect.\n" +msgstr "Login incorrect.\n" + +#: src/ftp.c:348 +msgid "Logged in!\n" +msgstr "Logged in!\n" + +#: src/ftp.c:370 +msgid "Server error, can't determine system type.\n" +msgstr "Server error, can't determine system type.\n" + +#: src/ftp.c:379 src/ftp.c:674 src/ftp.c:731 src/ftp.c:774 +msgid "done. " +msgstr "done. " + +#: src/ftp.c:431 src/ftp.c:580 src/ftp.c:613 src/ftp.c:838 src/ftp.c:884 +msgid "done.\n" +msgstr "done.\n" + +#: src/ftp.c:458 +#, c-format +msgid "Unknown type `%c', closing control connection.\n" +msgstr "Unknown type ‘%c’, closing control connection.\n" + +#: src/ftp.c:470 +msgid "done. " +msgstr "done. " + +#: src/ftp.c:476 +msgid "==> CWD not needed.\n" +msgstr "==> CWD not needed.\n" + +#: src/ftp.c:569 +#, c-format +msgid "" +"No such directory `%s'.\n" +"\n" +msgstr "" +"No such directory ‘%s’.\n" +"\n" + +#: src/ftp.c:584 +msgid "==> CWD not required.\n" +msgstr "==> CWD not required.\n" + +#: src/ftp.c:644 +msgid "Cannot initiate PASV transfer.\n" +msgstr "Cannot initiate PASV transfer.\n" + +#: src/ftp.c:648 +msgid "Cannot parse PASV response.\n" +msgstr "Cannot parse PASV response.\n" + +#: src/ftp.c:665 +#, c-format +msgid "couldn't connect to %s port %d: %s\n" +msgstr "couldn't connect to %s port %d: %s\n" + +#: src/ftp.c:713 +#, c-format +msgid "Bind error (%s).\n" +msgstr "Bind error (%s).\n" + +#: src/ftp.c:719 +msgid "Invalid PORT.\n" +msgstr "Invalid PORT.\n" + +#: src/ftp.c:765 +msgid "" +"\n" +"REST failed, starting from scratch.\n" +msgstr "" +"\n" +"REST failed, starting from scratch.\n" + +#: src/ftp.c:826 +#, c-format +msgid "" +"No such file `%s'.\n" +"\n" +msgstr "" +"No such file ‘%s’.\n" +"\n" + +#: src/ftp.c:873 +#, c-format +msgid "" +"No such file or directory `%s'.\n" +"\n" +msgstr "" +"No such file or directory ‘%s’.\n" +"\n" + +#: src/ftp.c:935 src/http.c:2236 +#, c-format +msgid "%s has sprung into existence.\n" +msgstr "%s has sprung into existence.\n" + +#: src/ftp.c:987 +#, c-format +msgid "%s: %s, closing control connection.\n" +msgstr "%s: %s, closing control connection.\n" + +#: src/ftp.c:996 +#, c-format +msgid "%s (%s) - Data connection: %s; " +msgstr "%s (%s) - Data connection: %s; " + +#: src/ftp.c:1011 +msgid "Control connection closed.\n" +msgstr "Control connection closed.\n" + +#: src/ftp.c:1029 +msgid "Data transfer aborted.\n" +msgstr "Data transfer aborted.\n" + +#: src/ftp.c:1097 +#, c-format +msgid "File `%s' already there; not retrieving.\n" +msgstr "File ‘%s’ already there; not retrieving.\n" + +#: src/ftp.c:1165 src/http.c:2394 +#, c-format +msgid "(try:%2d)" +msgstr "(try:%2d)" + +#: src/ftp.c:1235 src/http.c:2717 +#, c-format +msgid "" +"%s (%s) - `%s' saved [%s]\n" +"\n" +msgstr "" +"%s (%s) - ‘%s’ saved [%s]\n" +"\n" + +#: src/ftp.c:1277 src/main.c:1005 src/recur.c:378 src/retr.c:860 +#, c-format +msgid "Removing %s.\n" +msgstr "Removing %s.\n" + +#: src/ftp.c:1319 +#, c-format +msgid "Using `%s' as listing tmp file.\n" +msgstr "Using ‘%s’ as listing tmp file.\n" + +#: src/ftp.c:1334 +#, c-format +msgid "Removed `%s'.\n" +msgstr "Removed ‘%s’.\n" + +#: src/ftp.c:1367 +#, c-format +msgid "Recursion depth %d exceeded max. depth %d.\n" +msgstr "Recursion depth %d exceeded max. depth %d.\n" + +#: src/ftp.c:1437 +#, c-format +msgid "Remote file no newer than local file `%s' -- not retrieving.\n" +msgstr "Remote file no newer than local file ‘%s’ -- not retrieving.\n" + +#: src/ftp.c:1444 +#, c-format +msgid "" +"Remote file is newer than local file `%s' -- retrieving.\n" +"\n" +msgstr "" +"Remote file is newer than local file ‘%s’ -- retrieving.\n" +"\n" + +#: src/ftp.c:1451 +#, c-format +msgid "" +"The sizes do not match (local %s) -- retrieving.\n" +"\n" +msgstr "" +"The sizes do not match (local %s) -- retrieving.\n" +"\n" + +#: src/ftp.c:1469 +msgid "Invalid name of the symlink, skipping.\n" +msgstr "Invalid name of the symlink, skipping.\n" + +#: src/ftp.c:1486 +#, c-format +msgid "" +"Already have correct symlink %s -> %s\n" +"\n" +msgstr "" +"Already have correct symlink %s -> %s\n" +"\n" + +#: src/ftp.c:1494 +#, c-format +msgid "Creating symlink %s -> %s\n" +msgstr "Creating symlink %s -> %s\n" + +#: src/ftp.c:1504 +#, c-format +msgid "Symlinks not supported, skipping symlink `%s'.\n" +msgstr "Symlinks not supported, skipping symlink ‘%s’.\n" + +#: src/ftp.c:1516 +#, c-format +msgid "Skipping directory `%s'.\n" +msgstr "Skipping directory ‘%s’.\n" + +#: src/ftp.c:1525 +#, c-format +msgid "%s: unknown/unsupported file type.\n" +msgstr "%s: unknown/unsupported file type.\n" + +#: src/ftp.c:1552 +#, c-format +msgid "%s: corrupt time-stamp.\n" +msgstr "%s: corrupt time-stamp.\n" + +#: src/ftp.c:1580 +#, c-format +msgid "Will not retrieve dirs since depth is %d (max %d).\n" +msgstr "Will not retrieve dirs since depth is %d (max %d).\n" + +#: src/ftp.c:1630 +#, c-format +msgid "Not descending to `%s' as it is excluded/not-included.\n" +msgstr "Not descending to ‘%s’ as it is excluded/not-included.\n" + +#: src/ftp.c:1696 src/ftp.c:1710 +#, c-format +msgid "Rejecting `%s'.\n" +msgstr "Rejecting ‘%s’.\n" + +#: src/ftp.c:1758 +#, c-format +msgid "No matches on pattern `%s'.\n" +msgstr "No matches on pattern ‘%s’.\n" + +#: src/ftp.c:1824 +#, c-format +msgid "Wrote HTML-ized index to `%s' [%s].\n" +msgstr "Wrote HTML-ized index to ‘%s’ [%s].\n" + +#: src/ftp.c:1829 +#, c-format +msgid "Wrote HTML-ized index to `%s'.\n" +msgstr "Wrote HTML-ized index to ‘%s’.\n" + +#: src/getopt.c:670 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: src/getopt.c:695 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn't allow an argument\n" + +#: src/getopt.c:700 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn't allow an argument\n" + +#: src/getopt.c:718 src/getopt.c:891 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "%s: option ‘%s’ requires an argument\n" + +#: src/getopt.c:747 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: unrecognized option ‘--%s’\n" + +#: src/getopt.c:751 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: unrecognized option ‘%c%s’\n" + +#: src/getopt.c:777 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: illegal option -- %c\n" + +#: src/getopt.c:780 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "%s: invalid option -- %c\n" + +#: src/getopt.c:810 src/getopt.c:940 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: option requires an argument -- %c\n" + +#: src/getopt.c:857 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: src/getopt.c:875 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn't allow an argument\n" + +#: src/host.c:348 +msgid "Unknown host" +msgstr "Unknown host" + +#: src/host.c:352 +msgid "Temporary failure in name resolution" +msgstr "Temporary failure in name resolution" + +#: src/host.c:354 +msgid "Unknown error" +msgstr "Unknown error" + +#: src/host.c:715 +#, c-format +msgid "Resolving %s... " +msgstr "Resolving %s... " + +#: src/host.c:762 +msgid "failed: No IPv4/IPv6 addresses for host.\n" +msgstr "failed: No IPv4/IPv6 addresses for host.\n" + +#: src/host.c:785 +msgid "failed: timed out.\n" +msgstr "failed: timed out.\n" + +#: src/html-url.c:289 +#, c-format +msgid "%s: Cannot resolve incomplete link %s.\n" +msgstr "%s: Cannot resolve incomplete link %s.\n" + +#: src/html-url.c:696 +#, c-format +msgid "%s: Invalid URL %s: %s\n" +msgstr "%s: Invalid URL %s: %s\n" + +#: src/http.c:368 +#, c-format +msgid "Failed writing HTTP request: %s.\n" +msgstr "Failed writing HTTP request: %s.\n" + +#: src/http.c:737 +msgid "No headers, assuming HTTP/0.9" +msgstr "No headers, assuming HTTP/0.9" + +#: src/http.c:1414 +msgid "Disabling SSL due to encountered errors.\n" +msgstr "Disabling SSL due to encountered errors.\n" + +#: src/http.c:1567 +#, c-format +msgid "POST data file `%s' missing: %s\n" +msgstr "POST data file ‘%s’ missing: %s\n" + +#: src/http.c:1616 +#, c-format +msgid "Reusing existing connection to %s:%d.\n" +msgstr "Reusing existing connection to %s:%d.\n" + +#: src/http.c:1684 +#, c-format +msgid "Failed reading proxy response: %s\n" +msgstr "Failed reading proxy response: %s\n" + +#: src/http.c:1704 +#, c-format +msgid "Proxy tunneling failed: %s" +msgstr "Proxy tunneling failed: %s" + +#: src/http.c:1749 +#, c-format +msgid "%s request sent, awaiting response... " +msgstr "%s request sent, awaiting response... " + +#: src/http.c:1760 +msgid "No data received.\n" +msgstr "No data received.\n" + +#: src/http.c:1767 +#, c-format +msgid "Read error (%s) in headers.\n" +msgstr "Read error (%s) in headers.\n" + +#: src/http.c:1813 +#, c-format +msgid "" +"File `%s' already there; not retrieving.\n" +"\n" +msgstr "" +"File ‘%s’ already there; not retrieving.\n" +"\n" + +#: src/http.c:1966 +msgid "Unknown authentication scheme.\n" +msgstr "Unknown authentication scheme.\n" + +#: src/http.c:1997 +msgid "Authorization failed.\n" +msgstr "Authorization failed.\n" + +#: src/http.c:2011 +msgid "Malformed status line" +msgstr "Malformed status line" + +#: src/http.c:2013 +msgid "(no description)" +msgstr "(no description)" + +#: src/http.c:2076 +#, c-format +msgid "Location: %s%s\n" +msgstr "Location: %s%s\n" + +#: src/http.c:2077 src/http.c:2184 +msgid "unspecified" +msgstr "unspecified" + +#: src/http.c:2078 +msgid " [following]" +msgstr " [following]" + +#: src/http.c:2134 +msgid "" +"\n" +" The file is already fully retrieved; nothing to do.\n" +"\n" +msgstr "" +"\n" +" The file is already fully retrieved; nothing to do.\n" +"\n" + +#: src/http.c:2164 +msgid "Length: " +msgstr "Length: " + +#: src/http.c:2184 +msgid "ignored" +msgstr "ignored" + +#: src/http.c:2255 +#, c-format +msgid "Saving to: `%s'\n" +msgstr "Saving to: ‘%s’\n" + +#: src/http.c:2336 +msgid "Warning: wildcards not supported in HTTP.\n" +msgstr "Warning: wildcards not supported in HTTP.\n" + +#: src/http.c:2383 +msgid "Spider mode enabled. Check if remote file exists.\n" +msgstr "Spider mode enabled. Check if remote file exists.\n" + +#: src/http.c:2468 +#, c-format +msgid "Cannot write to `%s' (%s).\n" +msgstr "Cannot write to ‘%s’ (%s).\n" + +#: src/http.c:2477 +msgid "Unable to establish SSL connection.\n" +msgstr "Unable to establish SSL connection.\n" + +#: src/http.c:2485 +#, c-format +msgid "ERROR: Redirection (%d) without location.\n" +msgstr "ERROR: Redirection (%d) without location.\n" + +#: src/http.c:2531 +msgid "Remote file does not exist -- broken link!!!\n" +msgstr "Remote file does not exist -- broken link!!!\n" + +#: src/http.c:2536 +#, c-format +msgid "%s ERROR %d: %s.\n" +msgstr "%s ERROR %d: %s.\n" + +#: src/http.c:2552 +msgid "Last-modified header missing -- time-stamps turned off.\n" +msgstr "Last-modified header missing -- time-stamps turned off.\n" + +#: src/http.c:2560 +msgid "Last-modified header invalid -- time-stamp ignored.\n" +msgstr "Last-modified header invalid -- time-stamp ignored.\n" + +#: src/http.c:2590 +#, c-format +msgid "" +"Server file no newer than local file `%s' -- not retrieving.\n" +"\n" +msgstr "" +"Server file no newer than local file ‘%s’ -- not retrieving.\n" +"\n" + +#: src/http.c:2598 +#, c-format +msgid "The sizes do not match (local %s) -- retrieving.\n" +msgstr "The sizes do not match (local %s) -- retrieving.\n" + +#: src/http.c:2605 +msgid "Remote file is newer, retrieving.\n" +msgstr "Remote file is newer, retrieving.\n" + +#: src/http.c:2621 +msgid "" +"Remote file exists and could contain links to other resources -- " +"retrieving.\n" +"\n" +msgstr "" +"Remote file exists and could contain links to other resources -- " +"retrieving.\n" +"\n" + +#: src/http.c:2626 +msgid "" +"Remote file exists but does not contain any link -- not retrieving.\n" +"\n" +msgstr "" +"Remote file exists but does not contain any link -- not retrieving.\n" +"\n" + +#: src/http.c:2634 +msgid "" +"Remote file exists but recursion is disabled -- not retrieving.\n" +"\n" +msgstr "" +"Remote file exists but recursion is disabled -- not retrieving.\n" +"\n" + +#: src/http.c:2686 +#, c-format +msgid "" +"%s (%s) - `%s' saved [%s/%s]\n" +"\n" +msgstr "" +"%s (%s) - ‘%s’ saved [%s/%s]\n" +"\n" + +#: src/http.c:2741 +#, c-format +msgid "%s (%s) - Connection closed at byte %s. " +msgstr "%s (%s) - Connection closed at byte %s. " + +#: src/http.c:2756 +#, c-format +msgid "%s (%s) - Read error at byte %s (%s)." +msgstr "%s (%s) - Read error at byte %s (%s)." + +#: src/http.c:2765 +#, c-format +msgid "%s (%s) - Read error at byte %s/%s (%s). " +msgstr "%s (%s) - Read error at byte %s/%s (%s). " + +#: src/init.c:387 +#, c-format +msgid "%s: WGETRC points to %s, which doesn't exist.\n" +msgstr "%s: WGETRC points to %s, which doesn't exist.\n" + +#: src/init.c:450 src/netrc.c:267 +#, c-format +msgid "%s: Cannot read %s (%s).\n" +msgstr "%s: Cannot read %s (%s).\n" + +#: src/init.c:468 +#, c-format +msgid "%s: Error in %s at line %d.\n" +msgstr "%s: Error in %s at line %d.\n" + +#: src/init.c:474 +#, c-format +msgid "%s: Syntax error in %s at line %d.\n" +msgstr "%s: Syntax error in %s at line %d.\n" + +#: src/init.c:479 +#, c-format +msgid "%s: Unknown command `%s' in %s at line %d.\n" +msgstr "%s: Unknown command ‘%s’ in %s at line %d.\n" + +#: src/init.c:524 +#, c-format +msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n" +msgstr "%s: Warning: Both system and user wgetrc point to ‘%s’.\n" + +#: src/init.c:677 +#, c-format +msgid "%s: Invalid --execute command `%s'\n" +msgstr "%s: Invalid --execute command ‘%s’\n" + +#: src/init.c:722 +#, c-format +msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n" +msgstr "%s: %s: Invalid boolean ‘%s’; use ‘on’ or ‘off’.\n" + +#: src/init.c:739 +#, c-format +msgid "%s: %s: Invalid number `%s'.\n" +msgstr "%s: %s: Invalid number ‘%s’.\n" + +#: src/init.c:970 src/init.c:989 +#, c-format +msgid "%s: %s: Invalid byte value `%s'\n" +msgstr "%s: %s: Invalid byte value ‘%s’\n" + +#: src/init.c:1014 +#, c-format +msgid "%s: %s: Invalid time period `%s'\n" +msgstr "%s: %s: Invalid time period ‘%s’\n" + +#: src/init.c:1068 src/init.c:1158 src/init.c:1261 src/init.c:1286 +#, c-format +msgid "%s: %s: Invalid value `%s'.\n" +msgstr "%s: %s: Invalid value ‘%s’.\n" + +#: src/init.c:1105 +#, c-format +msgid "%s: %s: Invalid header `%s'.\n" +msgstr "%s: %s: Invalid header ‘%s’.\n" + +#: src/init.c:1171 +#, c-format +msgid "%s: %s: Invalid progress type `%s'.\n" +msgstr "%s: %s: Invalid progress type ‘%s’.\n" + +#: src/init.c:1230 +#, c-format +msgid "" +"%s: %s: Invalid restriction `%s', use [unix|windows],[lowercase|uppercase]," +"[nocontrol].\n" +msgstr "" +"%s: %s: Invalid restriction ‘%s’, use [unix|windows],[lowercase|" +"uppercase],[nocontrol].\n" + +#: src/log.c:784 +#, c-format +msgid "" +"\n" +"%s received, redirecting output to `%s'.\n" +msgstr "" +"\n" +"%s received, redirecting output to ‘%s’.\n" + +#: src/log.c:794 +#, c-format +msgid "" +"\n" +"%s received.\n" +msgstr "" +"\n" +"%s received.\n" + +#: src/log.c:795 +#, c-format +msgid "%s: %s; disabling logging.\n" +msgstr "%s: %s; disabling logging.\n" + +#: src/main.c:358 +#, c-format +msgid "Usage: %s [OPTION]... [URL]...\n" +msgstr "Usage: %s [OPTION]... [URL]...\n" + +#: src/main.c:370 +msgid "" +"Mandatory arguments to long options are mandatory for short options too.\n" +"\n" +msgstr "" +"Mandatory arguments to long options are mandatory for short options too.\n" +"\n" + +#: src/main.c:372 +msgid "Startup:\n" +msgstr "Startup:\n" + +#: src/main.c:374 +msgid " -V, --version display the version of Wget and exit.\n" +msgstr " -V, --version display the version of Wget and exit.\n" + +#: src/main.c:376 +msgid " -h, --help print this help.\n" +msgstr " -h, --help print this help.\n" + +#: src/main.c:378 +msgid " -b, --background go to background after startup.\n" +msgstr " -b, --background go to background after startup.\n" + +#: src/main.c:380 +msgid " -e, --execute=COMMAND execute a `.wgetrc'-style command.\n" +msgstr " -e, --execute=COMMAND execute a ‘.wgetrc’-style command.\n" + +#: src/main.c:384 +msgid "Logging and input file:\n" +msgstr "Logging and input file:\n" + +#: src/main.c:386 +msgid " -o, --output-file=FILE log messages to FILE.\n" +msgstr " -o, --output-file=FILE log messages to FILE.\n" + +#: src/main.c:388 +msgid " -a, --append-output=FILE append messages to FILE.\n" +msgstr " -a, --append-output=FILE append messages to FILE.\n" + +#: src/main.c:391 +msgid " -d, --debug print lots of debugging information.\n" +msgstr " -d, --debug print lots of debugging information.\n" + +#: src/main.c:395 +msgid " --wdebug print Watt-32 debug output.\n" +msgstr " --wdebug print Watt-32 debug output.\n" + +#: src/main.c:398 +msgid " -q, --quiet quiet (no output).\n" +msgstr " -q, --quiet quiet (no output).\n" + +#: src/main.c:400 +msgid " -v, --verbose be verbose (this is the default).\n" +msgstr " -v, --verbose be verbose (this is the default).\n" + +#: src/main.c:402 +msgid "" +" -nv, --no-verbose turn off verboseness, without being quiet.\n" +msgstr "" +" -nv, --no-verbose turn off verboseness, without being quiet.\n" + +#: src/main.c:404 +msgid " -i, --input-file=FILE download URLs found in FILE.\n" +msgstr " -i, --input-file=FILE download URLs found in FILE.\n" + +#: src/main.c:406 +msgid " -F, --force-html treat input file as HTML.\n" +msgstr " -F, --force-html treat input file as HTML.\n" + +#: src/main.c:408 +msgid "" +" -B, --base=URL prepends URL to relative links in -F -i file.\n" +msgstr "" +" -B, --base=URL prepends URL to relative links in -F -i file.\n" + +#: src/main.c:412 +msgid "Download:\n" +msgstr "Download:\n" + +#: src/main.c:414 +msgid "" +" -t, --tries=NUMBER set number of retries to NUMBER (0 " +"unlimits).\n" +msgstr "" +" -t, --tries=NUMBER set number of retries to NUMBER (0 " +"unlimits).\n" + +#: src/main.c:416 +msgid " --retry-connrefused retry even if connection is refused.\n" +msgstr "" +" --retry-connrefused retry even if connection is refused.\n" + +#: src/main.c:418 +msgid " -O, --output-document=FILE write documents to FILE.\n" +msgstr " -O, --output-document=FILE write documents to FILE.\n" + +#: src/main.c:420 +msgid "" +" -nc, --no-clobber skip downloads that would download to\n" +" existing files.\n" +msgstr "" +" -nc, --no-clobber skip downloads that would download to\n" +" existing files.\n" + +#: src/main.c:423 +msgid "" +" -c, --continue resume getting a partially-downloaded " +"file.\n" +msgstr "" +" -c, --continue resume getting a partially-downloaded " +"file.\n" + +#: src/main.c:425 +msgid " --progress=TYPE select progress gauge type.\n" +msgstr " --progress=TYPE select progress gauge type.\n" + +#: src/main.c:427 +msgid "" +" -N, --timestamping don't re-retrieve files unless newer than\n" +" local.\n" +msgstr "" +" -N, --timestamping don't re-retrieve files unless newer than\n" +" local.\n" + +#: src/main.c:430 +msgid " -S, --server-response print server response.\n" +msgstr " -S, --server-response print server response.\n" + +#: src/main.c:432 +msgid " --spider don't download anything.\n" +msgstr " --spider don't download anything.\n" + +#: src/main.c:434 +msgid " -T, --timeout=SECONDS set all timeout values to SECONDS.\n" +msgstr " -T, --timeout=SECONDS set all timeout values to SECONDS.\n" + +#: src/main.c:436 +msgid " --dns-timeout=SECS set the DNS lookup timeout to SECS.\n" +msgstr " --dns-timeout=SECS set the DNS lookup timeout to SECS.\n" + +#: src/main.c:438 +msgid " --connect-timeout=SECS set the connect timeout to SECS.\n" +msgstr " --connect-timeout=SECS set the connect timeout to SECS.\n" + +#: src/main.c:440 +msgid " --read-timeout=SECS set the read timeout to SECS.\n" +msgstr " --read-timeout=SECS set the read timeout to SECS.\n" + +#: src/main.c:442 +msgid " -w, --wait=SECONDS wait SECONDS between retrievals.\n" +msgstr " -w, --wait=SECONDS wait SECONDS between retrievals.\n" + +#: src/main.c:444 +msgid "" +" --waitretry=SECONDS wait 1..SECONDS between retries of a " +"retrieval.\n" +msgstr "" +" --waitretry=SECONDS wait 1..SECONDS between retries of a " +"retrieval.\n" + +#: src/main.c:446 +msgid "" +" --random-wait wait from 0...2*WAIT secs between " +"retrievals.\n" +msgstr "" +" --random-wait wait from 0...2*WAIT secs between " +"retrievals.\n" + +#: src/main.c:448 +msgid " -Y, --proxy explicitly turn on proxy.\n" +msgstr " -Y, --proxy explicitly turn on proxy.\n" + +#: src/main.c:450 +msgid " --no-proxy explicitly turn off proxy.\n" +msgstr " --no-proxy explicitly turn off proxy.\n" + +#: src/main.c:452 +msgid " -Q, --quota=NUMBER set retrieval quota to NUMBER.\n" +msgstr " -Q, --quota=NUMBER set retrieval quota to NUMBER.\n" + +#: src/main.c:454 +msgid "" +" --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local " +"host.\n" +msgstr "" +" --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local " +"host.\n" + +#: src/main.c:456 +msgid " --limit-rate=RATE limit download rate to RATE.\n" +msgstr " --limit-rate=RATE limit download rate to RATE.\n" + +#: src/main.c:458 +msgid " --no-dns-cache disable caching DNS lookups.\n" +msgstr " --no-dns-cache disable caching DNS lookups.\n" + +#: src/main.c:460 +msgid "" +" --restrict-file-names=OS restrict chars in file names to ones OS " +"allows.\n" +msgstr "" +" --restrict-file-names=OS restrict chars in file names to ones OS " +"allows.\n" + +#: src/main.c:462 +msgid "" +" --ignore-case ignore case when matching files/" +"directories.\n" +msgstr "" +" --ignore-case ignore case when matching files/" +"directories.\n" + +#: src/main.c:465 +msgid " -4, --inet4-only connect only to IPv4 addresses.\n" +msgstr " -4, --inet4-only connect only to IPv4 addresses.\n" + +#: src/main.c:467 +msgid " -6, --inet6-only connect only to IPv6 addresses.\n" +msgstr " -6, --inet6-only connect only to IPv6 addresses.\n" + +#: src/main.c:469 +msgid "" +" --prefer-family=FAMILY connect first to addresses of specified " +"family,\n" +" one of IPv6, IPv4, or none.\n" +msgstr "" +" --prefer-family=FAMILY connect first to addresses of specified " +"family,\n" +" one of IPv6, IPv4, or none.\n" + +#: src/main.c:473 +msgid " --user=USER set both ftp and http user to USER.\n" +msgstr " --user=USER set both ftp and http user to USER.\n" + +#: src/main.c:475 +msgid "" +" --password=PASS set both ftp and http password to PASS.\n" +msgstr "" +" --password=PASS set both ftp and http password to PASS.\n" + +#: src/main.c:479 +msgid "Directories:\n" +msgstr "Directories:\n" + +#: src/main.c:481 +msgid " -nd, --no-directories don't create directories.\n" +msgstr " -nd, --no-directories don't create directories.\n" + +#: src/main.c:483 +msgid " -x, --force-directories force creation of directories.\n" +msgstr " -x, --force-directories force creation of directories.\n" + +#: src/main.c:485 +msgid " -nH, --no-host-directories don't create host directories.\n" +msgstr " -nH, --no-host-directories don't create host directories.\n" + +#: src/main.c:487 +msgid " --protocol-directories use protocol name in directories.\n" +msgstr " --protocol-directories use protocol name in directories.\n" + +#: src/main.c:489 +msgid " -P, --directory-prefix=PREFIX save files to PREFIX/...\n" +msgstr " -P, --directory-prefix=PREFIX save files to PREFIX/...\n" + +#: src/main.c:491 +msgid "" +" --cut-dirs=NUMBER ignore NUMBER remote directory " +"components.\n" +msgstr "" +" --cut-dirs=NUMBER ignore NUMBER remote directory " +"components.\n" + +#: src/main.c:495 +msgid "HTTP options:\n" +msgstr "HTTP options:\n" + +#: src/main.c:497 +msgid " --http-user=USER set http user to USER.\n" +msgstr " --http-user=USER set http user to USER.\n" + +#: src/main.c:499 +msgid " --http-password=PASS set http password to PASS.\n" +msgstr " --http-password=PASS set http password to PASS.\n" + +#: src/main.c:501 +msgid " --no-cache disallow server-cached data.\n" +msgstr " --no-cache disallow server-cached data.\n" + +#: src/main.c:503 +msgid "" +" -E, --html-extension save HTML documents with `.html' extension.\n" +msgstr "" +" -E, --html-extension save HTML documents with ‘.html’ " +"extension.\n" + +#: src/main.c:505 +msgid " --ignore-length ignore `Content-Length' header field.\n" +msgstr "" +" --ignore-length ignore ‘Content-Length’ header field.\n" + +#: src/main.c:507 +msgid " --header=STRING insert STRING among the headers.\n" +msgstr " --header=STRING insert STRING among the headers.\n" + +#: src/main.c:509 +msgid " --max-redirect maximum redirections allowed per page.\n" +msgstr "" +" --max-redirect maximum redirections allowed per page.\n" + +#: src/main.c:511 +msgid " --proxy-user=USER set USER as proxy username.\n" +msgstr " --proxy-user=USER set USER as proxy username.\n" + +#: src/main.c:513 +msgid " --proxy-password=PASS set PASS as proxy password.\n" +msgstr " --proxy-password=PASS set PASS as proxy password.\n" + +#: src/main.c:515 +msgid "" +" --referer=URL include `Referer: URL' header in HTTP " +"request.\n" +msgstr "" +" --referer=URL include ‘Referer: URL’ header in HTTP " +"request.\n" + +#: src/main.c:517 +msgid " --save-headers save the HTTP headers to file.\n" +msgstr " --save-headers save the HTTP headers to file.\n" + +#: src/main.c:519 +msgid "" +" -U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION.\n" +msgstr "" +" -U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION.\n" + +#: src/main.c:521 +msgid "" +" --no-http-keep-alive disable HTTP keep-alive (persistent " +"connections).\n" +msgstr "" +" --no-http-keep-alive disable HTTP keep-alive (persistent " +"connections).\n" + +#: src/main.c:523 +msgid " --no-cookies don't use cookies.\n" +msgstr " --no-cookies don't use cookies.\n" + +#: src/main.c:525 +msgid " --load-cookies=FILE load cookies from FILE before session.\n" +msgstr "" +" --load-cookies=FILE load cookies from FILE before session.\n" + +#: src/main.c:527 +msgid " --save-cookies=FILE save cookies to FILE after session.\n" +msgstr " --save-cookies=FILE save cookies to FILE after session.\n" + +#: src/main.c:529 +msgid "" +" --keep-session-cookies load and save session (non-permanent) " +"cookies.\n" +msgstr "" +" --keep-session-cookies load and save session (non-permanent) " +"cookies.\n" + +#: src/main.c:531 +msgid "" +" --post-data=STRING use the POST method; send STRING as the " +"data.\n" +msgstr "" +" --post-data=STRING use the POST method; send STRING as the " +"data.\n" + +#: src/main.c:533 +msgid "" +" --post-file=FILE use the POST method; send contents of FILE.\n" +msgstr "" +" --post-file=FILE use the POST method; send contents of FILE.\n" + +#: src/main.c:535 +msgid "" +" --no-content-disposition don't honor Content-Disposition header.\n" +msgstr "" +" --no-content-disposition don't honor Content-Disposition header.\n" + +#: src/main.c:540 +msgid "HTTPS (SSL/TLS) options:\n" +msgstr "HTTPS (SSL/TLS) options:\n" + +#: src/main.c:542 +msgid "" +" --secure-protocol=PR choose secure protocol, one of auto, SSLv2,\n" +" SSLv3, and TLSv1.\n" +msgstr "" +" --secure-protocol=PR choose secure protocol, one of auto, SSLv2,\n" +" SSLv3, and TLSv1.\n" + +#: src/main.c:545 +msgid "" +" --no-check-certificate don't validate the server's certificate.\n" +msgstr "" +" --no-check-certificate don't validate the server's certificate.\n" + +#: src/main.c:547 +msgid " --certificate=FILE client certificate file.\n" +msgstr " --certificate=FILE client certificate file.\n" + +#: src/main.c:549 +msgid " --certificate-type=TYPE client certificate type, PEM or DER.\n" +msgstr " --certificate-type=TYPE client certificate type, PEM or DER.\n" + +#: src/main.c:551 +msgid " --private-key=FILE private key file.\n" +msgstr " --private-key=FILE private key file.\n" + +#: src/main.c:553 +msgid " --private-key-type=TYPE private key type, PEM or DER.\n" +msgstr " --private-key-type=TYPE private key type, PEM or DER.\n" + +#: src/main.c:555 +msgid " --ca-certificate=FILE file with the bundle of CA's.\n" +msgstr " --ca-certificate=FILE file with the bundle of CA's.\n" + +#: src/main.c:557 +msgid "" +" --ca-directory=DIR directory where hash list of CA's is " +"stored.\n" +msgstr "" +" --ca-directory=DIR directory where hash list of CA's is " +"stored.\n" + +#: src/main.c:559 +msgid "" +" --random-file=FILE file with random data for seeding the SSL " +"PRNG.\n" +msgstr "" +" --random-file=FILE file with random data for seeding the SSL " +"PRNG.\n" + +#: src/main.c:561 +msgid "" +" --egd-file=FILE file naming the EGD socket with random " +"data.\n" +msgstr "" +" --egd-file=FILE file naming the EGD socket with random " +"data.\n" + +#: src/main.c:566 +msgid "FTP options:\n" +msgstr "FTP options:\n" + +#: src/main.c:568 +msgid " --ftp-user=USER set ftp user to USER.\n" +msgstr " --ftp-user=USER set ftp user to USER.\n" + +#: src/main.c:570 +msgid " --ftp-password=PASS set ftp password to PASS.\n" +msgstr " --ftp-password=PASS set ftp password to PASS.\n" + +#: src/main.c:572 +msgid " --no-remove-listing don't remove `.listing' files.\n" +msgstr " --no-remove-listing don't remove ‘.listing’ files.\n" + +#: src/main.c:574 +msgid " --no-glob turn off FTP file name globbing.\n" +msgstr " --no-glob turn off FTP file name globbing.\n" + +#: src/main.c:576 +msgid " --no-passive-ftp disable the \"passive\" transfer mode.\n" +msgstr "" +" --no-passive-ftp disable the “passive” transfer mode.\n" + +#: src/main.c:578 +msgid "" +" --retr-symlinks when recursing, get linked-to files (not " +"dir).\n" +msgstr "" +" --retr-symlinks when recursing, get linked-to files (not " +"dir).\n" + +#: src/main.c:580 +msgid " --preserve-permissions preserve remote file permissions.\n" +msgstr " --preserve-permissions preserve remote file permissions.\n" + +#: src/main.c:584 +msgid "Recursive download:\n" +msgstr "Recursive download:\n" + +#: src/main.c:586 +msgid " -r, --recursive specify recursive download.\n" +msgstr " -r, --recursive specify recursive download.\n" + +#: src/main.c:588 +msgid "" +" -l, --level=NUMBER maximum recursion depth (inf or 0 for " +"infinite).\n" +msgstr "" +" -l, --level=NUMBER maximum recursion depth (inf or 0 for " +"infinite).\n" + +#: src/main.c:590 +msgid "" +" --delete-after delete files locally after downloading them.\n" +msgstr "" +" --delete-after delete files locally after downloading them.\n" + +#: src/main.c:592 +msgid "" +" -k, --convert-links make links in downloaded HTML point to local " +"files.\n" +msgstr "" +" -k, --convert-links make links in downloaded HTML point to local " +"files.\n" + +#: src/main.c:594 +msgid "" +" -K, --backup-converted before converting file X, back up as X.orig.\n" +msgstr "" +" -K, --backup-converted before converting file X, back up as X.orig.\n" + +#: src/main.c:596 +msgid "" +" -m, --mirror shortcut for -N -r -l inf --no-remove-listing.\n" +msgstr "" +" -m, --mirror shortcut for -N -r -l inf --no-remove-listing.\n" + +#: src/main.c:598 +msgid "" +" -p, --page-requisites get all images, etc. needed to display HTML " +"page.\n" +msgstr "" +" -p, --page-requisites get all images, etc. needed to display HTML " +"page.\n" + +#: src/main.c:600 +msgid "" +" --strict-comments turn on strict (SGML) handling of HTML " +"comments.\n" +msgstr "" +" --strict-comments turn on strict (SGML) handling of HTML " +"comments.\n" + +#: src/main.c:604 +msgid "Recursive accept/reject:\n" +msgstr "Recursive accept/reject:\n" + +#: src/main.c:606 +msgid "" +" -A, --accept=LIST comma-separated list of accepted " +"extensions.\n" +msgstr "" +" -A, --accept=LIST comma-separated list of accepted " +"extensions.\n" + +#: src/main.c:608 +msgid "" +" -R, --reject=LIST comma-separated list of rejected " +"extensions.\n" +msgstr "" +" -R, --reject=LIST comma-separated list of rejected " +"extensions.\n" + +#: src/main.c:610 +msgid "" +" -D, --domains=LIST comma-separated list of accepted " +"domains.\n" +msgstr "" +" -D, --domains=LIST comma-separated list of accepted " +"domains.\n" + +#: src/main.c:612 +msgid "" +" --exclude-domains=LIST comma-separated list of rejected " +"domains.\n" +msgstr "" +" --exclude-domains=LIST comma-separated list of rejected " +"domains.\n" + +#: src/main.c:614 +msgid "" +" --follow-ftp follow FTP links from HTML documents.\n" +msgstr "" +" --follow-ftp follow FTP links from HTML documents.\n" + +#: src/main.c:616 +msgid "" +" --follow-tags=LIST comma-separated list of followed HTML " +"tags.\n" +msgstr "" +" --follow-tags=LIST comma-separated list of followed HTML " +"tags.\n" + +#: src/main.c:618 +msgid "" +" --ignore-tags=LIST comma-separated list of ignored HTML " +"tags.\n" +msgstr "" +" --ignore-tags=LIST comma-separated list of ignored HTML " +"tags.\n" + +#: src/main.c:620 +msgid "" +" -H, --span-hosts go to foreign hosts when recursive.\n" +msgstr "" +" -H, --span-hosts go to foreign hosts when recursive.\n" + +#: src/main.c:622 +msgid " -L, --relative follow relative links only.\n" +msgstr " -L, --relative follow relative links only.\n" + +#: src/main.c:624 +msgid " -I, --include-directories=LIST list of allowed directories.\n" +msgstr " -I, --include-directories=LIST list of allowed directories.\n" + +#: src/main.c:626 +msgid " -X, --exclude-directories=LIST list of excluded directories.\n" +msgstr " -X, --exclude-directories=LIST list of excluded directories.\n" + +#: src/main.c:628 +msgid "" +" -np, --no-parent don't ascend to the parent directory.\n" +msgstr "" +" -np, --no-parent don't ascend to the parent directory.\n" + +#: src/main.c:632 +msgid "Mail bug reports and suggestions to .\n" +msgstr "Mail bug reports and suggestions to .\n" + +#: src/main.c:637 +#, c-format +msgid "GNU Wget %s, a non-interactive network retriever.\n" +msgstr "GNU Wget %s, a non-interactive network retriever.\n" + +#: src/main.c:677 +msgid "Copyright (C) 2007 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2007 Free Software Foundation, Inc.\n" + +#: src/main.c:679 +msgid "" +"License GPLv3+: GNU GPL version 3 or later\n" +".\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"License GPLv3+: GNU GPL version 3 or later\n" +".\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" + +#: src/main.c:684 +msgid "" +"\n" +"Originally written by Hrvoje Niksic .\n" +msgstr "" +"\n" +"Originally written by Hrvoje Niksic .\n" + +#: src/main.c:686 +msgid "Currently maintained by Micah Cowan .\n" +msgstr "Currently maintained by Micah Cowan .\n" + +#: src/main.c:733 src/main.c:802 src/main.c:899 +#, c-format +msgid "Try `%s --help' for more options.\n" +msgstr "Try ‘%s --help’ for more options.\n" + +#: src/main.c:799 +#, c-format +msgid "%s: illegal option -- `-n%c'\n" +msgstr "%s: illegal option -- ‘-n%c’\n" + +#: src/main.c:854 +#, c-format +msgid "Can't be verbose and quiet at the same time.\n" +msgstr "Can't be verbose and quiet at the same time.\n" + +#: src/main.c:860 +#, c-format +msgid "Can't timestamp and not clobber old files at the same time.\n" +msgstr "Can't timestamp and not clobber old files at the same time.\n" + +#: src/main.c:868 +#, c-format +msgid "Cannot specify both --inet4-only and --inet6-only.\n" +msgstr "Cannot specify both --inet4-only and --inet6-only.\n" + +#: src/main.c:878 +#, c-format +msgid "Cannot specify -r, -p or -N if -O is given.\n" +msgstr "Cannot specify -r, -p or -N if -O is given.\n" + +#: src/main.c:886 +#, c-format +msgid "Cannot specify both -k and -O if multiple URLs are given.\n" +msgstr "Cannot specify both -k and -O if multiple URLs are given.\n" + +#: src/main.c:894 +#, c-format +msgid "%s: missing URL\n" +msgstr "%s: missing URL\n" + +#: src/main.c:1020 +#, c-format +msgid "No URLs found in %s.\n" +msgstr "No URLs found in %s.\n" + +#: src/main.c:1038 +#, c-format +msgid "" +"FINISHED --%s--\n" +"Downloaded: %d files, %s in %s (%s)\n" +msgstr "" +"FINISHED --%s--\n" +"Downloaded: %d files, %s in %s (%s)\n" + +#: src/main.c:1047 +#, c-format +msgid "Download quota of %s EXCEEDED!\n" +msgstr "Download quota of %s EXCEEDED!\n" + +#: src/mswindows.c:97 +#, c-format +msgid "Continuing in background.\n" +msgstr "Continuing in background.\n" + +#: src/mswindows.c:290 +#, c-format +msgid "Continuing in background, pid %lu.\n" +msgstr "Continuing in background, pid %lu.\n" + +#: src/mswindows.c:292 src/utils.c:330 +#, c-format +msgid "Output will be written to `%s'.\n" +msgstr "Output will be written to ‘%s’.\n" + +#: src/mswindows.c:460 src/mswindows.c:467 +#, c-format +msgid "%s: Couldn't find usable socket driver.\n" +msgstr "%s: Couldn't find usable socket driver.\n" + +#: src/netrc.c:375 +#, c-format +msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n" +msgstr "%s: %s:%d: warning: “%s” token appears before any machine name\n" + +#: src/netrc.c:406 +#, c-format +msgid "%s: %s:%d: unknown token \"%s\"\n" +msgstr "%s: %s:%d: unknown token “%s”\n" + +#: src/netrc.c:470 +#, c-format +msgid "Usage: %s NETRC [HOSTNAME]\n" +msgstr "Usage: %s NETRC [HOSTNAME]\n" + +#: src/netrc.c:480 +#, c-format +msgid "%s: cannot stat %s: %s\n" +msgstr "%s: cannot stat %s: %s\n" + +#: src/openssl.c:113 +msgid "WARNING: using a weak random seed.\n" +msgstr "WARNING: using a weak random seed.\n" + +#: src/openssl.c:173 +msgid "Could not seed PRNG; consider using --random-file.\n" +msgstr "Could not seed PRNG; consider using --random-file.\n" + +#: src/openssl.c:488 +msgid "ERROR" +msgstr "ERROR" + +#: src/openssl.c:488 +msgid "WARNING" +msgstr "WARNING" + +#: src/openssl.c:497 +#, c-format +msgid "%s: No certificate presented by %s.\n" +msgstr "%s: No certificate presented by %s.\n" + +#: src/openssl.c:518 +#, c-format +msgid "%s: cannot verify %s's certificate, issued by `%s':\n" +msgstr "%s: cannot verify %s's certificate, issued by ‘%s’:\n" + +#: src/openssl.c:526 +msgid " Unable to locally verify the issuer's authority.\n" +msgstr " Unable to locally verify the issuer's authority.\n" + +#: src/openssl.c:530 +msgid " Self-signed certificate encountered.\n" +msgstr " Self-signed certificate encountered.\n" + +#: src/openssl.c:533 +msgid " Issued certificate not yet valid.\n" +msgstr " Issued certificate not yet valid.\n" + +#: src/openssl.c:536 +msgid " Issued certificate has expired.\n" +msgstr " Issued certificate has expired.\n" + +#: src/openssl.c:568 +#, c-format +msgid "" +"%s: certificate common name `%s' doesn't match requested host name `%s'.\n" +msgstr "" +"%s: certificate common name ‘%s’ doesn't match requested host name ‘" +"%s’.\n" + +#: src/openssl.c:581 +#, c-format +msgid "To connect to %s insecurely, use `--no-check-certificate'.\n" +msgstr "To connect to %s insecurely, use ‘--no-check-certificate’.\n" + +#: src/progress.c:239 +#, c-format +msgid "" +"\n" +"%*s[ skipping %sK ]" +msgstr "" +"\n" +"%*s[ skipping %sK ]" + +#: src/progress.c:453 +#, c-format +msgid "Invalid dot style specification `%s'; leaving unchanged.\n" +msgstr "Invalid dot style specification ‘%s’; leaving unchanged.\n" + +#: src/progress.c:947 +#, c-format +msgid " eta %s" +msgstr " eta %s" + +#: src/progress.c:962 +msgid " in " +msgstr " in " + +#: src/ptimer.c:160 +#, c-format +msgid "Cannot get REALTIME clock frequency: %s\n" +msgstr "Cannot get REALTIME clock frequency: %s\n" + +#: src/recur.c:379 +#, c-format +msgid "Removing %s since it should be rejected.\n" +msgstr "Removing %s since it should be rejected.\n" + +#: src/res.c:392 +#, c-format +msgid "Cannot open %s: %s" +msgstr "Cannot open %s: %s" + +#: src/res.c:544 +msgid "Loading robots.txt; please ignore errors.\n" +msgstr "Loading robots.txt; please ignore errors.\n" + +#: src/retr.c:652 +#, c-format +msgid "Error parsing proxy URL %s: %s.\n" +msgstr "Error parsing proxy URL %s: %s.\n" + +#: src/retr.c:660 +#, c-format +msgid "Error in proxy URL %s: Must be HTTP.\n" +msgstr "Error in proxy URL %s: Must be HTTP.\n" + +#: src/retr.c:746 +#, c-format +msgid "%d redirections exceeded.\n" +msgstr "%d redirections exceeded.\n" + +#: src/retr.c:881 +msgid "" +"Giving up.\n" +"\n" +msgstr "" +"Giving up.\n" +"\n" + +#: src/retr.c:881 +msgid "" +"Retrying.\n" +"\n" +msgstr "" +"Retrying.\n" +"\n" + +#: src/spider.c:74 +msgid "" +"Found no broken links.\n" +"\n" +msgstr "" +"Found no broken links.\n" +"\n" + +#: src/spider.c:81 +#, c-format +msgid "" +"Found %d broken link.\n" +"\n" +msgid_plural "" +"Found %d broken links.\n" +"\n" +msgstr[0] "" +"Found %d broken link.\n" +"\n" +msgstr[1] "" +"Found %d broken links.\n" +"\n" + +#: src/spider.c:91 +#, c-format +msgid "%s\n" +msgstr "%s\n" + +#: src/url.c:620 +msgid "No error" +msgstr "No error" + +#: src/url.c:622 +msgid "Unsupported scheme" +msgstr "Unsupported scheme" + +#: src/url.c:624 +msgid "Invalid host name" +msgstr "Invalid host name" + +#: src/url.c:626 +msgid "Bad port number" +msgstr "Bad port number" + +#: src/url.c:628 +msgid "Invalid user name" +msgstr "Invalid user name" + +#: src/url.c:630 +msgid "Unterminated IPv6 numeric address" +msgstr "Unterminated IPv6 numeric address" + +#: src/url.c:632 +msgid "IPv6 addresses not supported" +msgstr "IPv6 addresses not supported" + +#: src/url.c:634 +msgid "Invalid IPv6 numeric address" +msgstr "Invalid IPv6 numeric address" + +#: src/utils.c:328 +#, c-format +msgid "Continuing in background, pid %d.\n" +msgstr "Continuing in background, pid %d.\n" + +#: src/utils.c:376 +#, c-format +msgid "Failed to unlink symlink `%s': %s\n" +msgstr "Failed to unlink symlink ‘%s’: %s\n" + +#: src/xmalloc.c:63 +#, c-format +msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n" +msgstr "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n" diff --git a/po/en@quot.header b/po/en@quot.header new file mode 100644 index 00000000..a9647fc3 --- /dev/null +++ b/po/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/po/en@quot.po b/po/en@quot.po new file mode 100644 index 00000000..830bb79d --- /dev/null +++ b/po/en@quot.po @@ -0,0 +1,1822 @@ +# English translations for GNU wget package. +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the GNU wget package. +# Automatically generated, 2007. +# +# 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. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU wget 1.10+devel\n" +"Report-Msgid-Bugs-To: wget@sunsite.dk\n" +"POT-Creation-Date: 2007-10-09 19:10-0700\n" +"PO-Revision-Date: 2007-10-09 19:10-0700\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/connect.c:196 +#, c-format +msgid "%s: unable to resolve bind address `%s'; disabling bind.\n" +msgstr "%s: unable to resolve bind address ‘%s’; disabling bind.\n" + +#: src/connect.c:268 +#, c-format +msgid "Connecting to %s|%s|:%d... " +msgstr "Connecting to %s|%s|:%d... " + +#: src/connect.c:271 +#, c-format +msgid "Connecting to %s:%d... " +msgstr "Connecting to %s:%d... " + +#: src/connect.c:331 +msgid "connected.\n" +msgstr "connected.\n" + +#: src/connect.c:343 src/host.c:753 src/host.c:782 +#, c-format +msgid "failed: %s.\n" +msgstr "failed: %s.\n" + +#: src/connect.c:367 src/http.c:1629 +#, c-format +msgid "%s: unable to resolve host address `%s'\n" +msgstr "%s: unable to resolve host address ‘%s’\n" + +#: src/convert.c:171 +#, c-format +msgid "Converted %d files in %s seconds.\n" +msgstr "Converted %d files in %s seconds.\n" + +#: src/convert.c:196 +#, c-format +msgid "Converting %s... " +msgstr "Converting %s... " + +#: src/convert.c:209 +msgid "nothing to do.\n" +msgstr "nothing to do.\n" + +#: src/convert.c:217 src/convert.c:241 +#, c-format +msgid "Cannot convert links in %s: %s\n" +msgstr "Cannot convert links in %s: %s\n" + +#: src/convert.c:232 +#, c-format +msgid "Unable to delete `%s': %s\n" +msgstr "Unable to delete ‘%s’: %s\n" + +#: src/convert.c:441 +#, c-format +msgid "Cannot back up %s as %s: %s\n" +msgstr "Cannot back up %s as %s: %s\n" + +#: src/cookies.c:444 +#, c-format +msgid "Syntax error in Set-Cookie: %s at position %d.\n" +msgstr "Syntax error in Set-Cookie: %s at position %d.\n" + +#: src/cookies.c:686 +#, c-format +msgid "Cookie coming from %s attempted to set domain to %s\n" +msgstr "Cookie coming from %s attempted to set domain to %s\n" + +#: src/cookies.c:1133 src/cookies.c:1251 +#, c-format +msgid "Cannot open cookies file `%s': %s\n" +msgstr "Cannot open cookies file ‘%s’: %s\n" + +#: src/cookies.c:1288 +#, c-format +msgid "Error writing to `%s': %s\n" +msgstr "Error writing to ‘%s’: %s\n" + +#: src/cookies.c:1291 +#, c-format +msgid "Error closing `%s': %s\n" +msgstr "Error closing ‘%s’: %s\n" + +#: src/ftp-ls.c:837 +msgid "Unsupported listing type, trying Unix listing parser.\n" +msgstr "Unsupported listing type, trying Unix listing parser.\n" + +#: src/ftp-ls.c:883 src/ftp-ls.c:885 +#, c-format +msgid "Index of /%s on %s:%d" +msgstr "Index of /%s on %s:%d" + +#: src/ftp-ls.c:908 +#, c-format +msgid "time unknown " +msgstr "time unknown " + +#: src/ftp-ls.c:912 +#, c-format +msgid "File " +msgstr "File " + +#: src/ftp-ls.c:915 +#, c-format +msgid "Directory " +msgstr "Directory " + +#: src/ftp-ls.c:918 +#, c-format +msgid "Link " +msgstr "Link " + +#: src/ftp-ls.c:921 +#, c-format +msgid "Not sure " +msgstr "Not sure " + +#: src/ftp-ls.c:939 +#, c-format +msgid " (%s bytes)" +msgstr " (%s bytes)" + +#: src/ftp.c:214 +#, c-format +msgid "Length: %s" +msgstr "Length: %s" + +#: src/ftp.c:220 src/http.c:2174 +#, c-format +msgid ", %s (%s) remaining" +msgstr ", %s (%s) remaining" + +#: src/ftp.c:224 src/http.c:2178 +#, c-format +msgid ", %s remaining" +msgstr ", %s remaining" + +#: src/ftp.c:227 +msgid " (unauthoritative)\n" +msgstr " (unauthoritative)\n" + +#: src/ftp.c:303 +#, c-format +msgid "Logging in as %s ... " +msgstr "Logging in as %s ... " + +#: src/ftp.c:316 src/ftp.c:362 src/ftp.c:391 src/ftp.c:443 src/ftp.c:555 +#: src/ftp.c:601 src/ftp.c:630 src/ftp.c:687 src/ftp.c:748 src/ftp.c:808 +#: src/ftp.c:855 +msgid "Error in server response, closing control connection.\n" +msgstr "Error in server response, closing control connection.\n" + +#: src/ftp.c:323 +msgid "Error in server greeting.\n" +msgstr "Error in server greeting.\n" + +#: src/ftp.c:330 src/ftp.c:451 src/ftp.c:563 src/ftp.c:638 src/ftp.c:697 +#: src/ftp.c:758 src/ftp.c:818 src/ftp.c:865 +msgid "Write failed, closing control connection.\n" +msgstr "Write failed, closing control connection.\n" + +#: src/ftp.c:336 +msgid "The server refuses login.\n" +msgstr "The server refuses login.\n" + +#: src/ftp.c:342 +msgid "Login incorrect.\n" +msgstr "Login incorrect.\n" + +#: src/ftp.c:348 +msgid "Logged in!\n" +msgstr "Logged in!\n" + +#: src/ftp.c:370 +msgid "Server error, can't determine system type.\n" +msgstr "Server error, can't determine system type.\n" + +#: src/ftp.c:379 src/ftp.c:674 src/ftp.c:731 src/ftp.c:774 +msgid "done. " +msgstr "done. " + +#: src/ftp.c:431 src/ftp.c:580 src/ftp.c:613 src/ftp.c:838 src/ftp.c:884 +msgid "done.\n" +msgstr "done.\n" + +#: src/ftp.c:458 +#, c-format +msgid "Unknown type `%c', closing control connection.\n" +msgstr "Unknown type ‘%c’, closing control connection.\n" + +#: src/ftp.c:470 +msgid "done. " +msgstr "done. " + +#: src/ftp.c:476 +msgid "==> CWD not needed.\n" +msgstr "==> CWD not needed.\n" + +#: src/ftp.c:569 +#, c-format +msgid "" +"No such directory `%s'.\n" +"\n" +msgstr "" +"No such directory ‘%s’.\n" +"\n" + +#: src/ftp.c:584 +msgid "==> CWD not required.\n" +msgstr "==> CWD not required.\n" + +#: src/ftp.c:644 +msgid "Cannot initiate PASV transfer.\n" +msgstr "Cannot initiate PASV transfer.\n" + +#: src/ftp.c:648 +msgid "Cannot parse PASV response.\n" +msgstr "Cannot parse PASV response.\n" + +#: src/ftp.c:665 +#, c-format +msgid "couldn't connect to %s port %d: %s\n" +msgstr "couldn't connect to %s port %d: %s\n" + +#: src/ftp.c:713 +#, c-format +msgid "Bind error (%s).\n" +msgstr "Bind error (%s).\n" + +#: src/ftp.c:719 +msgid "Invalid PORT.\n" +msgstr "Invalid PORT.\n" + +#: src/ftp.c:765 +msgid "" +"\n" +"REST failed, starting from scratch.\n" +msgstr "" +"\n" +"REST failed, starting from scratch.\n" + +#: src/ftp.c:826 +#, c-format +msgid "" +"No such file `%s'.\n" +"\n" +msgstr "" +"No such file ‘%s’.\n" +"\n" + +#: src/ftp.c:873 +#, c-format +msgid "" +"No such file or directory `%s'.\n" +"\n" +msgstr "" +"No such file or directory ‘%s’.\n" +"\n" + +#: src/ftp.c:935 src/http.c:2236 +#, c-format +msgid "%s has sprung into existence.\n" +msgstr "%s has sprung into existence.\n" + +#: src/ftp.c:987 +#, c-format +msgid "%s: %s, closing control connection.\n" +msgstr "%s: %s, closing control connection.\n" + +#: src/ftp.c:996 +#, c-format +msgid "%s (%s) - Data connection: %s; " +msgstr "%s (%s) - Data connection: %s; " + +#: src/ftp.c:1011 +msgid "Control connection closed.\n" +msgstr "Control connection closed.\n" + +#: src/ftp.c:1029 +msgid "Data transfer aborted.\n" +msgstr "Data transfer aborted.\n" + +#: src/ftp.c:1097 +#, c-format +msgid "File `%s' already there; not retrieving.\n" +msgstr "File ‘%s’ already there; not retrieving.\n" + +#: src/ftp.c:1165 src/http.c:2394 +#, c-format +msgid "(try:%2d)" +msgstr "(try:%2d)" + +#: src/ftp.c:1235 src/http.c:2717 +#, c-format +msgid "" +"%s (%s) - `%s' saved [%s]\n" +"\n" +msgstr "" +"%s (%s) - ‘%s’ saved [%s]\n" +"\n" + +#: src/ftp.c:1277 src/main.c:1005 src/recur.c:378 src/retr.c:860 +#, c-format +msgid "Removing %s.\n" +msgstr "Removing %s.\n" + +#: src/ftp.c:1319 +#, c-format +msgid "Using `%s' as listing tmp file.\n" +msgstr "Using ‘%s’ as listing tmp file.\n" + +#: src/ftp.c:1334 +#, c-format +msgid "Removed `%s'.\n" +msgstr "Removed ‘%s’.\n" + +#: src/ftp.c:1367 +#, c-format +msgid "Recursion depth %d exceeded max. depth %d.\n" +msgstr "Recursion depth %d exceeded max. depth %d.\n" + +#: src/ftp.c:1437 +#, c-format +msgid "Remote file no newer than local file `%s' -- not retrieving.\n" +msgstr "Remote file no newer than local file ‘%s’ -- not retrieving.\n" + +#: src/ftp.c:1444 +#, c-format +msgid "" +"Remote file is newer than local file `%s' -- retrieving.\n" +"\n" +msgstr "" +"Remote file is newer than local file ‘%s’ -- retrieving.\n" +"\n" + +#: src/ftp.c:1451 +#, c-format +msgid "" +"The sizes do not match (local %s) -- retrieving.\n" +"\n" +msgstr "" +"The sizes do not match (local %s) -- retrieving.\n" +"\n" + +#: src/ftp.c:1469 +msgid "Invalid name of the symlink, skipping.\n" +msgstr "Invalid name of the symlink, skipping.\n" + +#: src/ftp.c:1486 +#, c-format +msgid "" +"Already have correct symlink %s -> %s\n" +"\n" +msgstr "" +"Already have correct symlink %s -> %s\n" +"\n" + +#: src/ftp.c:1494 +#, c-format +msgid "Creating symlink %s -> %s\n" +msgstr "Creating symlink %s -> %s\n" + +#: src/ftp.c:1504 +#, c-format +msgid "Symlinks not supported, skipping symlink `%s'.\n" +msgstr "Symlinks not supported, skipping symlink ‘%s’.\n" + +#: src/ftp.c:1516 +#, c-format +msgid "Skipping directory `%s'.\n" +msgstr "Skipping directory ‘%s’.\n" + +#: src/ftp.c:1525 +#, c-format +msgid "%s: unknown/unsupported file type.\n" +msgstr "%s: unknown/unsupported file type.\n" + +#: src/ftp.c:1552 +#, c-format +msgid "%s: corrupt time-stamp.\n" +msgstr "%s: corrupt time-stamp.\n" + +#: src/ftp.c:1580 +#, c-format +msgid "Will not retrieve dirs since depth is %d (max %d).\n" +msgstr "Will not retrieve dirs since depth is %d (max %d).\n" + +#: src/ftp.c:1630 +#, c-format +msgid "Not descending to `%s' as it is excluded/not-included.\n" +msgstr "Not descending to ‘%s’ as it is excluded/not-included.\n" + +#: src/ftp.c:1696 src/ftp.c:1710 +#, c-format +msgid "Rejecting `%s'.\n" +msgstr "Rejecting ‘%s’.\n" + +#: src/ftp.c:1758 +#, c-format +msgid "No matches on pattern `%s'.\n" +msgstr "No matches on pattern ‘%s’.\n" + +#: src/ftp.c:1824 +#, c-format +msgid "Wrote HTML-ized index to `%s' [%s].\n" +msgstr "Wrote HTML-ized index to ‘%s’ [%s].\n" + +#: src/ftp.c:1829 +#, c-format +msgid "Wrote HTML-ized index to `%s'.\n" +msgstr "Wrote HTML-ized index to ‘%s’.\n" + +#: src/getopt.c:670 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: option ‘%s’ is ambiguous\n" + +#: src/getopt.c:695 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: option ‘--%s’ doesn't allow an argument\n" + +#: src/getopt.c:700 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: option ‘%c%s’ doesn't allow an argument\n" + +#: src/getopt.c:718 src/getopt.c:891 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "%s: option ‘%s’ requires an argument\n" + +#: src/getopt.c:747 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: unrecognized option ‘--%s’\n" + +#: src/getopt.c:751 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: unrecognized option ‘%c%s’\n" + +#: src/getopt.c:777 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: illegal option -- %c\n" + +#: src/getopt.c:780 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "%s: invalid option -- %c\n" + +#: src/getopt.c:810 src/getopt.c:940 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: option requires an argument -- %c\n" + +#: src/getopt.c:857 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: option ‘-W %s’ is ambiguous\n" + +#: src/getopt.c:875 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: option ‘-W %s’ doesn't allow an argument\n" + +#: src/host.c:348 +msgid "Unknown host" +msgstr "Unknown host" + +#: src/host.c:352 +msgid "Temporary failure in name resolution" +msgstr "Temporary failure in name resolution" + +#: src/host.c:354 +msgid "Unknown error" +msgstr "Unknown error" + +#: src/host.c:715 +#, c-format +msgid "Resolving %s... " +msgstr "Resolving %s... " + +#: src/host.c:762 +msgid "failed: No IPv4/IPv6 addresses for host.\n" +msgstr "failed: No IPv4/IPv6 addresses for host.\n" + +#: src/host.c:785 +msgid "failed: timed out.\n" +msgstr "failed: timed out.\n" + +#: src/html-url.c:289 +#, c-format +msgid "%s: Cannot resolve incomplete link %s.\n" +msgstr "%s: Cannot resolve incomplete link %s.\n" + +#: src/html-url.c:696 +#, c-format +msgid "%s: Invalid URL %s: %s\n" +msgstr "%s: Invalid URL %s: %s\n" + +#: src/http.c:368 +#, c-format +msgid "Failed writing HTTP request: %s.\n" +msgstr "Failed writing HTTP request: %s.\n" + +#: src/http.c:737 +msgid "No headers, assuming HTTP/0.9" +msgstr "No headers, assuming HTTP/0.9" + +#: src/http.c:1414 +msgid "Disabling SSL due to encountered errors.\n" +msgstr "Disabling SSL due to encountered errors.\n" + +#: src/http.c:1567 +#, c-format +msgid "POST data file `%s' missing: %s\n" +msgstr "POST data file ‘%s’ missing: %s\n" + +#: src/http.c:1616 +#, c-format +msgid "Reusing existing connection to %s:%d.\n" +msgstr "Reusing existing connection to %s:%d.\n" + +#: src/http.c:1684 +#, c-format +msgid "Failed reading proxy response: %s\n" +msgstr "Failed reading proxy response: %s\n" + +#: src/http.c:1704 +#, c-format +msgid "Proxy tunneling failed: %s" +msgstr "Proxy tunneling failed: %s" + +#: src/http.c:1749 +#, c-format +msgid "%s request sent, awaiting response... " +msgstr "%s request sent, awaiting response... " + +#: src/http.c:1760 +msgid "No data received.\n" +msgstr "No data received.\n" + +#: src/http.c:1767 +#, c-format +msgid "Read error (%s) in headers.\n" +msgstr "Read error (%s) in headers.\n" + +#: src/http.c:1813 +#, c-format +msgid "" +"File `%s' already there; not retrieving.\n" +"\n" +msgstr "" +"File ‘%s’ already there; not retrieving.\n" +"\n" + +#: src/http.c:1966 +msgid "Unknown authentication scheme.\n" +msgstr "Unknown authentication scheme.\n" + +#: src/http.c:1997 +msgid "Authorization failed.\n" +msgstr "Authorization failed.\n" + +#: src/http.c:2011 +msgid "Malformed status line" +msgstr "Malformed status line" + +#: src/http.c:2013 +msgid "(no description)" +msgstr "(no description)" + +#: src/http.c:2076 +#, c-format +msgid "Location: %s%s\n" +msgstr "Location: %s%s\n" + +#: src/http.c:2077 src/http.c:2184 +msgid "unspecified" +msgstr "unspecified" + +#: src/http.c:2078 +msgid " [following]" +msgstr " [following]" + +#: src/http.c:2134 +msgid "" +"\n" +" The file is already fully retrieved; nothing to do.\n" +"\n" +msgstr "" +"\n" +" The file is already fully retrieved; nothing to do.\n" +"\n" + +#: src/http.c:2164 +msgid "Length: " +msgstr "Length: " + +#: src/http.c:2184 +msgid "ignored" +msgstr "ignored" + +#: src/http.c:2255 +#, c-format +msgid "Saving to: `%s'\n" +msgstr "Saving to: ‘%s’\n" + +#: src/http.c:2336 +msgid "Warning: wildcards not supported in HTTP.\n" +msgstr "Warning: wildcards not supported in HTTP.\n" + +#: src/http.c:2383 +msgid "Spider mode enabled. Check if remote file exists.\n" +msgstr "Spider mode enabled. Check if remote file exists.\n" + +#: src/http.c:2468 +#, c-format +msgid "Cannot write to `%s' (%s).\n" +msgstr "Cannot write to ‘%s’ (%s).\n" + +#: src/http.c:2477 +msgid "Unable to establish SSL connection.\n" +msgstr "Unable to establish SSL connection.\n" + +#: src/http.c:2485 +#, c-format +msgid "ERROR: Redirection (%d) without location.\n" +msgstr "ERROR: Redirection (%d) without location.\n" + +#: src/http.c:2531 +msgid "Remote file does not exist -- broken link!!!\n" +msgstr "Remote file does not exist -- broken link!!!\n" + +#: src/http.c:2536 +#, c-format +msgid "%s ERROR %d: %s.\n" +msgstr "%s ERROR %d: %s.\n" + +#: src/http.c:2552 +msgid "Last-modified header missing -- time-stamps turned off.\n" +msgstr "Last-modified header missing -- time-stamps turned off.\n" + +#: src/http.c:2560 +msgid "Last-modified header invalid -- time-stamp ignored.\n" +msgstr "Last-modified header invalid -- time-stamp ignored.\n" + +#: src/http.c:2590 +#, c-format +msgid "" +"Server file no newer than local file `%s' -- not retrieving.\n" +"\n" +msgstr "" +"Server file no newer than local file ‘%s’ -- not retrieving.\n" +"\n" + +#: src/http.c:2598 +#, c-format +msgid "The sizes do not match (local %s) -- retrieving.\n" +msgstr "The sizes do not match (local %s) -- retrieving.\n" + +#: src/http.c:2605 +msgid "Remote file is newer, retrieving.\n" +msgstr "Remote file is newer, retrieving.\n" + +#: src/http.c:2621 +msgid "" +"Remote file exists and could contain links to other resources -- " +"retrieving.\n" +"\n" +msgstr "" +"Remote file exists and could contain links to other resources -- " +"retrieving.\n" +"\n" + +#: src/http.c:2626 +msgid "" +"Remote file exists but does not contain any link -- not retrieving.\n" +"\n" +msgstr "" +"Remote file exists but does not contain any link -- not retrieving.\n" +"\n" + +#: src/http.c:2634 +msgid "" +"Remote file exists but recursion is disabled -- not retrieving.\n" +"\n" +msgstr "" +"Remote file exists but recursion is disabled -- not retrieving.\n" +"\n" + +#: src/http.c:2686 +#, c-format +msgid "" +"%s (%s) - `%s' saved [%s/%s]\n" +"\n" +msgstr "" +"%s (%s) - ‘%s’ saved [%s/%s]\n" +"\n" + +#: src/http.c:2741 +#, c-format +msgid "%s (%s) - Connection closed at byte %s. " +msgstr "%s (%s) - Connection closed at byte %s. " + +#: src/http.c:2756 +#, c-format +msgid "%s (%s) - Read error at byte %s (%s)." +msgstr "%s (%s) - Read error at byte %s (%s)." + +#: src/http.c:2765 +#, c-format +msgid "%s (%s) - Read error at byte %s/%s (%s). " +msgstr "%s (%s) - Read error at byte %s/%s (%s). " + +#: src/init.c:387 +#, c-format +msgid "%s: WGETRC points to %s, which doesn't exist.\n" +msgstr "%s: WGETRC points to %s, which doesn't exist.\n" + +#: src/init.c:450 src/netrc.c:267 +#, c-format +msgid "%s: Cannot read %s (%s).\n" +msgstr "%s: Cannot read %s (%s).\n" + +#: src/init.c:468 +#, c-format +msgid "%s: Error in %s at line %d.\n" +msgstr "%s: Error in %s at line %d.\n" + +#: src/init.c:474 +#, c-format +msgid "%s: Syntax error in %s at line %d.\n" +msgstr "%s: Syntax error in %s at line %d.\n" + +#: src/init.c:479 +#, c-format +msgid "%s: Unknown command `%s' in %s at line %d.\n" +msgstr "%s: Unknown command ‘%s’ in %s at line %d.\n" + +#: src/init.c:524 +#, c-format +msgid "%s: Warning: Both system and user wgetrc point to `%s'.\n" +msgstr "%s: Warning: Both system and user wgetrc point to ‘%s’.\n" + +#: src/init.c:677 +#, c-format +msgid "%s: Invalid --execute command `%s'\n" +msgstr "%s: Invalid --execute command ‘%s’\n" + +#: src/init.c:722 +#, c-format +msgid "%s: %s: Invalid boolean `%s'; use `on' or `off'.\n" +msgstr "%s: %s: Invalid boolean ‘%s’; use ‘on’ or ‘off’.\n" + +#: src/init.c:739 +#, c-format +msgid "%s: %s: Invalid number `%s'.\n" +msgstr "%s: %s: Invalid number ‘%s’.\n" + +#: src/init.c:970 src/init.c:989 +#, c-format +msgid "%s: %s: Invalid byte value `%s'\n" +msgstr "%s: %s: Invalid byte value ‘%s’\n" + +#: src/init.c:1014 +#, c-format +msgid "%s: %s: Invalid time period `%s'\n" +msgstr "%s: %s: Invalid time period ‘%s’\n" + +#: src/init.c:1068 src/init.c:1158 src/init.c:1261 src/init.c:1286 +#, c-format +msgid "%s: %s: Invalid value `%s'.\n" +msgstr "%s: %s: Invalid value ‘%s’.\n" + +#: src/init.c:1105 +#, c-format +msgid "%s: %s: Invalid header `%s'.\n" +msgstr "%s: %s: Invalid header ‘%s’.\n" + +#: src/init.c:1171 +#, c-format +msgid "%s: %s: Invalid progress type `%s'.\n" +msgstr "%s: %s: Invalid progress type ‘%s’.\n" + +#: src/init.c:1230 +#, c-format +msgid "" +"%s: %s: Invalid restriction `%s', use [unix|windows],[lowercase|uppercase]," +"[nocontrol].\n" +msgstr "" +"%s: %s: Invalid restriction ‘%s’, use [unix|windows],[lowercase|uppercase]," +"[nocontrol].\n" + +#: src/log.c:784 +#, c-format +msgid "" +"\n" +"%s received, redirecting output to `%s'.\n" +msgstr "" +"\n" +"%s received, redirecting output to ‘%s’.\n" + +#: src/log.c:794 +#, c-format +msgid "" +"\n" +"%s received.\n" +msgstr "" +"\n" +"%s received.\n" + +#: src/log.c:795 +#, c-format +msgid "%s: %s; disabling logging.\n" +msgstr "%s: %s; disabling logging.\n" + +#: src/main.c:358 +#, c-format +msgid "Usage: %s [OPTION]... [URL]...\n" +msgstr "Usage: %s [OPTION]... [URL]...\n" + +#: src/main.c:370 +msgid "" +"Mandatory arguments to long options are mandatory for short options too.\n" +"\n" +msgstr "" +"Mandatory arguments to long options are mandatory for short options too.\n" +"\n" + +#: src/main.c:372 +msgid "Startup:\n" +msgstr "Startup:\n" + +#: src/main.c:374 +msgid " -V, --version display the version of Wget and exit.\n" +msgstr " -V, --version display the version of Wget and exit.\n" + +#: src/main.c:376 +msgid " -h, --help print this help.\n" +msgstr " -h, --help print this help.\n" + +#: src/main.c:378 +msgid " -b, --background go to background after startup.\n" +msgstr " -b, --background go to background after startup.\n" + +#: src/main.c:380 +msgid " -e, --execute=COMMAND execute a `.wgetrc'-style command.\n" +msgstr " -e, --execute=COMMAND execute a ‘.wgetrc’-style command.\n" + +#: src/main.c:384 +msgid "Logging and input file:\n" +msgstr "Logging and input file:\n" + +#: src/main.c:386 +msgid " -o, --output-file=FILE log messages to FILE.\n" +msgstr " -o, --output-file=FILE log messages to FILE.\n" + +#: src/main.c:388 +msgid " -a, --append-output=FILE append messages to FILE.\n" +msgstr " -a, --append-output=FILE append messages to FILE.\n" + +#: src/main.c:391 +msgid " -d, --debug print lots of debugging information.\n" +msgstr " -d, --debug print lots of debugging information.\n" + +#: src/main.c:395 +msgid " --wdebug print Watt-32 debug output.\n" +msgstr " --wdebug print Watt-32 debug output.\n" + +#: src/main.c:398 +msgid " -q, --quiet quiet (no output).\n" +msgstr " -q, --quiet quiet (no output).\n" + +#: src/main.c:400 +msgid " -v, --verbose be verbose (this is the default).\n" +msgstr " -v, --verbose be verbose (this is the default).\n" + +#: src/main.c:402 +msgid "" +" -nv, --no-verbose turn off verboseness, without being quiet.\n" +msgstr "" +" -nv, --no-verbose turn off verboseness, without being quiet.\n" + +#: src/main.c:404 +msgid " -i, --input-file=FILE download URLs found in FILE.\n" +msgstr " -i, --input-file=FILE download URLs found in FILE.\n" + +#: src/main.c:406 +msgid " -F, --force-html treat input file as HTML.\n" +msgstr " -F, --force-html treat input file as HTML.\n" + +#: src/main.c:408 +msgid "" +" -B, --base=URL prepends URL to relative links in -F -i file.\n" +msgstr "" +" -B, --base=URL prepends URL to relative links in -F -i file.\n" + +#: src/main.c:412 +msgid "Download:\n" +msgstr "Download:\n" + +#: src/main.c:414 +msgid "" +" -t, --tries=NUMBER set number of retries to NUMBER (0 " +"unlimits).\n" +msgstr "" +" -t, --tries=NUMBER set number of retries to NUMBER (0 " +"unlimits).\n" + +#: src/main.c:416 +msgid " --retry-connrefused retry even if connection is refused.\n" +msgstr "" +" --retry-connrefused retry even if connection is refused.\n" + +#: src/main.c:418 +msgid " -O, --output-document=FILE write documents to FILE.\n" +msgstr " -O, --output-document=FILE write documents to FILE.\n" + +#: src/main.c:420 +msgid "" +" -nc, --no-clobber skip downloads that would download to\n" +" existing files.\n" +msgstr "" +" -nc, --no-clobber skip downloads that would download to\n" +" existing files.\n" + +#: src/main.c:423 +msgid "" +" -c, --continue resume getting a partially-downloaded " +"file.\n" +msgstr "" +" -c, --continue resume getting a partially-downloaded " +"file.\n" + +#: src/main.c:425 +msgid " --progress=TYPE select progress gauge type.\n" +msgstr " --progress=TYPE select progress gauge type.\n" + +#: src/main.c:427 +msgid "" +" -N, --timestamping don't re-retrieve files unless newer than\n" +" local.\n" +msgstr "" +" -N, --timestamping don't re-retrieve files unless newer than\n" +" local.\n" + +#: src/main.c:430 +msgid " -S, --server-response print server response.\n" +msgstr " -S, --server-response print server response.\n" + +#: src/main.c:432 +msgid " --spider don't download anything.\n" +msgstr " --spider don't download anything.\n" + +#: src/main.c:434 +msgid " -T, --timeout=SECONDS set all timeout values to SECONDS.\n" +msgstr " -T, --timeout=SECONDS set all timeout values to SECONDS.\n" + +#: src/main.c:436 +msgid " --dns-timeout=SECS set the DNS lookup timeout to SECS.\n" +msgstr " --dns-timeout=SECS set the DNS lookup timeout to SECS.\n" + +#: src/main.c:438 +msgid " --connect-timeout=SECS set the connect timeout to SECS.\n" +msgstr " --connect-timeout=SECS set the connect timeout to SECS.\n" + +#: src/main.c:440 +msgid " --read-timeout=SECS set the read timeout to SECS.\n" +msgstr " --read-timeout=SECS set the read timeout to SECS.\n" + +#: src/main.c:442 +msgid " -w, --wait=SECONDS wait SECONDS between retrievals.\n" +msgstr " -w, --wait=SECONDS wait SECONDS between retrievals.\n" + +#: src/main.c:444 +msgid "" +" --waitretry=SECONDS wait 1..SECONDS between retries of a " +"retrieval.\n" +msgstr "" +" --waitretry=SECONDS wait 1..SECONDS between retries of a " +"retrieval.\n" + +#: src/main.c:446 +msgid "" +" --random-wait wait from 0...2*WAIT secs between " +"retrievals.\n" +msgstr "" +" --random-wait wait from 0...2*WAIT secs between " +"retrievals.\n" + +#: src/main.c:448 +msgid " -Y, --proxy explicitly turn on proxy.\n" +msgstr " -Y, --proxy explicitly turn on proxy.\n" + +#: src/main.c:450 +msgid " --no-proxy explicitly turn off proxy.\n" +msgstr " --no-proxy explicitly turn off proxy.\n" + +#: src/main.c:452 +msgid " -Q, --quota=NUMBER set retrieval quota to NUMBER.\n" +msgstr " -Q, --quota=NUMBER set retrieval quota to NUMBER.\n" + +#: src/main.c:454 +msgid "" +" --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local " +"host.\n" +msgstr "" +" --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local " +"host.\n" + +#: src/main.c:456 +msgid " --limit-rate=RATE limit download rate to RATE.\n" +msgstr " --limit-rate=RATE limit download rate to RATE.\n" + +#: src/main.c:458 +msgid " --no-dns-cache disable caching DNS lookups.\n" +msgstr " --no-dns-cache disable caching DNS lookups.\n" + +#: src/main.c:460 +msgid "" +" --restrict-file-names=OS restrict chars in file names to ones OS " +"allows.\n" +msgstr "" +" --restrict-file-names=OS restrict chars in file names to ones OS " +"allows.\n" + +#: src/main.c:462 +msgid "" +" --ignore-case ignore case when matching files/" +"directories.\n" +msgstr "" +" --ignore-case ignore case when matching files/" +"directories.\n" + +#: src/main.c:465 +msgid " -4, --inet4-only connect only to IPv4 addresses.\n" +msgstr " -4, --inet4-only connect only to IPv4 addresses.\n" + +#: src/main.c:467 +msgid " -6, --inet6-only connect only to IPv6 addresses.\n" +msgstr " -6, --inet6-only connect only to IPv6 addresses.\n" + +#: src/main.c:469 +msgid "" +" --prefer-family=FAMILY connect first to addresses of specified " +"family,\n" +" one of IPv6, IPv4, or none.\n" +msgstr "" +" --prefer-family=FAMILY connect first to addresses of specified " +"family,\n" +" one of IPv6, IPv4, or none.\n" + +#: src/main.c:473 +msgid " --user=USER set both ftp and http user to USER.\n" +msgstr " --user=USER set both ftp and http user to USER.\n" + +#: src/main.c:475 +msgid "" +" --password=PASS set both ftp and http password to PASS.\n" +msgstr "" +" --password=PASS set both ftp and http password to PASS.\n" + +#: src/main.c:479 +msgid "Directories:\n" +msgstr "Directories:\n" + +#: src/main.c:481 +msgid " -nd, --no-directories don't create directories.\n" +msgstr " -nd, --no-directories don't create directories.\n" + +#: src/main.c:483 +msgid " -x, --force-directories force creation of directories.\n" +msgstr " -x, --force-directories force creation of directories.\n" + +#: src/main.c:485 +msgid " -nH, --no-host-directories don't create host directories.\n" +msgstr " -nH, --no-host-directories don't create host directories.\n" + +#: src/main.c:487 +msgid " --protocol-directories use protocol name in directories.\n" +msgstr " --protocol-directories use protocol name in directories.\n" + +#: src/main.c:489 +msgid " -P, --directory-prefix=PREFIX save files to PREFIX/...\n" +msgstr " -P, --directory-prefix=PREFIX save files to PREFIX/...\n" + +#: src/main.c:491 +msgid "" +" --cut-dirs=NUMBER ignore NUMBER remote directory " +"components.\n" +msgstr "" +" --cut-dirs=NUMBER ignore NUMBER remote directory " +"components.\n" + +#: src/main.c:495 +msgid "HTTP options:\n" +msgstr "HTTP options:\n" + +#: src/main.c:497 +msgid " --http-user=USER set http user to USER.\n" +msgstr " --http-user=USER set http user to USER.\n" + +#: src/main.c:499 +msgid " --http-password=PASS set http password to PASS.\n" +msgstr " --http-password=PASS set http password to PASS.\n" + +#: src/main.c:501 +msgid " --no-cache disallow server-cached data.\n" +msgstr " --no-cache disallow server-cached data.\n" + +#: src/main.c:503 +msgid "" +" -E, --html-extension save HTML documents with `.html' extension.\n" +msgstr "" +" -E, --html-extension save HTML documents with ‘.html’ extension.\n" + +#: src/main.c:505 +msgid " --ignore-length ignore `Content-Length' header field.\n" +msgstr " --ignore-length ignore ‘Content-Length’ header field.\n" + +#: src/main.c:507 +msgid " --header=STRING insert STRING among the headers.\n" +msgstr " --header=STRING insert STRING among the headers.\n" + +#: src/main.c:509 +msgid " --max-redirect maximum redirections allowed per page.\n" +msgstr "" +" --max-redirect maximum redirections allowed per page.\n" + +#: src/main.c:511 +msgid " --proxy-user=USER set USER as proxy username.\n" +msgstr " --proxy-user=USER set USER as proxy username.\n" + +#: src/main.c:513 +msgid " --proxy-password=PASS set PASS as proxy password.\n" +msgstr " --proxy-password=PASS set PASS as proxy password.\n" + +#: src/main.c:515 +msgid "" +" --referer=URL include `Referer: URL' header in HTTP " +"request.\n" +msgstr "" +" --referer=URL include ‘Referer: URL’ header in HTTP " +"request.\n" + +#: src/main.c:517 +msgid " --save-headers save the HTTP headers to file.\n" +msgstr " --save-headers save the HTTP headers to file.\n" + +#: src/main.c:519 +msgid "" +" -U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION.\n" +msgstr "" +" -U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION.\n" + +#: src/main.c:521 +msgid "" +" --no-http-keep-alive disable HTTP keep-alive (persistent " +"connections).\n" +msgstr "" +" --no-http-keep-alive disable HTTP keep-alive (persistent " +"connections).\n" + +#: src/main.c:523 +msgid " --no-cookies don't use cookies.\n" +msgstr " --no-cookies don't use cookies.\n" + +#: src/main.c:525 +msgid " --load-cookies=FILE load cookies from FILE before session.\n" +msgstr "" +" --load-cookies=FILE load cookies from FILE before session.\n" + +#: src/main.c:527 +msgid " --save-cookies=FILE save cookies to FILE after session.\n" +msgstr " --save-cookies=FILE save cookies to FILE after session.\n" + +#: src/main.c:529 +msgid "" +" --keep-session-cookies load and save session (non-permanent) " +"cookies.\n" +msgstr "" +" --keep-session-cookies load and save session (non-permanent) " +"cookies.\n" + +#: src/main.c:531 +msgid "" +" --post-data=STRING use the POST method; send STRING as the " +"data.\n" +msgstr "" +" --post-data=STRING use the POST method; send STRING as the " +"data.\n" + +#: src/main.c:533 +msgid "" +" --post-file=FILE use the POST method; send contents of FILE.\n" +msgstr "" +" --post-file=FILE use the POST method; send contents of FILE.\n" + +#: src/main.c:535 +msgid "" +" --no-content-disposition don't honor Content-Disposition header.\n" +msgstr "" +" --no-content-disposition don't honor Content-Disposition header.\n" + +#: src/main.c:540 +msgid "HTTPS (SSL/TLS) options:\n" +msgstr "HTTPS (SSL/TLS) options:\n" + +#: src/main.c:542 +msgid "" +" --secure-protocol=PR choose secure protocol, one of auto, SSLv2,\n" +" SSLv3, and TLSv1.\n" +msgstr "" +" --secure-protocol=PR choose secure protocol, one of auto, SSLv2,\n" +" SSLv3, and TLSv1.\n" + +#: src/main.c:545 +msgid "" +" --no-check-certificate don't validate the server's certificate.\n" +msgstr "" +" --no-check-certificate don't validate the server's certificate.\n" + +#: src/main.c:547 +msgid " --certificate=FILE client certificate file.\n" +msgstr " --certificate=FILE client certificate file.\n" + +#: src/main.c:549 +msgid " --certificate-type=TYPE client certificate type, PEM or DER.\n" +msgstr " --certificate-type=TYPE client certificate type, PEM or DER.\n" + +#: src/main.c:551 +msgid " --private-key=FILE private key file.\n" +msgstr " --private-key=FILE private key file.\n" + +#: src/main.c:553 +msgid " --private-key-type=TYPE private key type, PEM or DER.\n" +msgstr " --private-key-type=TYPE private key type, PEM or DER.\n" + +#: src/main.c:555 +msgid " --ca-certificate=FILE file with the bundle of CA's.\n" +msgstr " --ca-certificate=FILE file with the bundle of CA's.\n" + +#: src/main.c:557 +msgid "" +" --ca-directory=DIR directory where hash list of CA's is " +"stored.\n" +msgstr "" +" --ca-directory=DIR directory where hash list of CA's is " +"stored.\n" + +#: src/main.c:559 +msgid "" +" --random-file=FILE file with random data for seeding the SSL " +"PRNG.\n" +msgstr "" +" --random-file=FILE file with random data for seeding the SSL " +"PRNG.\n" + +#: src/main.c:561 +msgid "" +" --egd-file=FILE file naming the EGD socket with random " +"data.\n" +msgstr "" +" --egd-file=FILE file naming the EGD socket with random " +"data.\n" + +#: src/main.c:566 +msgid "FTP options:\n" +msgstr "FTP options:\n" + +#: src/main.c:568 +msgid " --ftp-user=USER set ftp user to USER.\n" +msgstr " --ftp-user=USER set ftp user to USER.\n" + +#: src/main.c:570 +msgid " --ftp-password=PASS set ftp password to PASS.\n" +msgstr " --ftp-password=PASS set ftp password to PASS.\n" + +#: src/main.c:572 +msgid " --no-remove-listing don't remove `.listing' files.\n" +msgstr " --no-remove-listing don't remove ‘.listing’ files.\n" + +#: src/main.c:574 +msgid " --no-glob turn off FTP file name globbing.\n" +msgstr " --no-glob turn off FTP file name globbing.\n" + +#: src/main.c:576 +msgid " --no-passive-ftp disable the \"passive\" transfer mode.\n" +msgstr " --no-passive-ftp disable the “passive” transfer mode.\n" + +#: src/main.c:578 +msgid "" +" --retr-symlinks when recursing, get linked-to files (not " +"dir).\n" +msgstr "" +" --retr-symlinks when recursing, get linked-to files (not " +"dir).\n" + +#: src/main.c:580 +msgid " --preserve-permissions preserve remote file permissions.\n" +msgstr " --preserve-permissions preserve remote file permissions.\n" + +#: src/main.c:584 +msgid "Recursive download:\n" +msgstr "Recursive download:\n" + +#: src/main.c:586 +msgid " -r, --recursive specify recursive download.\n" +msgstr " -r, --recursive specify recursive download.\n" + +#: src/main.c:588 +msgid "" +" -l, --level=NUMBER maximum recursion depth (inf or 0 for " +"infinite).\n" +msgstr "" +" -l, --level=NUMBER maximum recursion depth (inf or 0 for " +"infinite).\n" + +#: src/main.c:590 +msgid "" +" --delete-after delete files locally after downloading them.\n" +msgstr "" +" --delete-after delete files locally after downloading them.\n" + +#: src/main.c:592 +msgid "" +" -k, --convert-links make links in downloaded HTML point to local " +"files.\n" +msgstr "" +" -k, --convert-links make links in downloaded HTML point to local " +"files.\n" + +#: src/main.c:594 +msgid "" +" -K, --backup-converted before converting file X, back up as X.orig.\n" +msgstr "" +" -K, --backup-converted before converting file X, back up as X.orig.\n" + +#: src/main.c:596 +msgid "" +" -m, --mirror shortcut for -N -r -l inf --no-remove-listing.\n" +msgstr "" +" -m, --mirror shortcut for -N -r -l inf --no-remove-listing.\n" + +#: src/main.c:598 +msgid "" +" -p, --page-requisites get all images, etc. needed to display HTML " +"page.\n" +msgstr "" +" -p, --page-requisites get all images, etc. needed to display HTML " +"page.\n" + +#: src/main.c:600 +msgid "" +" --strict-comments turn on strict (SGML) handling of HTML " +"comments.\n" +msgstr "" +" --strict-comments turn on strict (SGML) handling of HTML " +"comments.\n" + +#: src/main.c:604 +msgid "Recursive accept/reject:\n" +msgstr "Recursive accept/reject:\n" + +#: src/main.c:606 +msgid "" +" -A, --accept=LIST comma-separated list of accepted " +"extensions.\n" +msgstr "" +" -A, --accept=LIST comma-separated list of accepted " +"extensions.\n" + +#: src/main.c:608 +msgid "" +" -R, --reject=LIST comma-separated list of rejected " +"extensions.\n" +msgstr "" +" -R, --reject=LIST comma-separated list of rejected " +"extensions.\n" + +#: src/main.c:610 +msgid "" +" -D, --domains=LIST comma-separated list of accepted " +"domains.\n" +msgstr "" +" -D, --domains=LIST comma-separated list of accepted " +"domains.\n" + +#: src/main.c:612 +msgid "" +" --exclude-domains=LIST comma-separated list of rejected " +"domains.\n" +msgstr "" +" --exclude-domains=LIST comma-separated list of rejected " +"domains.\n" + +#: src/main.c:614 +msgid "" +" --follow-ftp follow FTP links from HTML documents.\n" +msgstr "" +" --follow-ftp follow FTP links from HTML documents.\n" + +#: src/main.c:616 +msgid "" +" --follow-tags=LIST comma-separated list of followed HTML " +"tags.\n" +msgstr "" +" --follow-tags=LIST comma-separated list of followed HTML " +"tags.\n" + +#: src/main.c:618 +msgid "" +" --ignore-tags=LIST comma-separated list of ignored HTML " +"tags.\n" +msgstr "" +" --ignore-tags=LIST comma-separated list of ignored HTML " +"tags.\n" + +#: src/main.c:620 +msgid "" +" -H, --span-hosts go to foreign hosts when recursive.\n" +msgstr "" +" -H, --span-hosts go to foreign hosts when recursive.\n" + +#: src/main.c:622 +msgid " -L, --relative follow relative links only.\n" +msgstr " -L, --relative follow relative links only.\n" + +#: src/main.c:624 +msgid " -I, --include-directories=LIST list of allowed directories.\n" +msgstr " -I, --include-directories=LIST list of allowed directories.\n" + +#: src/main.c:626 +msgid " -X, --exclude-directories=LIST list of excluded directories.\n" +msgstr " -X, --exclude-directories=LIST list of excluded directories.\n" + +#: src/main.c:628 +msgid "" +" -np, --no-parent don't ascend to the parent directory.\n" +msgstr "" +" -np, --no-parent don't ascend to the parent directory.\n" + +#: src/main.c:632 +msgid "Mail bug reports and suggestions to .\n" +msgstr "Mail bug reports and suggestions to .\n" + +#: src/main.c:637 +#, c-format +msgid "GNU Wget %s, a non-interactive network retriever.\n" +msgstr "GNU Wget %s, a non-interactive network retriever.\n" + +#: src/main.c:677 +msgid "Copyright (C) 2007 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2007 Free Software Foundation, Inc.\n" + +#: src/main.c:679 +msgid "" +"License GPLv3+: GNU GPL version 3 or later\n" +".\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"License GPLv3+: GNU GPL version 3 or later\n" +".\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" + +#: src/main.c:684 +msgid "" +"\n" +"Originally written by Hrvoje Niksic .\n" +msgstr "" +"\n" +"Originally written by Hrvoje Niksic .\n" + +#: src/main.c:686 +msgid "Currently maintained by Micah Cowan .\n" +msgstr "Currently maintained by Micah Cowan .\n" + +#: src/main.c:733 src/main.c:802 src/main.c:899 +#, c-format +msgid "Try `%s --help' for more options.\n" +msgstr "Try ‘%s --help’ for more options.\n" + +#: src/main.c:799 +#, c-format +msgid "%s: illegal option -- `-n%c'\n" +msgstr "%s: illegal option -- ‘-n%c’\n" + +#: src/main.c:854 +#, c-format +msgid "Can't be verbose and quiet at the same time.\n" +msgstr "Can't be verbose and quiet at the same time.\n" + +#: src/main.c:860 +#, c-format +msgid "Can't timestamp and not clobber old files at the same time.\n" +msgstr "Can't timestamp and not clobber old files at the same time.\n" + +#: src/main.c:868 +#, c-format +msgid "Cannot specify both --inet4-only and --inet6-only.\n" +msgstr "Cannot specify both --inet4-only and --inet6-only.\n" + +#: src/main.c:878 +#, c-format +msgid "Cannot specify -r, -p or -N if -O is given.\n" +msgstr "Cannot specify -r, -p or -N if -O is given.\n" + +#: src/main.c:886 +#, c-format +msgid "Cannot specify both -k and -O if multiple URLs are given.\n" +msgstr "Cannot specify both -k and -O if multiple URLs are given.\n" + +#: src/main.c:894 +#, c-format +msgid "%s: missing URL\n" +msgstr "%s: missing URL\n" + +#: src/main.c:1020 +#, c-format +msgid "No URLs found in %s.\n" +msgstr "No URLs found in %s.\n" + +#: src/main.c:1038 +#, c-format +msgid "" +"FINISHED --%s--\n" +"Downloaded: %d files, %s in %s (%s)\n" +msgstr "" +"FINISHED --%s--\n" +"Downloaded: %d files, %s in %s (%s)\n" + +#: src/main.c:1047 +#, c-format +msgid "Download quota of %s EXCEEDED!\n" +msgstr "Download quota of %s EXCEEDED!\n" + +#: src/mswindows.c:97 +#, c-format +msgid "Continuing in background.\n" +msgstr "Continuing in background.\n" + +#: src/mswindows.c:290 +#, c-format +msgid "Continuing in background, pid %lu.\n" +msgstr "Continuing in background, pid %lu.\n" + +#: src/mswindows.c:292 src/utils.c:330 +#, c-format +msgid "Output will be written to `%s'.\n" +msgstr "Output will be written to ‘%s’.\n" + +#: src/mswindows.c:460 src/mswindows.c:467 +#, c-format +msgid "%s: Couldn't find usable socket driver.\n" +msgstr "%s: Couldn't find usable socket driver.\n" + +#: src/netrc.c:375 +#, c-format +msgid "%s: %s:%d: warning: \"%s\" token appears before any machine name\n" +msgstr "%s: %s:%d: warning: “%s” token appears before any machine name\n" + +#: src/netrc.c:406 +#, c-format +msgid "%s: %s:%d: unknown token \"%s\"\n" +msgstr "%s: %s:%d: unknown token “%s”\n" + +#: src/netrc.c:470 +#, c-format +msgid "Usage: %s NETRC [HOSTNAME]\n" +msgstr "Usage: %s NETRC [HOSTNAME]\n" + +#: src/netrc.c:480 +#, c-format +msgid "%s: cannot stat %s: %s\n" +msgstr "%s: cannot stat %s: %s\n" + +#: src/openssl.c:113 +msgid "WARNING: using a weak random seed.\n" +msgstr "WARNING: using a weak random seed.\n" + +#: src/openssl.c:173 +msgid "Could not seed PRNG; consider using --random-file.\n" +msgstr "Could not seed PRNG; consider using --random-file.\n" + +#: src/openssl.c:488 +msgid "ERROR" +msgstr "ERROR" + +#: src/openssl.c:488 +msgid "WARNING" +msgstr "WARNING" + +#: src/openssl.c:497 +#, c-format +msgid "%s: No certificate presented by %s.\n" +msgstr "%s: No certificate presented by %s.\n" + +#: src/openssl.c:518 +#, c-format +msgid "%s: cannot verify %s's certificate, issued by `%s':\n" +msgstr "%s: cannot verify %s's certificate, issued by ‘%s’:\n" + +#: src/openssl.c:526 +msgid " Unable to locally verify the issuer's authority.\n" +msgstr " Unable to locally verify the issuer's authority.\n" + +#: src/openssl.c:530 +msgid " Self-signed certificate encountered.\n" +msgstr " Self-signed certificate encountered.\n" + +#: src/openssl.c:533 +msgid " Issued certificate not yet valid.\n" +msgstr " Issued certificate not yet valid.\n" + +#: src/openssl.c:536 +msgid " Issued certificate has expired.\n" +msgstr " Issued certificate has expired.\n" + +#: src/openssl.c:568 +#, c-format +msgid "" +"%s: certificate common name `%s' doesn't match requested host name `%s'.\n" +msgstr "" +"%s: certificate common name ‘%s’ doesn't match requested host name ‘%s’.\n" + +#: src/openssl.c:581 +#, c-format +msgid "To connect to %s insecurely, use `--no-check-certificate'.\n" +msgstr "To connect to %s insecurely, use ‘--no-check-certificate’.\n" + +#: src/progress.c:239 +#, c-format +msgid "" +"\n" +"%*s[ skipping %sK ]" +msgstr "" +"\n" +"%*s[ skipping %sK ]" + +#: src/progress.c:453 +#, c-format +msgid "Invalid dot style specification `%s'; leaving unchanged.\n" +msgstr "Invalid dot style specification ‘%s’; leaving unchanged.\n" + +#: src/progress.c:947 +#, c-format +msgid " eta %s" +msgstr " eta %s" + +#: src/progress.c:962 +msgid " in " +msgstr " in " + +#: src/ptimer.c:160 +#, c-format +msgid "Cannot get REALTIME clock frequency: %s\n" +msgstr "Cannot get REALTIME clock frequency: %s\n" + +#: src/recur.c:379 +#, c-format +msgid "Removing %s since it should be rejected.\n" +msgstr "Removing %s since it should be rejected.\n" + +#: src/res.c:392 +#, c-format +msgid "Cannot open %s: %s" +msgstr "Cannot open %s: %s" + +#: src/res.c:544 +msgid "Loading robots.txt; please ignore errors.\n" +msgstr "Loading robots.txt; please ignore errors.\n" + +#: src/retr.c:652 +#, c-format +msgid "Error parsing proxy URL %s: %s.\n" +msgstr "Error parsing proxy URL %s: %s.\n" + +#: src/retr.c:660 +#, c-format +msgid "Error in proxy URL %s: Must be HTTP.\n" +msgstr "Error in proxy URL %s: Must be HTTP.\n" + +#: src/retr.c:746 +#, c-format +msgid "%d redirections exceeded.\n" +msgstr "%d redirections exceeded.\n" + +#: src/retr.c:881 +msgid "" +"Giving up.\n" +"\n" +msgstr "" +"Giving up.\n" +"\n" + +#: src/retr.c:881 +msgid "" +"Retrying.\n" +"\n" +msgstr "" +"Retrying.\n" +"\n" + +#: src/spider.c:74 +msgid "" +"Found no broken links.\n" +"\n" +msgstr "" +"Found no broken links.\n" +"\n" + +#: src/spider.c:81 +#, c-format +msgid "" +"Found %d broken link.\n" +"\n" +msgid_plural "" +"Found %d broken links.\n" +"\n" +msgstr[0] "" +"Found %d broken link.\n" +"\n" +msgstr[1] "" +"Found %d broken links.\n" +"\n" + +#: src/spider.c:91 +#, c-format +msgid "%s\n" +msgstr "%s\n" + +#: src/url.c:620 +msgid "No error" +msgstr "No error" + +#: src/url.c:622 +msgid "Unsupported scheme" +msgstr "Unsupported scheme" + +#: src/url.c:624 +msgid "Invalid host name" +msgstr "Invalid host name" + +#: src/url.c:626 +msgid "Bad port number" +msgstr "Bad port number" + +#: src/url.c:628 +msgid "Invalid user name" +msgstr "Invalid user name" + +#: src/url.c:630 +msgid "Unterminated IPv6 numeric address" +msgstr "Unterminated IPv6 numeric address" + +#: src/url.c:632 +msgid "IPv6 addresses not supported" +msgstr "IPv6 addresses not supported" + +#: src/url.c:634 +msgid "Invalid IPv6 numeric address" +msgstr "Invalid IPv6 numeric address" + +#: src/utils.c:328 +#, c-format +msgid "Continuing in background, pid %d.\n" +msgstr "Continuing in background, pid %d.\n" + +#: src/utils.c:376 +#, c-format +msgid "Failed to unlink symlink `%s': %s\n" +msgstr "Failed to unlink symlink ‘%s’: %s\n" + +#: src/xmalloc.c:63 +#, c-format +msgid "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n" +msgstr "%s: %s: Failed to allocate %ld bytes; memory exhausted.\n" diff --git a/po/insert-header.sin b/po/insert-header.sin new file mode 100644 index 00000000..b26de01f --- /dev/null +++ b/po/insert-header.sin @@ -0,0 +1,23 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/quot.sed b/po/quot.sed new file mode 100644 index 00000000..0122c463 --- /dev/null +++ b/po/quot.sed @@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin new file mode 100644 index 00000000..2436c49e --- /dev/null +++ b/po/remove-potcdate.sin @@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/src/ChangeLog b/src/ChangeLog index 6d1733fd..76558534 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -3,6 +3,17 @@ * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer needed. Hence simply the prototype. Free 'exec_name' at exit. +2007-10-09 Micah Cowan + + * gettext.h: Imported from /usr/share/gettext, fuller handling + of --disable-nls. + * wget.h: Remove logic for handling lack of NLS (now in + gettext.h). + * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS. + * Makefile.am: added @LIBINTL@ to LIBS (though it probably + belongs in LDADD, along with everything else currently assigned + to LIBS). + 2007-10-08 Micah Cowan * http.c (http_loop): Add send_head_first conditional back @@ -16,6 +27,8 @@ * http.c (http_loop): We've got_name if content_disposition support isn't on; make sure we continue properly in that case, even though we're not sending HEAD. + * Makefile.in: Removed, replaced by Makefile.am. + * Makefile.am: Converted from Makefile.in. 2007-10-02 Gisle Vanem diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 00000000..dcc19c81 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,66 @@ +# Makefile for `wget' utility +# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +# 2004, 2005, 2006, 2007 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 3 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 Wget. If not, see . + +# In addition, as a special exception, the Free Software Foundation +# gives permission to link the code of its release of Wget with the +# OpenSSL project's "OpenSSL" library (or with modified versions of it +# that use the same license as the "OpenSSL" library), and distribute +# the linked executables. You must obey the GNU General Public License +# in all respects for all of the code used other than "OpenSSL". If you +# modify this file, you may extend this exception to your version of the +# file, but you are not obligated to do so. If you do not wish to do +# so, delete this exception statement from your version. + +# +# Version: @VERSION@ +# + +# The following line is losing on some versions of make! +DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\" -DLOCALEDIR=\"$(localedir)\" +LIBS = @LIBS@ @LIBSSL@ @LIBGNUTLS@ @LIBINTL@ + +bin_PROGRAMS = wget +wget_SOURCES = cmpt.c connect.c convert.c cookies.c ftp.c ftp-basic.c \ + ftp-ls.c hash.c host.c html-parse.c html-url.c http.c \ + init.c log.c main.c netrc.c progress.c ptimer.c recur.c \ + res.c retr.c safe-ctype.c snprintf.c spider.c url.c \ + utils.c version.c xmalloc.c \ + config-post.h connect.h convert.h cookies.h \ + ftp.h gen-md5.h getopt.h gnu-md5.h hash.h host.h html-parse.h \ + http.h http-ntlm.h init.h log.h mswindows.h netrc.h \ + options.h progress.h ptimer.h recur.h res.h retr.h safe-ctype.h \ + spider.h ssl.h sysdep.h url.h utils.h wget.h xmalloc.h +EXTRA_wget_SOURCES = mswindows.c +LDADD = $(ALLOCA) $(LIBOBJS) + +# version.c's not really _phony_, but it does need to be generated each run. +.PHONY: version.c +version.c: hg-id + printf '%s' 'const char *version_string = "@VERSION@' > $@ + -HG_ID=$$(cat hg-id); [ "$$HG_ID" ] && printf '%s' " ($${HG_ID})" >> $@ + printf '%s\n' '";' >> $@ + +.INTERMEDIATE: hg-id +hg-id: + -( hg id | cut -f 1 -d ' ' ) 2>/dev/null > $@ + +check_LIBRARIES = libunittest.a +libunittest_a_SOURCES = $(wget_SOURCES) test.c test.h +libunittest_a_CPPFLAGS = -DTESTING +libunittest_a_LIBADD = $(ALLOCA) $(LIBOBJS) + +CLEANFILES = *~ *.bak core core.[0-9]* diff --git a/src/Makefile.in b/src/Makefile.in deleted file mode 100644 index 24bc1cba..00000000 --- a/src/Makefile.in +++ /dev/null @@ -1,143 +0,0 @@ -# Makefile for `wget' utility -# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -# 2004, 2005, 2006, 2007 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 3 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 Wget. If not, see . - -# In addition, as a special exception, the Free Software Foundation -# gives permission to link the code of its release of Wget with the -# OpenSSL project's "OpenSSL" library (or with modified versions of it -# that use the same license as the "OpenSSL" library), and distribute -# the linked executables. You must obey the GNU General Public License -# in all respects for all of the code used other than "OpenSSL". If you -# modify this file, you may extend this exception to your version of the -# file, but you are not obligated to do so. If you do not wish to do -# so, delete this exception statement from your version. - -# -# Version: @VERSION@ -# - -SHELL = /bin/sh - -top_builddir = .. - -top_srcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -sysconfdir = @sysconfdir@ -datadir = @datadir@ -localedir = $(datadir)/locale - -DESTDIR = - -CC = @CC@ -CPPFLAGS = @CPPFLAGS@ -# The following line is losing on some versions of make! -DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\" -DLOCALEDIR=\"$(localedir)\" -CFLAGS = @CFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ @LIBSSL@ @LIBGNUTLS@ -exeext = @EXEEXT@ - -INCLUDES = -I. -I$(srcdir) - -COMPILE = $(CC) $(INCLUDES) $(CPPFLAGS) $(DEFS) $(CFLAGS) -LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -RM = rm -f -ETAGS = etags - -# Conditional compiles -ALLOCA = @ALLOCA@ -MD5_OBJ = @MD5_OBJ@ -OPIE_OBJ = @OPIE_OBJ@ -NTLM_OBJ = @NTLM_OBJ@ -SSL_OBJ = @SSL_OBJ@ -GETOPT_OBJ = @GETOPT_OBJ@ - -OBJ = $(ALLOCA) cmpt.o connect.o convert.o cookies.o \ - ftp.o ftp-basic.o ftp-ls.o $(OPIE_OBJ) $(GETOPT_OBJ) hash.o \ - host.o html-parse.o html-url.o http.o $(NTLM_OBJ) init.o \ - log.o main.o $(MD5_OBJ) netrc.o progress.o ptimer.o recur.o \ - res.o retr.o safe-ctype.o snprintf.o spider.o $(SSL_OBJ) \ - url.o utils.o version.o xmalloc.o - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(COMPILE) -c $< - -# Dependencies for building - -wget$(exeext): $(OBJ) - $(LINK) $(OBJ) $(LIBS) - -# We make object files depend on every header. Rather than attempt to -# track dependencies, everything gets recompiled when a header -# changes. With a program of Wget's size this doesn't waste much -# time, and it's a lot safer than attempting to get all the -# dependencies right. - -$(OBJ): config-post.h config.h connect.h convert.h cookies.h ftp.h \ - gen-md5.h getopt.h gnu-md5.h hash.h host.h html-parse.h \ - http-ntlm.h init.h log.h mswindows.h netrc.h options.h \ - progress.h ptimer.h recur.h res.h retr.h safe-ctype.h \ - spider.h ssl.h sysdep.h url.h utils.h wget.h xmalloc.h - -# -# Dependencies for installing -# - -install: install.bin - -uninstall: uninstall.bin - -install.bin: wget$(exeext) - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) wget$(exeext) $(DESTDIR)$(bindir)/wget$(exeext) - -uninstall.bin: - $(RM) $(DESTDIR)$(bindir)/wget$(exeext) - -# -# Dependencies for cleanup -# - -clean: - $(RM) *.o wget$(exeext) *~ *.bak core core.[0-9]* - -distclean: clean - $(RM) Makefile config.h - -realclean: distclean - $(RM) TAGS config.h.in - -# -# Dependencies for maintenance -# - -subdir = src - -Makefile: Makefile.in ../config.status - cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status - -TAGS: *.c *.h - -$(ETAGS) *.c *.h diff --git a/src/gettext.h b/src/gettext.h new file mode 100644 index 00000000..8874d9ba --- /dev/null +++ b/src/gettext.h @@ -0,0 +1,265 @@ +/* Convenience header for conditional use of GNU . + Copyright (C) 1995-1998, 2000-2002, 2004-2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. */ + +#ifndef _LIBGETTEXT_H +#define _LIBGETTEXT_H 1 + +/* NLS can be disabled through the configure --disable-nls option. */ +#if ENABLE_NLS + +/* Get declarations of GNU message catalog functions. */ +# include + +/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by + the gettext() and ngettext() macros. This is an alternative to calling + textdomain(), and is useful for libraries. */ +# ifdef DEFAULT_TEXT_DOMAIN +# undef gettext +# define gettext(Msgid) \ + dgettext (DEFAULT_TEXT_DOMAIN, Msgid) +# undef ngettext +# define ngettext(Msgid1, Msgid2, N) \ + dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) +# endif + +#else + +/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which + chokes if dcgettext is defined as a macro. So include it now, to make + later inclusions of a NOP. We don't include + as well because people using "gettext.h" will not include , + and also including would fail on SunOS 4, whereas + is OK. */ +#if defined(__sun) +# include +#endif + +/* Many header files from the libstdc++ coming with g++ 3.3 or newer include + , which chokes if dcgettext is defined as a macro. So include + it now, to make later inclusions of a NOP. */ +#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) +# include +# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H +# include +# endif +#endif + +/* Disabled NLS. + The casts to 'const char *' serve the purpose of producing warnings + for invalid uses of the value returned from these functions. + On pre-ANSI systems without 'const', the config.h file is supposed to + contain "#define const". */ +# define gettext(Msgid) ((const char *) (Msgid)) +# define dgettext(Domainname, Msgid) ((const char *) (Msgid)) +# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid)) +# define ngettext(Msgid1, Msgid2, N) \ + ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) +# define dngettext(Domainname, Msgid1, Msgid2, N) \ + ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) +# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ + ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) +# define textdomain(Domainname) ((const char *) (Domainname)) +# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) +# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset)) + +#endif + +/* A pseudo function call that serves as a marker for the automated + extraction of messages, but does not call gettext(). The run-time + translation is done at a different place in the code. + The argument, String, should be a literal string. Concatenated strings + and other string expressions won't work. + The macro's expansion is not parenthesized, so that it is suitable as + initializer for static 'char[]' or 'const char[]' variables. */ +#define gettext_noop(String) String + +/* The separator between msgctxt and msgid in a .mo file. */ +#define GETTEXT_CONTEXT_GLUE "\004" + +/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a + MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be + short and rarely need to change. + The letter 'p' stands for 'particular' or 'special'. */ +#ifdef DEFAULT_TEXT_DOMAIN +# define pgettext(Msgctxt, Msgid) \ + pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#else +# define pgettext(Msgctxt, Msgid) \ + pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#endif +#define dpgettext(Domainname, Msgctxt, Msgid) \ + pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ + pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) +#ifdef DEFAULT_TEXT_DOMAIN +# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#else +# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#endif +#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ + npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +pgettext_aux (const char *domain, + const char *msg_ctxt_id, const char *msgid, + int category) +{ + const char *translation = dcgettext (domain, msg_ctxt_id, category); + if (translation == msg_ctxt_id) + return msgid; + else + return translation; +} + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +npgettext_aux (const char *domain, + const char *msg_ctxt_id, const char *msgid, + const char *msgid_plural, unsigned long int n, + int category) +{ + const char *translation = + dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); + if (translation == msg_ctxt_id || translation == msgid_plural) + return (n == 1 ? msgid : msgid_plural); + else + return translation; +} + +/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID + can be arbitrary expressions. But for string literals these macros are + less efficient than those above. */ + +#include + +#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \ + (__GNUC__ >= 3 || __GNUG__ >= 2 /* || __STDC_VERSION__ >= 199901L */ ) + +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS +#include +#endif + +#define pgettext_expr(Msgctxt, Msgid) \ + dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) +#define dpgettext_expr(Domainname, Msgctxt, Msgid) \ + dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +dcpgettext_expr (const char *domain, + const char *msgctxt, const char *msgid, + int category) +{ + size_t msgctxt_len = strlen (msgctxt) + 1; + size_t msgid_len = strlen (msgid) + 1; + const char *translation; +#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + char msg_ctxt_id[msgctxt_len + msgid_len]; +#else + char buf[1024]; + char *msg_ctxt_id = + (msgctxt_len + msgid_len <= sizeof (buf) + ? buf + : (char *) malloc (msgctxt_len + msgid_len)); + if (msg_ctxt_id != NULL) +#endif + { + memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); + msg_ctxt_id[msgctxt_len - 1] = '\004'; + memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); + translation = dcgettext (domain, msg_ctxt_id, category); +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + if (msg_ctxt_id != buf) + free (msg_ctxt_id); +#endif + if (translation != msg_ctxt_id) + return translation; + } + return msgid; +} + +#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ + dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) +#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ + dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +dcnpgettext_expr (const char *domain, + const char *msgctxt, const char *msgid, + const char *msgid_plural, unsigned long int n, + int category) +{ + size_t msgctxt_len = strlen (msgctxt) + 1; + size_t msgid_len = strlen (msgid) + 1; + const char *translation; +#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + char msg_ctxt_id[msgctxt_len + msgid_len]; +#else + char buf[1024]; + char *msg_ctxt_id = + (msgctxt_len + msgid_len <= sizeof (buf) + ? buf + : (char *) malloc (msgctxt_len + msgid_len)); + if (msg_ctxt_id != NULL) +#endif + { + memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); + msg_ctxt_id[msgctxt_len - 1] = '\004'; + memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); + translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + if (msg_ctxt_id != buf) + free (msg_ctxt_id); +#endif + if (!(translation == msg_ctxt_id || translation == msgid_plural)) + return translation; + } + return (n == 1 ? msgid : msgid_plural); +} + +#endif /* _LIBGETTEXT_H */ diff --git a/src/main.c b/src/main.c index f60d0c0a..42389839 100644 --- a/src/main.c +++ b/src/main.c @@ -36,7 +36,7 @@ so, delete this exception statement from your version. */ #endif /* HAVE_UNISTD_H */ #include #include -#ifdef HAVE_NLS +#ifdef ENABLE_NLS # include #endif #include @@ -80,14 +80,14 @@ const char *exec_name; static void i18n_initialize (void) { - /* HAVE_NLS implies existence of functions invoked here. */ -#ifdef HAVE_NLS + /* ENABLE_NLS implies existence of functions invoked here. */ +#ifdef ENABLE_NLS /* Set the current locale. */ setlocale (LC_ALL, ""); /* Set the text message domain. */ bindtextdomain ("wget", LOCALEDIR); textdomain ("wget"); -#endif /* HAVE_NLS */ +#endif /* ENABLE_NLS */ } /* Definition of command-line options. */ diff --git a/src/version.c b/src/version.c deleted file mode 100644 index 87fdbae3..00000000 --- a/src/version.c +++ /dev/null @@ -1 +0,0 @@ -char *version_string = "1.10+devel"; diff --git a/src/wget.h b/src/wget.h index 2cfa7aa8..5664fe15 100644 --- a/src/wget.h +++ b/src/wget.h @@ -47,17 +47,8 @@ so, delete this exception statement from your version. */ /* `gettext (FOO)' is long to write, so we use `_(FOO)'. If NLS is unavailable, _(STRING) simply returns STRING. */ -#ifdef HAVE_NLS -# define _(string) gettext (string) -# ifdef HAVE_LIBINTL_H -# include -# else /* not HAVE_LIBINTL_H */ - const char *gettext (); -# endif /* not HAVE_LIBINTL_H */ -#else /* not HAVE_NLS */ -# define _(string) (string) -# define ngettext(sing, plur, num) ((num) == 1 ? (sing) : (plur)) -#endif /* not HAVE_NLS */ +#include "gettext.h" +#define _(string) gettext (string) /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time diff --git a/stamp-h.in b/stamp-h.in deleted file mode 100644 index 9788f702..00000000 --- a/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/tests/ChangeLog b/tests/ChangeLog index 8c059c0f..08175d18 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,10 @@ +2007-10-05 Ralf Wildenhues + + * WgetTest.pm.in: wget is built in the build tree. Use an + absolute path to the binary. + * Makefile.in: Removed, replaced by Makefile.am. + * Makefile.am: Converted from Makefile.in. + 2007-09-25 Micah Cowan * Makefile.in: Use EXEEXT instead of exeext. diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 00000000..45afdfa9 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,103 @@ +# Makefile for `wget' utility +# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +# 2004, 2005, 2006, 2007 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 3 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 Wget. If not, see . + +# In addition, as a special exception, the Free Software Foundation +# gives permission to link the code of its release of Wget with the +# OpenSSL project's "OpenSSL" library (or with modified versions of it +# that use the same license as the "OpenSSL" library), and distribute +# the linked executables. You must obey the GNU General Public License +# in all respects for all of the code used other than "OpenSSL". If you +# modify this file, you may extend this exception to your version of the +# file, but you are not obligated to do so. If you do not wish to do +# so, delete this exception statement from your version. + +# +# Version: @VERSION@ +# + +PERL = perl +PERLRUN = $(PERL) -I$(srcdir) + +.PHONY: test run-unit-tests run-px-tests + +check-local: test + +test: ../src/wget$(EXEEXT) run-unit-tests #run-px-tests + +../src/wget$(EXEEXT): + cd ../src && $(MAKE) $(AM_MAKEFLAGS) + +run-unit-tests: unit-tests$(EXEEXT) + ./unit-tests$(EXEEXT) + +run-px-tests: WgetTest.pm + $(PERLRUN) $(srcdir)/Test-auth-basic.px && echo && echo + $(PERLRUN) $(srcdir)/Test-c-full.px && echo && echo + $(PERLRUN) $(srcdir)/Test-c-partial.px && echo && echo + $(PERLRUN) $(srcdir)/Test-c.px && echo && echo + $(PERLRUN) $(srcdir)/Test-E-k-K.px && echo && echo + $(PERLRUN) $(srcdir)/Test-E-k.px && echo && echo + $(PERLRUN) $(srcdir)/Test-ftp.px && echo && echo + $(PERLRUN) $(srcdir)/Test-HTTP-Content-Disposition-1.px && echo && echo + $(PERLRUN) $(srcdir)/Test-HTTP-Content-Disposition-2.px && echo && echo + $(PERLRUN) $(srcdir)/Test-HTTP-Content-Disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test-N-current-HTTP-CD.px && echo && echo + $(PERLRUN) $(srcdir)/Test-N-current.px && echo && echo + $(PERLRUN) $(srcdir)/Test-N-HTTP-Content-Disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test-N--no-content-disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test-N--no-content-disposition-trivial.px && echo && echo + $(PERLRUN) $(srcdir)/Test--no-content-disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test--no-content-disposition-trivial.px && echo && echo + $(PERLRUN) $(srcdir)/Test-N-old.px && echo && echo + $(PERLRUN) $(srcdir)/Test-nonexisting-quiet.px && echo && echo + $(PERLRUN) $(srcdir)/Test-noop.px && echo && echo + $(PERLRUN) $(srcdir)/Test-np.px && echo && echo + $(PERLRUN) $(srcdir)/Test-N.px && echo && echo + $(PERLRUN) $(srcdir)/Test-O-HTTP-Content-Disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test-O--no-content-disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test-O--no-content-disposition-trivial.px && echo && echo + $(PERLRUN) $(srcdir)/Test-O-nonexisting.px && echo && echo + $(PERLRUN) $(srcdir)/Test-O.px && echo && echo + $(PERLRUN) $(srcdir)/Test-Restrict-Lowercase.px && echo && echo + $(PERLRUN) $(srcdir)/Test-Restrict-Uppercase.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider-fail.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider-HTTP-Content-Disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider--no-content-disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider--no-content-disposition-trivial.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider-r-HTTP-Content-Disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider-r--no-content-disposition.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider-r--no-content-disposition-trivial.px && echo && echo + $(PERLRUN) $(srcdir)/Test--spider-r.px && echo && echo + +EXTRA_DIST = FTPServer.pm FTPTest.pm HTTPServer.pm HTTPTest.pm \ + Test-auth-basic.px Test-c-full.px Test-c-partial.px \ + Test-c.px Test-E-k-K.px Test-E-k.px Test-ftp.px \ + Test-HTTP-Content-Disposition-1.px \ + Test-HTTP-Content-Disposition-2.px \ + Test-HTTP-Content-Disposition.px \ + Test-N-current.px Test-N-old.px Test-nonexisting-quiet.px \ + Test-noop.px Test-np.px Test-N.px \ + Test-O-nonexisting.px Test-O.px \ + Test-Restrict-Lowercase.px Test-Restrict-Uppercase.px \ + Test--spider-fail.px Test--spider.px Test--spider-r.px + +check_PROGRAMS = unit-tests +unit_tests_SOURCES = +LDADD = ../src/libunittest.a @LIBSSL@ @LIBGNUTLS@ + +CLEANFILES = *~ *.bak core core.[0-9]* diff --git a/tests/Makefile.in b/tests/Makefile.in deleted file mode 100644 index 920186ce..00000000 --- a/tests/Makefile.in +++ /dev/null @@ -1,305 +0,0 @@ -# Makefile for `wget' utility -# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -# 2004, 2005, 2006, 2007 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 3 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 Wget. If not, see . - -# In addition, as a special exception, the Free Software Foundation -# gives permission to link the code of its release of Wget with the -# OpenSSL project's "OpenSSL" library (or with modified versions of it -# that use the same license as the "OpenSSL" library), and distribute -# the linked executables. You must obey the GNU General Public License -# in all respects for all of the code used other than "OpenSSL". If you -# modify this file, you may extend this exception to your version of the -# file, but you are not obligated to do so. If you do not wish to do -# so, delete this exception statement from your version. - -# -# Version: @VERSION@ -# - -SHELL = /bin/sh - -top_builddir = .. - -top_srcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -sysconfdir = @sysconfdir@ -datadir = @datadir@ -localedir = $(datadir)/locale - -DESTDIR = - -CC = @CC@ -CPPFLAGS = @CPPFLAGS@ -# The following line is losing on some versions of make! -DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\" -DLOCALEDIR=\"$(localedir)\" -CFLAGS = @CFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ @LIBSSL@ @LIBGNUTLS@ -exeext = @EXEEXT@ - -INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../src - -COMPILE = $(CC) $(INCLUDES) $(CPPFLAGS) $(DEFS) $(CFLAGS) -LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -RM = rm -f -ETAGS = etags - -# Conditional compiles -ALLOCA = @ALLOCA@ -MD5_OBJ = @MD5_OBJ@ -OPIE_OBJ = @OPIE_OBJ@ -NTLM_OBJ = @NTLM_OBJ@ -SSL_OBJ = @SSL_OBJ@ -GETOPT_OBJ = @GETOPT_OBJ@ - - -all: - -.PHONY: test - -test: @top_srcdir@/src/wget run-unit-tests run-px-tests - -@top_srcdir@/src/wget: - cd @top_srcdir@ && $(MAKE) - -run-unit-tests: unit-tests$(exeext) - ./unit-tests$(exeext) - -run-px-tests: WgetTest.pm - ./Test-auth-basic.px && echo && echo - ./Test-c-full.px && echo && echo - ./Test-c-partial.px && echo && echo - ./Test-c.px && echo && echo - ./Test-E-k-K.px && echo && echo - ./Test-E-k.px && echo && echo - ./Test-ftp.px && echo && echo - ./Test-HTTP-Content-Disposition-1.px && echo && echo - ./Test-HTTP-Content-Disposition-2.px && echo && echo - ./Test-HTTP-Content-Disposition.px && echo && echo - ./Test-N-current-HTTP-CD.px && echo && echo - ./Test-N-current.px && echo && echo - ./Test-N-HTTP-Content-Disposition.px && echo && echo - ./Test-N--no-content-disposition.px && echo && echo - ./Test-N--no-content-disposition-trivial.px && echo && echo - ./Test--no-content-disposition.px && echo && echo - ./Test--no-content-disposition-trivial.px && echo && echo - ./Test-N-old.px && echo && echo - ./Test-nonexisting-quiet.px && echo && echo - ./Test-noop.px && echo && echo - ./Test-np.px && echo && echo - ./Test-N.px && echo && echo - ./Test-O-HTTP-Content-Disposition.px && echo && echo - ./Test-O--no-content-disposition.px && echo && echo - ./Test-O--no-content-disposition-trivial.px && echo && echo - ./Test-O-nonexisting.px && echo && echo - ./Test-O.px && echo && echo - ./Test-Restrict-Lowercase.px && echo && echo - ./Test-Restrict-Uppercase.px && echo && echo - ./Test--spider-fail.px && echo && echo - ./Test--spider-HTTP-Content-Disposition.px && echo && echo - ./Test--spider--no-content-disposition.px && echo && echo - ./Test--spider--no-content-disposition-trivial.px && echo && echo - ./Test--spider.px && echo && echo - ./Test--spider-r-HTTP-Content-Disposition.px && echo && echo - ./Test--spider-r--no-content-disposition.px && echo && echo - ./Test--spider-r--no-content-disposition-trivial.px && echo && echo - ./Test--spider-r.px && echo && echo - -WgetTest.pm: WgetTest.pm.in @top_srcdir@/config.status - cd @top_srcdir@ && ./config.status - -# -# Dependencies for test binary -# - -TESTOBJ = $(ALLOCA) cmpt.o connect.o convert.o cookies.o \ - ftp.o ftp-basic.o ftp-ls.o $(OPIE_OBJ) $(GETOPT_OBJ) hash.o \ - host.o html-parse.o html-url.o http.o $(NTLM_OBJ) init.o \ - log.o main.o $(MD5_OBJ) netrc.o progress.o \ - ptimer.o recur.o res.o retr.o safe-ctype.o snprintf.o \ - spider.o $(SSL_OBJ) test.o url.o utils.o version.o xmalloc.o - -# We make object files depend on every header. Rather than attempt to -# track dependencies, everything gets recompiled when a header -# changes. With a program of Wget's size this doesn't waste much -# time, and it's a lot safer than attempting to get all the -# dependencies right. - -HEADERS = ../src/config-post.h ../src/config.h \ - ../src/connect.h ../src/convert.h ../src/cookies.h \ - ../src/ftp.h ../src/gen-md5.h ../src/getopt.h \ - ../src/gnu-md5.h ../src/hash.h ../src/host.h \ - ../src/html-parse.h ../src/http-ntlm.h ../src/init.h \ - ../src/log.h ../src/mswindows.h ../src/netrc.h \ - ../src/options.h ../src/progress.h \ - ../src/ptimer.h ../src/recur.h ../src/res.h \ - ../src/retr.h ../src/safe-ctype.h ../src/spider.h \ - ../src/ssl.h ../src/sysdep.h ../src/test.h \ - ../src/url.h ../src/utils.h ../src/wget.h \ - ../src/xmalloc.h - -alloca.o: ../src/alloca.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -ccache.o: ../src/ccache.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -cmpt.o: ../src/cmpt.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -connect.o: ../src/connect.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -convert.o: ../src/convert.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -cookies.o: ../src/cookies.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -ftp-basic.o: ../src/ftp-basic.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -ftp.o: ../src/ftp.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -ftp-ls.o: ../src/ftp-ls.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -ftp-opie.o: ../src/ftp-opie.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -gen-md5.o: ../src/gen-md5.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -getopt.o: ../src/getopt.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -gnu-md5.o: ../src/gnu-md5.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -gnutls.o: ../src/gnutls.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -hash.o: ../src/hash.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -host.o: ../src/host.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -html-parse.o: ../src/html-parse.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -html-url.o: ../src/html-url.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -http.o: ../src/http.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -http-ntlm.o: ../src/http-ntlm.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -init.o: ../src/init.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -log.o: ../src/log.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -main.o: ../src/main.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -mswindows.o: ../src/mswindows.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -netrc.o: ../src/netrc.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -openssl.o: ../src/openssl.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -progress.o: ../src/progress.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -protocol.o: ../src/protocol.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -ptimer.o: ../src/ptimer.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -recur.o: ../src/recur.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -res.o: ../src/res.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -retr.o: ../src/retr.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -safe-ctype.o: ../src/safe-ctype.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -snprintf.o: ../src/snprintf.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -spider.o: ../src/spider.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -test.o: ../src/test.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -url.o: ../src/url.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -utils.o: ../src/utils.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -version.o: ../src/version.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - -xmalloc.o: ../src/xmalloc.c $(HEADERS) - $(COMPILE) -DTESTING -c $< - - -unit-tests$(exeext): $(TESTOBJ) - $(LINK) $(TESTOBJ) $(LIBS) - -# -# Dependencies for cleanup -# - -clean: - $(RM) *.o unit-tests$(exeext) *~ *.bak core core.[0-9]* - -distclean: clean - $(RM) Makefile - -realclean: distclean - -# -# Dependencies for maintenance -# - -subdir = tests - -Makefile: Makefile.in ../config.status - cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status - diff --git a/tests/WgetTest.pm.in b/tests/WgetTest.pm.in index a57c1bb8..915759df 100644 --- a/tests/WgetTest.pm.in +++ b/tests/WgetTest.pm.in @@ -8,7 +8,7 @@ use strict; use Cwd; use File::Path; -our $WGETPATH = "@top_srcdir@/src/wget"; +our $WGETPATH = "@abs_top_builddir@/src/wget"; my @unexpected_downloads = (); diff --git a/doc/texinfo.tex b/texinfo.tex similarity index 90% rename from doc/texinfo.tex rename to texinfo.tex index 14574939..80836223 100644 --- a/doc/texinfo.tex +++ b/texinfo.tex @@ -3,15 +3,15 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2004-11-25.16} +\def\texinfoversion{2006-10-04.17} % % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, -% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software -% Foundation, Inc. +% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free +% Software Foundation, Inc. % % This texinfo.tex file 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 3, or (at +% published by the Free Software Foundation; either version 2, or (at % your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be @@ -20,8 +20,9 @@ % General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with this texinfo.tex file. If not, see -% . +% along with this texinfo.tex file; see the file COPYING. If not, write +% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without @@ -152,20 +153,22 @@ \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi -% In some macros, we cannot use the `\? notation---the left quote is -% in some cases the escape char. +% Since the category of space is not known, we have to be careful. +\chardef\spacecat = 10 +\def\spaceisspace{\catcode`\ =\spacecat} + +% sometimes characters are active, so we need control sequences. \chardef\colonChar = `\: \chardef\commaChar = `\, +\chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! +\chardef\lquoteChar= `\` \chardef\questChar = `\? +\chardef\rquoteChar= `\' \chardef\semiChar = `\; \chardef\underChar = `\_ -\chardef\spaceChar = `\ % -\chardef\spacecat = 10 -\def\spaceisspace{\catcode\spaceChar=\spacecat} - % Ignore a token. % \def\gobble#1{} @@ -301,10 +304,14 @@ % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % - \escapechar = `\\ % use backslash in output files. \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if - % the page break happens to be in the middle of an example. + % the page break happens to be in the middle of an example. + % We don't want .vr (or whatever) entries like this: + % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} + % "\acronym" won't work when it's read back in; + % it needs to be + % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi @@ -332,9 +339,9 @@ \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. - % (We lessened \vsize for it in \oddfootingxxx.) + % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. - \vskip 2\baselineskip + \vskip 24pt \unvbox\footlinebox \fi % @@ -355,7 +362,7 @@ \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox - }% end of group with \normalturnoffactive + }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } @@ -390,7 +397,7 @@ % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% - \def\next{#2}% + \def\argtorun{#2}% \begingroup \obeylines \spaceisspace @@ -421,8 +428,7 @@ \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty - % We cannot use \next here, as it holds the macro to run; - % thus we reuse \temp. + % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces @@ -434,14 +440,14 @@ % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, -% just before passing the control to \next. +% just before passing the control to \argtorun. % (Similarily, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % -\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}} +\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef\foo{...} % is roughly equivalent to @@ -565,7 +571,7 @@ \let\}=\myrbrace \begingroup % Definitions to produce \{ and \} commands for indices, - % and @{ and @} for the aux file. + % and @{ and @} for the aux/toc files. \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 \catcode`\! = 0 \catcode`\\ = \other @@ -646,13 +652,28 @@ \let\/=\allowbreak % @. is an end-of-sentence period. -\def\.{.\spacefactor=3000 } +\def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. -\def\!{!\spacefactor=3000 } +\def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. -\def\?{?\spacefactor=3000 } +\def\?{?\spacefactor=\endofsentencespacefactor\space} + +% @frenchspacing on|off says whether to put extra space after punctuation. +% +\def\onword{on} +\def\offword{off} +% +\parseargdef\frenchspacing{% + \def\temp{#1}% + \ifx\temp\onword \plainfrenchspacing + \else\ifx\temp\offword \plainnonfrenchspacing + \else + \errhelp = \EMsimple + \errmessage{Unknown @frenchspacing option `\temp', must be on/off}% + \fi\fi +} % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would @@ -1030,9 +1051,9 @@ where each line of input produces a line of output.} % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { - \catcode\underChar = \active + \catcode`\_ = \active \gdef\mathunderscore{% - \catcode\underChar=\active + \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } @@ -1075,15 +1096,24 @@ where each line of input produces a line of output.} \def\minus{$-$} % @dots{} outputs an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in a typewriter -% font as three actual period characters. +% We do .5em per period so that it has the same spacing in the cm +% typewriter fonts as three actual period characters; on the other hand, +% in other typewriter fonts three periods are wider than 1.5em. So do +% whichever is larger. % \def\dots{% \leavevmode - \hbox to 1.5em{% - \hskip 0pt plus 0.25fil - .\hfil.\hfil.% - \hskip 0pt plus 0.5fil + \setbox0=\hbox{...}% get width of three periods + \ifdim\wd0 > 1.5em + \dimen0 = \wd0 + \else + \dimen0 = 1.5em + \fi + \hbox to \dimen0{% + \hskip 0pt plus.25fil + .\hskip 0pt plus1fil + .\hskip 0pt plus1fil + .\hskip 0pt plus.5fil }% } @@ -1091,7 +1121,7 @@ where each line of input produces a line of output.} % \def\enddots{% \dots - \spacefactor=3000 + \spacefactor=\endofsentencespacefactor } % @comma{} is so commas can be inserted into text without messing up @@ -1175,13 +1205,63 @@ where each line of input produces a line of output.} \fi \fi \fi -% + +% PDF uses PostScript string constants for the names of xref targets, +% for display in the outlines, and in other places. Thus, we have to +% double any backslashes. Otherwise, a name like "\node" will be +% interpreted as a newline (\n), followed by o, d, e. Not good. +% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html +% (and related messages, the final outcome is that it is up to the TeX +% user to double the backslashes and otherwise make the string valid, so +% that's what we do). + +% double active backslashes. +% +{\catcode`\@=0 \catcode`\\=\active + @gdef@activebackslashdouble{% + @catcode`@\=@active + @let\=@doublebackslash} +} + +% To handle parens, we must adopt a different approach, since parens are +% not active characters. hyperref.dtx (which has the same problem as +% us) handles it with this amazing macro to replace tokens. I've +% tinkered with it a little for texinfo, but it's definitely from there. +% +% #1 is the tokens to replace. +% #2 is the replacement. +% #3 is the control sequence with the string. +% +\def\HyPsdSubst#1#2#3{% + \def\HyPsdReplace##1#1##2\END{% + ##1% + \ifx\\##2\\% + \else + #2% + \HyReturnAfterFi{% + \HyPsdReplace##2\END + }% + \fi + }% + \xdef#3{\expandafter\HyPsdReplace#3#1\END}% +} +\long\def\HyReturnAfterFi#1\fi{\fi#1} + +% #1 is a control sequence in which to do the replacements. +\def\backslashparens#1{% + \xdef#1{#1}% redefine it as its expansion; the definition is simply + % \lastnode when called from \setref -> \pdfmkdest. + \HyPsdSubst{(}{\realbackslash(}{#1}% + \HyPsdSubst{)}{\realbackslash)}{#1}% +} + \ifpdf \input pdfcolor \pdfcatalog{/PageMode /UseOutlines}% + % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% - \def\imagewidth{#2}% - \def\imageheight{#3}% + \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% + \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % without \immediate, pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 @@ -1189,8 +1269,8 @@ where each line of input produces a line of output.} \else \immediate\pdfximage \fi - \ifx\empty\imagewidth\else width \imagewidth \fi - \ifx\empty\imageheight\else height \imageheight \fi + \ifdim \wd0 >0pt width \imagewidth \fi + \ifdim \wd2 >0pt height \imageheight \fi \ifnum\pdftexversion<13 #1.pdf% \else @@ -1200,13 +1280,18 @@ where each line of input produces a line of output.} \pdfrefximage \pdflastximage \fi} \def\pdfmkdest#1{{% - % We have to set dummies so commands such as @code in a section title - % aren't expanded. + % We have to set dummies so commands such as @code, and characters + % such as \, aren't expanded when present in a section title. \atdummies - \normalturnoffactive - \pdfdest name{#1} xyz% - }} - \def\pdfmkpgn#1{#1} + \activebackslashdouble + \def\pdfdestname{#1}% + \backslashparens\pdfdestname + \pdfdest name{\pdfdestname} xyz% + }}% + % + % used to mark target names; must be expandable. + \def\pdfmkpgn#1{#1}% + % \let\linkcolor = \Blue % was Cyan, but that seems light? \def\endlink{\Black\pdfendlink} % Adding outlines to PDF; macros for calculating structure of outlines @@ -1217,20 +1302,31 @@ where each line of input produces a line of output.} \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % - % #1 is the section text. #2 is the pdf expression for the number - % of subentries (or empty, for subsubsections). #3 is the node - % text, which might be empty if this toc entry had no - % corresponding node. #4 is the page number. + % #1 is the section text, which is what will be displayed in the + % outline by the pdf viewer. #2 is the pdf expression for the number + % of subentries (or empty, for subsubsections). #3 is the node text, + % which might be empty if this toc entry had no corresponding node. + % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't - % seem worthwhile, since most documents are normally structured. + % seem worth the trouble, since most documents are normally structured. \def\pdfoutlinedest{#3}% - \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi + \ifx\pdfoutlinedest\empty + \def\pdfoutlinedest{#4}% + \else + % Doubled backslashes in the name. + {\activebackslashdouble \xdef\pdfoutlinedest{#3}% + \backslashparens\pdfoutlinedest}% + \fi % - \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}% + % Also double the backslashes in the display string. + {\activebackslashdouble \xdef\pdfoutlinetext{#1}% + \backslashparens\pdfoutlinetext}% + % + \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% @@ -1271,7 +1367,7 @@ where each line of input produces a line of output.} \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% - \input \jobname.toc + \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of @@ -1297,41 +1393,12 @@ where each line of input produces a line of output.} % their "best" equivalent, based on the @documentencoding. Right % now, I guess we'll just let the pdf reader have its way. \indexnofonts - \turnoffactive + \setupdatafile + \catcode`\\=\active \otherbackslash \input \jobname.toc \endgroup } % - \def\makelinks #1,{% - \def\params{#1}\def\E{END}% - \ifx\params\E - \let\nextmakelinks=\relax - \else - \let\nextmakelinks=\makelinks - \ifnum\lnkcount>0,\fi - \picknum{#1}% - \startlink attr{/Border [0 0 0]} - goto name{\pdfmkpgn{\the\pgn}}% - \linkcolor #1% - \advance\lnkcount by 1% - \endlink - \fi - \nextmakelinks - } - \def\picknum#1{\expandafter\pn#1} - \def\pn#1{% - \def\p{#1}% - \ifx\p\lbrace - \let\nextpn=\ppn - \else - \let\nextpn=\ppnn - \def\first{#1} - \fi - \nextpn - } - \def\ppn#1{\pgn=#1\gobble} - \def\ppnn{\pgn=\first} - \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,} \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces @@ -1346,9 +1413,17 @@ where each line of input produces a line of output.} \else \let \startlink \pdfstartlink \fi + % make a live url in pdf output. \def\pdfurl#1{% \begingroup - \normalturnoffactive\def\@{@}% + % it seems we really need yet another set of dummies; have not + % tried to figure out what each command should do in the context + % of @url. for now, just make @/ a no-op, that's the only one + % people have actually reported a problem with. + % + \normalturnoffactive + \def\@{@}% + \let\/=\empty \makevalueexpandable \leavevmode\Red \startlink attr{/Border [0 0 0]}% @@ -1418,6 +1493,7 @@ where each line of input produces a line of output.} % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} + % Default leading. \newdimen\textleading \textleading = 13.2pt @@ -1439,11 +1515,13 @@ where each line of input produces a line of output.} }% } + % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). % #3 is the font's design size, #4 is a scale factor \def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} + % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. @@ -1467,6 +1545,10 @@ where each line of input produces a line of output.} \def\scshape{csc} \def\scbshape{csc} +% Definitions for a main text size of 11pt. This is the default in +% Texinfo. +% +\def\definetextfontsizexi{ % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} @@ -1580,6 +1662,165 @@ where each line of input produces a line of output.} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 +% reset the current fonts +\textfonts +\rm +} % end of 11pt text font size definitions + + +% Definitions to make the main text be 10pt Computer Modern, with +% section, chapter, etc., sizes following suit. This is for the GNU +% Press printing of the Emacs 22 manual. Maybe other manuals in the +% future. Used with @smallbook, which sets the leading to 12pt. +% +\def\definetextfontsizex{% +% Text fonts (10pt). +\def\textnominalsize{10pt} +\edef\mainmagstep{1000} +\setfont\textrm\rmshape{10}{\mainmagstep} +\setfont\texttt\ttshape{10}{\mainmagstep} +\setfont\textbf\bfshape{10}{\mainmagstep} +\setfont\textit\itshape{10}{\mainmagstep} +\setfont\textsl\slshape{10}{\mainmagstep} +\setfont\textsf\sfshape{10}{\mainmagstep} +\setfont\textsc\scshape{10}{\mainmagstep} +\setfont\textttsl\ttslshape{10}{\mainmagstep} +\font\texti=cmmi10 scaled \mainmagstep +\font\textsy=cmsy10 scaled \mainmagstep + +% A few fonts for @defun names and args. +\setfont\defbf\bfshape{10}{\magstephalf} +\setfont\deftt\ttshape{10}{\magstephalf} +\setfont\defttsl\ttslshape{10}{\magstephalf} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} + +% Fonts for indices, footnotes, small examples (9pt). +\def\smallnominalsize{9pt} +\setfont\smallrm\rmshape{9}{1000} +\setfont\smalltt\ttshape{9}{1000} +\setfont\smallbf\bfshape{10}{900} +\setfont\smallit\itshape{9}{1000} +\setfont\smallsl\slshape{9}{1000} +\setfont\smallsf\sfshape{9}{1000} +\setfont\smallsc\scshape{10}{900} +\setfont\smallttsl\ttslshape{10}{900} +\font\smalli=cmmi9 +\font\smallsy=cmsy9 + +% Fonts for small examples (8pt). +\def\smallernominalsize{8pt} +\setfont\smallerrm\rmshape{8}{1000} +\setfont\smallertt\ttshape{8}{1000} +\setfont\smallerbf\bfshape{10}{800} +\setfont\smallerit\itshape{8}{1000} +\setfont\smallersl\slshape{8}{1000} +\setfont\smallersf\sfshape{8}{1000} +\setfont\smallersc\scshape{10}{800} +\setfont\smallerttsl\ttslshape{10}{800} +\font\smalleri=cmmi8 +\font\smallersy=cmsy8 + +% Fonts for title page (20.4pt): +\def\titlenominalsize{20pt} +\setfont\titlerm\rmbshape{12}{\magstep3} +\setfont\titleit\itbshape{10}{\magstep4} +\setfont\titlesl\slbshape{10}{\magstep4} +\setfont\titlett\ttbshape{12}{\magstep3} +\setfont\titlettsl\ttslshape{10}{\magstep4} +\setfont\titlesf\sfbshape{17}{\magstep1} +\let\titlebf=\titlerm +\setfont\titlesc\scbshape{10}{\magstep4} +\font\titlei=cmmi12 scaled \magstep3 +\font\titlesy=cmsy10 scaled \magstep4 +\def\authorrm{\secrm} +\def\authortt{\sectt} + +% Chapter fonts (14.4pt). +\def\chapnominalsize{14pt} +\setfont\chaprm\rmbshape{12}{\magstep1} +\setfont\chapit\itbshape{10}{\magstep2} +\setfont\chapsl\slbshape{10}{\magstep2} +\setfont\chaptt\ttbshape{12}{\magstep1} +\setfont\chapttsl\ttslshape{10}{\magstep2} +\setfont\chapsf\sfbshape{12}{\magstep1} +\let\chapbf\chaprm +\setfont\chapsc\scbshape{10}{\magstep2} +\font\chapi=cmmi12 scaled \magstep1 +\font\chapsy=cmsy10 scaled \magstep2 + +% Section fonts (12pt). +\def\secnominalsize{12pt} +\setfont\secrm\rmbshape{12}{1000} +\setfont\secit\itbshape{10}{\magstep1} +\setfont\secsl\slbshape{10}{\magstep1} +\setfont\sectt\ttbshape{12}{1000} +\setfont\secttsl\ttslshape{10}{\magstep1} +\setfont\secsf\sfbshape{12}{1000} +\let\secbf\secrm +\setfont\secsc\scbshape{10}{\magstep1} +\font\seci=cmmi12 +\font\secsy=cmsy10 scaled \magstep1 + +% Subsection fonts (10pt). +\def\ssecnominalsize{10pt} +\setfont\ssecrm\rmbshape{10}{1000} +\setfont\ssecit\itbshape{10}{1000} +\setfont\ssecsl\slbshape{10}{1000} +\setfont\ssectt\ttbshape{10}{1000} +\setfont\ssecttsl\ttslshape{10}{1000} +\setfont\ssecsf\sfbshape{10}{1000} +\let\ssecbf\ssecrm +\setfont\ssecsc\scbshape{10}{1000} +\font\sseci=cmmi10 +\font\ssecsy=cmsy10 + +% Reduced fonts for @acro in text (9pt). +\def\reducednominalsize{9pt} +\setfont\reducedrm\rmshape{9}{1000} +\setfont\reducedtt\ttshape{9}{1000} +\setfont\reducedbf\bfshape{10}{900} +\setfont\reducedit\itshape{9}{1000} +\setfont\reducedsl\slshape{9}{1000} +\setfont\reducedsf\sfshape{9}{1000} +\setfont\reducedsc\scshape{10}{900} +\setfont\reducedttsl\ttslshape{10}{900} +\font\reducedi=cmmi9 +\font\reducedsy=cmsy9 + +% reduce space between paragraphs +\divide\parskip by 2 + +% reset the current fonts +\textfonts +\rm +} % end of 10pt text font size definitions + + +% We provide the user-level command +% @fonttextsize 10 +% (or 11) to redefine the text font size. pt is assumed. +% +\def\xword{10} +\def\xiword{11} +% +\parseargdef\fonttextsize{% + \def\textsizearg{#1}% + \wlog{doing @fonttextsize \textsizearg}% + % + % Set \globaldefs so that documents can use this inside @tex, since + % makeinfo 4.8 does not support it, but we need it nonetheless. + % + \begingroup \globaldefs=1 + \ifx\textsizearg\xword \definetextfontsizex + \else \ifx\textsizearg\xiword \definetextfontsizexi + \else + \errhelp=\EMsimple + \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} + \fi\fi + \endgroup +} + + % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since % texinfo doesn't allow for producing subscripts and superscripts except @@ -1690,7 +1931,7 @@ where each line of input produces a line of output.} % Set up the default fonts, so we can use them for creating boxes. % -\textfonts \rm +\definetextfontsizexi % Define these so they can be easily changed for other fonts. \def\angleleft{$\langle$} @@ -1748,14 +1989,21 @@ where each line of input produces a line of output.} % sometimes \x has an active definition that messes things up. % \catcode`@=11 - \def\frenchspacing{% + \def\plainfrenchspacing{% \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + \def\endofsentencespacefactor{1000}% for @. and friends + } + \def\plainnonfrenchspacing{% + \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 + \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 + \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other +\def\endofsentencespacefactor{3000}% default \def\t#1{% - {\tt \rawbackslash \frenchspacing #1}% + {\tt \rawbackslash \plainfrenchspacing #1}% \null } \def\samp#1{`\tclose{#1}'\null} @@ -1792,7 +2040,7 @@ where each line of input produces a line of output.} \nohyphenation % \rawbackslash - \frenchspacing + \plainfrenchspacing #1% }% \null @@ -1808,12 +2056,21 @@ where each line of input produces a line of output.} % and arrange explicitly to hyphenate at a dash. % -- rms. { - \catcode`\-=\active - \catcode`\_=\active + \catcode`\-=\active \catcode`\_=\active + \catcode`\'=\active \catcode`\`=\active % \global\def\code{\begingroup - \catcode`\-=\active \let-\codedash - \catcode`\_=\active \let_\codeunder + \catcode\rquoteChar=\active \catcode\lquoteChar=\active + \let'\codequoteright \let`\codequoteleft + % + \catcode\dashChar=\active \catcode\underChar=\active + \ifallowcodebreaks + \let-\codedash + \let_\codeunder + \else + \let-\realdash + \let_\realunder + \fi \codex } } @@ -1833,6 +2090,28 @@ where each line of input produces a line of output.} } \def\codex #1{\tclose{#1}\endgroup} +% An additional complication: the above will allow breaks after, e.g., +% each of the four underscores in __typeof__. This is undesirable in +% some manuals, especially if they don't have long identifiers in +% general. @allowcodebreaks provides a way to control this. +% +\newif\ifallowcodebreaks \allowcodebreakstrue + +\def\keywordtrue{true} +\def\keywordfalse{false} + +\parseargdef\allowcodebreaks{% + \def\txiarg{#1}% + \ifx\txiarg\keywordtrue + \allowcodebreakstrue + \else\ifx\txiarg\keywordfalse + \allowcodebreaksfalse + \else + \errhelp = \EMsimple + \errmessage{Unknown @allowcodebreaks option `\txiarg'}% + \fi\fi +} + % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. @@ -1840,16 +2119,16 @@ where each line of input produces a line of output.} % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \parseargdef\kbdinputstyle{% - \def\arg{#1}% - \ifx\arg\worddistinct + \def\txiarg{#1}% + \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% - \else\ifx\arg\wordexample + \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% - \else\ifx\arg\wordcode + \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple - \errmessage{Unknown @kbdinputstyle option `\arg'}% + \errmessage{Unknown @kbdinputstyle option `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} @@ -1961,7 +2240,7 @@ where each line of input produces a line of output.} % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% - {\frenchspacing #1}% + {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% @@ -1999,7 +2278,7 @@ where each line of input produces a line of output.} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that - % installations which never need the symbold don't have to have the + % installations which never need the symbol don't have to have the % font installed. % % There is only one designed size (nominal 10pt), so we always scale @@ -2030,6 +2309,10 @@ where each line of input produces a line of output.} }$% } +% @textdegree - the normal degrees sign. +% +\def\textdegree{$^\circ$} + % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. @@ -2201,8 +2484,8 @@ where each line of input produces a line of output.} % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. - \global\advance\pageheight by -\baselineskip - \global\advance\vsize by -\baselineskip + \global\advance\pageheight by -12pt + \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} @@ -2861,6 +3144,7 @@ where each line of input produces a line of output.} \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: + \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other @@ -2881,16 +3165,16 @@ where each line of input produces a line of output.} \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % - % Define a command to find the next `@end #1', which must be on a line - % by itself. - \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}% + % Define a command to find the next `@end #1'. + \long\def\doignoretext##1^^M@end #1{% + \doignoretextyyy##1^^M@#1\_STOP_}% + % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. - \obeylines % \doignoretext ^^M% }% } @@ -2920,7 +3204,12 @@ where each line of input produces a line of output.} } % Finish off ignored text. -\def\enddoignore{\endgroup\ignorespaces} +{ \obeylines% + % Ignore anything after the last `@end #1'; this matters in verbatim + % environments, where otherwise the newline after an ignored conditional + % would result in a blank line in the output. + \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% +} % @set VAR sets the variable VAR to an empty value. @@ -3120,18 +3409,70 @@ where each line of input produces a line of output.} % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% + \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% + % % Need these in case \tex is in effect and \{ is a \delimiter again. % But can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. \let\{ = \mylbrace \let\} = \myrbrace % - % \definedummyword defines \#1 as \realbackslash #1\space, thus - % effectively preventing its expansion. This is used only for control - % words, not control letters, because the \space would be incorrect - % for control characters, but is needed to separate the control word + % I don't entirely understand this, but when an index entry is + % generated from a macro call, the \endinput which \scanmacro inserts + % causes processing to be prematurely terminated. This is, + % apparently, because \indexsorttmp is fully expanded, and \endinput + % is an expandable command. The redefinition below makes \endinput + % disappear altogether for that purpose -- although logging shows that + % processing continues to some further point. On the other hand, it + % seems \endinput does not hurt in the printed index arg, since that + % is still getting written without apparent harm. + % + % Sample source (mac-idx3.tex, reported by Graham Percival to + % help-texinfo, 22may06): + % @macro funindex {WORD} + % @findex xyz + % @end macro + % ... + % @funindex commtest + % + % The above is not enough to reproduce the bug, but it gives the flavor. + % + % Sample whatsit resulting: + % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} + % + % So: + \let\endinput = \empty + % + % Do the redefinitions. + \commondummies +} + +% For the aux and toc files, @ is the escape character. So we want to +% redefine everything using @ as the escape character (instead of +% \realbackslash, still used for index files). When everything uses @, +% this will be simpler. +% +\def\atdummies{% + \def\@{@@}% + \def\ {@ }% + \let\{ = \lbraceatcmd + \let\} = \rbraceatcmd + % + % Do the redefinitions. + \commondummies + \otherbackslash +} + +% Called from \indexdummies and \atdummies. +% +\def\commondummies{% + % + % \definedummyword defines \#1 as \string\#1\space, thus effectively + % preventing its expansion. This is used only for control% words, + % not control letters, because the \space would be incorrect for + % control characters, but is needed to separate the control word % from whatever follows. % % For control letters, we have \definedummyletter, which omits the @@ -3141,169 +3482,130 @@ where each line of input produces a line of output.} % those that do not. If it is followed by {arg} in the input, then % that will dutifully get written to the index (or wherever). % - \def\definedummyword##1{% - \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}% - }% - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{\realbackslash ##1}% - }% + \def\definedummyword ##1{\def##1{\string##1\space}}% + \def\definedummyletter##1{\def##1{\string##1}}% \let\definedummyaccent\definedummyletter % - % Do the redefinitions. - \commondummies -} - -% For the aux file, @ is the escape character. So we want to redefine -% everything using @ instead of \realbackslash. When everything uses -% @, this will be simpler. -% -\def\atdummies{% - \def\@{@@}% - \def\ {@ }% - \let\{ = \lbraceatcmd - \let\} = \rbraceatcmd - % - % (See comments in \indexdummies.) - \def\definedummyword##1{% - \expandafter\def\csname ##1\endcsname{@##1\space}% - }% - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{@##1}% - }% - \let\definedummyaccent\definedummyletter - % - % Do the redefinitions. - \commondummies -} - -% Called from \indexdummies and \atdummies. \definedummyword and -% \definedummyletter must be defined first. -% -\def\commondummies{% - % - \normalturnoffactive - % \commondummiesnofonts % - \definedummyletter{_}% + \definedummyletter\_% % % Non-English letters. - \definedummyword{AA}% - \definedummyword{AE}% - \definedummyword{L}% - \definedummyword{OE}% - \definedummyword{O}% - \definedummyword{aa}% - \definedummyword{ae}% - \definedummyword{l}% - \definedummyword{oe}% - \definedummyword{o}% - \definedummyword{ss}% - \definedummyword{exclamdown}% - \definedummyword{questiondown}% - \definedummyword{ordf}% - \definedummyword{ordm}% + \definedummyword\AA + \definedummyword\AE + \definedummyword\L + \definedummyword\OE + \definedummyword\O + \definedummyword\aa + \definedummyword\ae + \definedummyword\l + \definedummyword\oe + \definedummyword\o + \definedummyword\ss + \definedummyword\exclamdown + \definedummyword\questiondown + \definedummyword\ordf + \definedummyword\ordm % % Although these internal commands shouldn't show up, sometimes they do. - \definedummyword{bf}% - \definedummyword{gtr}% - \definedummyword{hat}% - \definedummyword{less}% - \definedummyword{sf}% - \definedummyword{sl}% - \definedummyword{tclose}% - \definedummyword{tt}% + \definedummyword\bf + \definedummyword\gtr + \definedummyword\hat + \definedummyword\less + \definedummyword\sf + \definedummyword\sl + \definedummyword\tclose + \definedummyword\tt % - \definedummyword{LaTeX}% - \definedummyword{TeX}% + \definedummyword\LaTeX + \definedummyword\TeX % % Assorted special characters. - \definedummyword{bullet}% - \definedummyword{comma}% - \definedummyword{copyright}% - \definedummyword{registeredsymbol}% - \definedummyword{dots}% - \definedummyword{enddots}% - \definedummyword{equiv}% - \definedummyword{error}% - \definedummyword{euro}% - \definedummyword{expansion}% - \definedummyword{minus}% - \definedummyword{pounds}% - \definedummyword{point}% - \definedummyword{print}% - \definedummyword{result}% + \definedummyword\bullet + \definedummyword\comma + \definedummyword\copyright + \definedummyword\registeredsymbol + \definedummyword\dots + \definedummyword\enddots + \definedummyword\equiv + \definedummyword\error + \definedummyword\euro + \definedummyword\expansion + \definedummyword\minus + \definedummyword\pounds + \definedummyword\point + \definedummyword\print + \definedummyword\result + \definedummyword\textdegree + % + % We want to disable all macros so that they are not expanded by \write. + \macrolist + % + \normalturnoffactive % % Handle some cases of @value -- where it does not contain any % (non-fully-expandable) commands. \makevalueexpandable - % - % Normal spaces, not active ones. - \unsepspaces - % - % No macro expansion. - \turnoffmacros } % \commondummiesnofonts: common to \commondummies and \indexnofonts. % -% Better have this without active chars. -{ - \catcode`\~=\other - \gdef\commondummiesnofonts{% - % Control letters and accents. - \definedummyletter{!}% - \definedummyaccent{"}% - \definedummyaccent{'}% - \definedummyletter{*}% - \definedummyaccent{,}% - \definedummyletter{.}% - \definedummyletter{/}% - \definedummyletter{:}% - \definedummyaccent{=}% - \definedummyletter{?}% - \definedummyaccent{^}% - \definedummyaccent{`}% - \definedummyaccent{~}% - \definedummyword{u}% - \definedummyword{v}% - \definedummyword{H}% - \definedummyword{dotaccent}% - \definedummyword{ringaccent}% - \definedummyword{tieaccent}% - \definedummyword{ubaraccent}% - \definedummyword{udotaccent}% - \definedummyword{dotless}% - % - % Texinfo font commands. - \definedummyword{b}% - \definedummyword{i}% - \definedummyword{r}% - \definedummyword{sc}% - \definedummyword{t}% - % - % Commands that take arguments. - \definedummyword{acronym}% - \definedummyword{cite}% - \definedummyword{code}% - \definedummyword{command}% - \definedummyword{dfn}% - \definedummyword{emph}% - \definedummyword{env}% - \definedummyword{file}% - \definedummyword{kbd}% - \definedummyword{key}% - \definedummyword{math}% - \definedummyword{option}% - \definedummyword{samp}% - \definedummyword{strong}% - \definedummyword{tie}% - \definedummyword{uref}% - \definedummyword{url}% - \definedummyword{var}% - \definedummyword{verb}% - \definedummyword{w}% - } +\def\commondummiesnofonts{% + % Control letters and accents. + \definedummyletter\!% + \definedummyaccent\"% + \definedummyaccent\'% + \definedummyletter\*% + \definedummyaccent\,% + \definedummyletter\.% + \definedummyletter\/% + \definedummyletter\:% + \definedummyaccent\=% + \definedummyletter\?% + \definedummyaccent\^% + \definedummyaccent\`% + \definedummyaccent\~% + \definedummyword\u + \definedummyword\v + \definedummyword\H + \definedummyword\dotaccent + \definedummyword\ringaccent + \definedummyword\tieaccent + \definedummyword\ubaraccent + \definedummyword\udotaccent + \definedummyword\dotless + % + % Texinfo font commands. + \definedummyword\b + \definedummyword\i + \definedummyword\r + \definedummyword\sc + \definedummyword\t + % + % Commands that take arguments. + \definedummyword\acronym + \definedummyword\cite + \definedummyword\code + \definedummyword\command + \definedummyword\dfn + \definedummyword\emph + \definedummyword\env + \definedummyword\file + \definedummyword\kbd + \definedummyword\key + \definedummyword\math + \definedummyword\option + \definedummyword\pxref + \definedummyword\ref + \definedummyword\samp + \definedummyword\strong + \definedummyword\tie + \definedummyword\uref + \definedummyword\url + \definedummyword\var + \definedummyword\verb + \definedummyword\w + \definedummyword\xref } % \indexnofonts is used when outputting the strings to sort the index @@ -3313,13 +3615,9 @@ where each line of input produces a line of output.} % \def\indexnofonts{% % Accent commands should become @asis. - \def\definedummyaccent##1{% - \expandafter\let\csname ##1\endcsname\asis - }% + \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{}% - }% + \def\definedummyletter##1{\let##1\empty}% % Hopefully, all control words can become @asis. \let\definedummyword\definedummyaccent % @@ -3372,9 +3670,19 @@ where each line of input produces a line of output.} \def\point{.}% \def\print{-|}% \def\result{=>}% + \def\textdegree{degrees}% % - % Don't write macro names. - \emptyusermacros + % We need to get rid of all macros, leaving only the arguments (if present). + % Of course this is not nearly correct, but it is the best we can do for now. + % makeinfo does not expand macros in the argument to @deffn, which ends up + % writing an index entry, and texindex isn't prepared for an index sort entry + % that starts with \. + % + % Since macro invocations are followed by braces, we can just redefine them + % to take a single TeX argument. The case of a macro invocation that + % goes to end-of-line is not handled. + % + \macrolist } \let\indexbackslash=0 %overridden during \printindex. @@ -3421,7 +3729,6 @@ where each line of input produces a line of output.} % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage - \escapechar=`\\ \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % @@ -3712,9 +4019,9 @@ where each line of input produces a line of output.} \endgroup } -% Like \dotfill except takes at least 1 em. +% Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} + \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} @@ -4288,14 +4595,17 @@ where each line of input produces a line of output.} \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% - \def\thischapter{#1}% + \gdef\thischapternum{}% + \gdef\thischapter{#1}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% - \xdef\thischapter{}% + \gdef\thischapternum{}% + \gdef\thischapter{}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% + \xdef\thischapternum{\appendixletter}% % We don't substitute the actual chapter name into \thischapter % because we don't want its macros evaluated now. And we don't % use \thissection because that changes with each section. @@ -4305,6 +4615,7 @@ where each line of input produces a line of output.} \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% + \xdef\thischapternum{\the\chapno}% \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% \fi\fi\fi @@ -4416,13 +4727,21 @@ where each line of input produces a line of output.} \gdef\thissection{#1}% \fi\fi\fi % - % Write the toc entry (before \donoderef). See comments in \chfplain. + % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). - % Again, see comments in \chfplain. + % Again, see comments in \chapmacro. \donoderef{#3}% % + % Interline glue will be inserted when the vbox is completed. + % That glue will be a valid breakpoint for the page, since it'll be + % preceded by a whatsit (usually from the \donoderef, or from the + % \writetocentry if there was no node). We don't want to allow that + % break, since then the whatsits could end up on page n while the + % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. + \nobreak + % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent=\wd0 % zero if no section number @@ -4481,11 +4800,11 @@ where each line of input produces a line of output.} \fi % \iflinks - \toks0 = {#2}% - \toks2 = \expandafter{\lastnode}% - \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}% - {\the\toks2}{\noexpand\folio}}}% - \temp + {\atdummies + \edef\temp{% + \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% + \temp + }% \fi \fi % @@ -4498,6 +4817,31 @@ where each line of input produces a line of output.} \ifpdf \global\pdfmakepagedesttrue \fi } + +% These characters do not print properly in the Computer Modern roman +% fonts, so we must take special care. This is more or less redundant +% with the Texinfo input format setup at the end of this file. +% +\def\activecatcodes{% + \catcode`\"=\active + \catcode`\$=\active + \catcode`\<=\active + \catcode`\>=\active + \catcode`\\=\active + \catcode`\^=\active + \catcode`\_=\active + \catcode`\|=\active + \catcode`\~=\active +} + + +% Read the toc file, which is essentially Texinfo input. +\def\readtocfile{% + \setupdatafile + \activecatcodes + \input \jobname.toc +} + \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 @@ -4519,11 +4863,7 @@ where each line of input produces a line of output.} % \savepageno = \pageno \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - % We can't do this, because then an actual ^ in a section - % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. - %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. + \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. @@ -4536,7 +4876,7 @@ where each line of input produces a line of output.} \startcontents{\putwordTOC}% \openin 1 \jobname.toc \ifeof 1 \else - \input \jobname.toc + \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect @@ -4574,7 +4914,7 @@ where each line of input produces a line of output.} \let\unnsubsubsecentry = \numsecentry \openin 1 \jobname.toc \ifeof 1 \else - \input \jobname.toc + \readtocfile \fi \closein 1 \vfill \eject @@ -4716,7 +5056,7 @@ where each line of input produces a line of output.} {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} +\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. @@ -4764,6 +5104,7 @@ where each line of input produces a line of output.} \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext + \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% @@ -4809,7 +5150,8 @@ where each line of input produces a line of output.} \let\afterenvbreak = \aboveenvbreak -% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. +% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will +% also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around @@ -4846,7 +5188,7 @@ where each line of input produces a line of output.} % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment + \let\nonarrowing = t% \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop @@ -4886,11 +5228,11 @@ where each line of input produces a line of output.} \parskip = 0pt \parindent = 0pt \emergencystretch = 0pt % don't try to avoid overfull boxes - % @cartouche defines \nonarrowing to inhibit narrowing - % at next level down. \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing + \else + \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } @@ -4937,11 +5279,10 @@ where each line of input produces a line of output.} % \maketwodispenvs {lisp}{example}{% \nonfillstart - \tt + \tt\quoteexpand \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } - % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenv {display}{% @@ -4990,6 +5331,7 @@ where each line of input produces a line of output.} \advance\leftskip by \lispnarrowing \advance\rightskip by \lispnarrowing \exdentamount = \lispnarrowing + \else \let\nonarrowing = \relax \fi \parsearg\quotationlabel @@ -5068,6 +5410,34 @@ where each line of input produces a line of output.} \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % \def\starttabbox{\setbox0=\hbox\bgroup} + +% Allow an option to not replace quotes with a regular directed right +% quote/apostrophe (char 0x27), but instead use the undirected quote +% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it +% the default, but it works for pasting with more pdf viewers (at least +% evince), the lilypond developers report. xpdf does work with the +% regular 0x27. +% +\def\codequoteright{% + \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax + '% + \else + \char'15 + \fi +} +% +% and a similar option for the left quote char vs. a grave accent. +% Modern fonts display ASCII 0x60 as a grave accent, so some people like +% the code environments to do likewise. +% +\def\codequoteleft{% + \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax + `% + \else + \char'22 + \fi +} +% \begingroup \catcode`\^^I=\active \gdef\tabexpand{% @@ -5080,15 +5450,25 @@ where each line of input produces a line of output.} \wd0=\dimen0 \box0 \starttabbox }% } + \catcode`\'=\active + \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}% + % + \catcode`\`=\active + \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}% + % + \gdef\quoteexpand{\rquoteexpand \lquoteexpand}% \endgroup + +% start the verbatim environment. \def\setupverbatim{% + \let\nonarrowing = t% \nonfillstart - \advance\leftskip by -\defbodyindent % Easiest (and conventionally used) font for verbatim \tt \def\par{\leavevmode\egroup\box0\endgraf}% \catcode`\`=\active \tabexpand + \quoteexpand % Respect line breaks, % print special symbols as themselves, and % make each space count @@ -5538,7 +5918,6 @@ where each line of input produces a line of output.} \spaceisspace % % Append \endinput to make sure that TeX does not see the ending newline. - % % I've verified that it is necessary both for e-TeX and for ordinary TeX % --kasal, 29nov03 \scantokens{#1\endinput}% @@ -5553,8 +5932,19 @@ where each line of input produces a line of output.} \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? -\def\macrolist{} % List of all defined macros in the form - % \do\macro1\do\macro2... + +% List of all defined macros in the form +% \definedummyword\macro1\definedummyword\macro2... +% Currently is also contains all @aliases; the list can be split +% if there is a need. +\def\macrolist{} + +% Add the macro to \macrolist +\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} +\def\addtomacrolistxxx#1{% + \toks0 = \expandafter{\macrolist\definedummyword#1}% + \xdef\macrolist{\the\toks0}% +} % Utility routines. % This does \let #1 = #2, with \csnames; that is, @@ -5652,10 +6042,7 @@ where each line of input produces a line of output.} \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% - % Add the macroname to \macrolist - \toks0 = \expandafter{\macrolist\do}% - \xdef\macrolist{\the\toks0 - \expandafter\noexpand\csname\the\macname\endcsname}% + \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody @@ -5669,7 +6056,7 @@ where each line of input produces a line of output.} % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax - \let\do\unmacrodo + \let\definedummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else @@ -5681,10 +6068,10 @@ where each line of input produces a line of output.} % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% - \ifx#1\relax + \ifx #1\relax % remove this \else - \noexpand\do \noexpand #1% + \noexpand\definedummyword \noexpand#1% \fi } @@ -5797,30 +6184,11 @@ where each line of input produces a line of output.} % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg) -\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} +\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg - \fi \next} - -% We want to disable all macros during \shipout so that they are not -% expanded by \write. -\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}% - \edef\next{\macrolist}\expandafter\endgroup\next} - -% For \indexnofonts, we need to get rid of all macros, leaving only the -% arguments (if present). Of course this is not nearly correct, but it -% is the best we can do for now. makeinfo does not expand macros in the -% argument to @deffn, which ends up writing an index entry, and texindex -% isn't prepared for an index sort entry that starts with \. -% -% Since macro invocations are followed by braces, we can just redefine them -% to take a single TeX argument. The case of a macro invocation that -% goes to end-of-line is not handled. -% -\def\emptyusermacros{\begingroup - \def\do##1{\let\noexpand##1=\noexpand\asis}% - \edef\next{\macrolist}\expandafter\endgroup\next} + \fi \macnamexxx} % @alias. @@ -5831,6 +6199,7 @@ where each line of input produces a line of output.} \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty + \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next @@ -5900,8 +6269,6 @@ where each line of input produces a line of output.} \iflinks {% \atdummies % preserve commands, but don't expand them - \turnoffactive - \otherbackslash \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef @@ -5955,13 +6322,17 @@ where each line of input produces a line of output.} \ifpdf \leavevmode \getfilename{#4}% - {\turnoffactive \otherbackslash + {\turnoffactive + % See comments at \activebackslashdouble. + {\activebackslashdouble \xdef\pdfxrefdest{#1}% + \backslashparens\pdfxrefdest}% + % \ifnum\filenamelength>0 \startlink attr{/Border [0 0 0]}% - goto file{\the\filename.pdf} name{#1}% + goto file{\the\filename.pdf} name{\pdfxrefdest}% \else \startlink attr{/Border [0 0 0]}% - goto name{\pdfmkpgn{#1}}% + goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% \linkcolor @@ -5975,7 +6346,6 @@ where each line of input produces a line of output.} % include an _ in the xref name, etc. \indexnofonts \turnoffactive - \otherbackslash \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% @@ -5983,7 +6353,7 @@ where each line of input produces a line of output.} % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd0 = 0pt - \refx{#1-snt}% + \refx{#1-snt}{}% \else \printedrefname \fi @@ -6010,7 +6380,7 @@ where each line of input produces a line of output.} % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. - {\turnoffactive \otherbackslash + {\turnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% @@ -6023,7 +6393,7 @@ where each line of input produces a line of output.} ,\space % % output the `page 3'. - \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}% + \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi \fi \endlink @@ -6126,13 +6496,13 @@ where each line of input produces a line of output.} \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else - \readauxfile + \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } -\def\readauxfile{\begingroup +\def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other @@ -6201,11 +6571,11 @@ where each line of input produces a line of output.} % % Make the characters 128-255 be printing characters. {% - \count 1=128 + \count1=128 \def\loop{% - \catcode\count 1=\other - \advance\count 1 by 1 - \ifnum \count 1<256 \loop \fi + \catcode\count1=\other + \advance\count1 by 1 + \ifnum \count1<256 \loop \fi }% }% % @@ -6213,10 +6583,13 @@ where each line of input produces a line of output.} \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 - % - \input \jobname.aux -\endgroup} +} +\def\readdatafile#1{% +\begingroup + \setupdatafile + \input\jobname.#1 +\endgroup} \message{insertions,} % including footnotes. @@ -6410,7 +6783,7 @@ where each line of input produces a line of output.} % above and below. \nobreak\vskip\parskip \nobreak - \line\bgroup\hss + \line\bgroup \fi % % Output the image. @@ -6423,7 +6796,7 @@ where each line of input produces a line of output.} \epsfbox{#1.eps}% \fi % - \ifimagevmode \hss \egroup \bigbreak \fi % space after the image + \ifimagevmode \egroup \bigbreak \fi % space after the image \endgroup} @@ -6563,7 +6936,8 @@ where each line of input produces a line of output.} % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% - \atdummies \turnoffactive \otherbackslash + \atdummies + % % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. @@ -6584,8 +6958,9 @@ where each line of input produces a line of output.} % % place the captured inserts % - % BEWARE: when the floats start float, we have to issue warning whenever an - % insert appears inside a float which could possibly float. --kasal, 26may04 + % BEWARE: when the floats start floating, we have to issue warning + % whenever an insert appears inside a float which could possibly + % float. --kasal, 26may04 % \checkinserts } @@ -6753,9 +7128,9 @@ should work if nowhere else does.} \fi } -% Parameters in order: 1) textheight; 2) textwidth; 3) voffset; -% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) -% physical page width. +% Parameters in order: 1) textheight; 2) textwidth; +% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; +% 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. @@ -6802,7 +7177,7 @@ should work if nowhere else does.} {11in}{8.5in}% }} -% Use @smallbook to reset parameters for 7x9.5 (or so) format. +% Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt @@ -6819,6 +7194,24 @@ should work if nowhere else does.} \defbodyindent = .5cm }} +% Use @smallerbook to reset parameters for 6x9 trim size. +% (Just testing, parameters still in flux.) +\def\smallerbook{{\globaldefs = 1 + \parskip = 1.5pt plus 1pt + \textleading = 12pt + % + \internalpagesizes{7.4in}{4.8in}% + {-.2in}{-.4in}% + {0pt}{14pt}% + {9in}{6in}% + % + \lispnarrowing = 0.25in + \tolerance = 700 + \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = .4cm +}} + % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt @@ -6971,6 +7364,7 @@ should work if nowhere else does.} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} +\let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } @@ -6993,6 +7387,13 @@ should work if nowhere else does.} % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} +% Used sometimes to turn off (effectively) the active characters even after +% parsing them. +\def\turnoffactive{% + \normalturnoffactive + \otherbackslash +} + \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, @@ -7000,27 +7401,29 @@ should work if nowhere else does.} \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work +% \realbackslash is an actual character `\' with catcode other, and +% \doublebackslash is two of them (for the pdf outlines). +{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} + +% In texinfo, backslash is an active character; it prints the backslash +% in fixed width font. +\catcode`\\=\active +@def@normalbackslash{{@tt@backslashcurfont}} +% On startup, @fixbackslash assigns: +% @let \ = @normalbackslash + % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. -{\catcode`\\=\active - @gdef@rawbackslash{@let\=@backslashcurfont} - @gdef@otherbackslash{@let\=@realbackslash} -} +@gdef@rawbackslash{@let\=@backslashcurfont} +@gdef@otherbackslash{@let\=@realbackslash} -% \realbackslash is an actual character `\' with catcode other. -{\catcode`\\=\other @gdef@realbackslash{\}} - -% \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\backslashcurfont}} - -\catcode`\\=\active - -% Used sometimes to turn off (effectively) the active characters -% even after parsing them. -@def@turnoffactive{% +% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of +% the literal character `\'. +% +@def@normalturnoffactive{% + @let\=@normalbackslash @let"=@normaldoublequote - @let\=@realbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @@ -7032,12 +7435,6 @@ should work if nowhere else does.} @unsepspaces } -% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of -% the literal character `\'. (Thus, \ is not expandable when this is in -% effect.) -% -@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} - % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive @@ -7050,9 +7447,9 @@ should work if nowhere else does.} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\{ in the file would cause an error. This macro tries to fix +% the first `\' in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. -% Also back turn on active characters that might appear in the input +% Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% diff --git a/util/Makefile.in b/util/Makefile.am similarity index 89% rename from util/Makefile.in rename to util/Makefile.am index a4681f4d..83c79d27 100644 --- a/util/Makefile.in +++ b/util/Makefile.am @@ -28,21 +28,5 @@ # Version: @VERSION@ # -SHELL = /bin/sh - -top_builddir = .. - -srcdir = @srcdir@ -VPATH = @srcdir@ - -RM = rm -f - -all: - -clean: - -distclean: clean - $(RM) Makefile - -realclean: distclean - +EXTRA_DIST = dist-wget download.html download-netscape.html \ + rmold.pl update_po_files.sh wget.spec diff --git a/windows/ChangeLog b/windows/ChangeLog index 9ca9c8ce..1b2193ab 100644 --- a/windows/ChangeLog +++ b/windows/ChangeLog @@ -1,3 +1,8 @@ +2007-10-05 Ralf Wildenhues + + * Makefile.in: Removed, replaced by Makefile.am. + * Makefile.am: Converted from Makefile.in. + 2007-09-24 Christopher Lewis * config-compiler.h: Fix compiler warnings related to diff --git a/windows/Makefile.in b/windows/Makefile.am similarity index 90% rename from windows/Makefile.in rename to windows/Makefile.am index d6b591d9..914bbb74 100644 --- a/windows/Makefile.in +++ b/windows/Makefile.am @@ -32,21 +32,6 @@ # succeeds. This directory is not used under Unix builds, normally # affected by Makefile.in. -SHELL = /bin/sh - -top_builddir = .. - -srcdir = @srcdir@ -VPATH = @srcdir@ - -RM = rm -f - -all: - -clean: - -distclean: clean - $(RM) Makefile - -realclean: distclean - +EXTRA_DIST = config-compiler.h config.h Makefile.doc \ + Makefile.src Makefile.src.bor Makefile.src.mingw \ + Makefile.top Makefile.top.bor Makefile.top.mingw